C 8
Grandstream ht801 case openscad Guest on 9th February 2026 06:41:51 AM
  1. // Grandstream HT801 LED-blocking shroud
  2. // Top + left + right, open back + bottom
  3. // Designed as a slide-on sleeve from the front
  4.  
  5. //////////////////////
  6. // Parameters
  7. //////////////////////
  8.  
  9. ht_len      = 116;   // HT801 body length (front to back)
  10. ht_wid      = 90;    // HT801 body width  (left to right)
  11. ht_hei      = 26;    // HT801 body height (bottom to top)
  12.  
  13. clearance   = 1.5;   // extra space on each side
  14. wall_th     = 2.4;   // wall thickness
  15. front_lip_h = 7;     // how far the front lip hangs down
  16. front_oh    = 4;     // top overhang past front face
  17.  
  18. // Ethernet port rough position on right side
  19. eth_from_front = 20; // distance from front to start of port
  20. eth_width      = 16; // port opening width
  21. eth_height     = 14; // port opening height
  22. eth_center_h   = ht_hei/2; // centered vertically
  23.  
  24. eth_lip_depth  = 3;  // inward blackout lip depth
  25.  
  26. //////////////////////
  27. // Derived dims
  28. //////////////////////
  29.  
  30. inner_len = ht_len + clearance*2;
  31. inner_wid = ht_wid + clearance*2;
  32. inner_hei = ht_hei + clearance;
  33.  
  34. outer_len = inner_len + wall_th*2;
  35. outer_wid = inner_wid + wall_th*2;
  36. outer_hei = inner_hei + wall_th;
  37.  
  38. //////////////////////
  39. // Main
  40. //////////////////////
  41.  
  42. difference() {
  43.     // Outer shell: top + left + right + front lip
  44.     union() {
  45.         // Top slab
  46.         translate([0, 0, 0])
  47.             cube([outer_len, outer_wid, wall_th], center=false);
  48.  
  49.         // Left wall
  50.         translate([0, 0, 0])
  51.             cube([outer_len, wall_th, inner_hei + wall_th], center=false);
  52.  
  53.         // Right wall
  54.         translate([0, outer_wid - wall_th, 0])
  55.             cube([outer_len, wall_th, inner_hei + wall_th], center=false);
  56.  
  57.         // Front lip (downward)
  58.         translate([-front_oh, 0, 0])
  59.             cube([front_oh + wall_th, outer_wid, front_lip_h], center=false);
  60.     }
  61.  
  62.     // Inner cavity (where the HT801 sits)
  63.     translate([wall_th, wall_th, wall_th])
  64.         cube([inner_len, inner_wid, inner_hei], center=false);
  65.  
  66.     // Open the back fully (just in case)
  67.     translate([wall_th + ht_len/2, wall_th, wall_th])
  68.         cube([ht_len + 20, inner_wid, inner_hei + 20], center=true);
  69.  
  70.     // Ethernet port opening + blackout lip on right wall
  71.     // Cut the main opening
  72.     translate([
  73.         wall_th + clearance + eth_from_front,
  74.         outer_wid - wall_th - 0.1, // right wall
  75.         wall_th + (eth_center_h - eth_height/2)
  76.     ])
  77.         cube([eth_width, wall_th + 1, eth_height], center=false);
  78.  
  79.     // Carve out behind the port for the inward lip
  80.     translate([
  81.         wall_th + clearance + eth_from_front - eth_lip_depth,
  82.         outer_wid - wall_th - 0.2,
  83.         wall_th + (eth_center_h - eth_height/2) - 0.2
  84.     ])
  85.         cube([eth_width + eth_lip_depth + 0.4, wall_th + 2, eth_height + 0.4], center=false);
  86. }

Paste is for source code and general debugging text.

Login or Register to edit, delete and keep track of your pastes and more.

Raw Paste

Login or Register to edit or fork this paste. It's free.