PopufareHousingTop.scad 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. // License: CC0
  2. //
  3. // To the extent possible under law, Clementine Computing LLC has waived
  4. // all copyright and related or neighboring rights to this file.
  5. //
  6. // This work is published from: United States.
  7. //
  8. include <PopufareHousingCommon.scad>
  9. module PopufareHousingTopPlate() {
  10. dh = POPUFARE_HOUSING_HEIGHT - POPUFARE_FRONT_HEIGHT;
  11. w = POPUFARE_HOUSING_WIDTH;
  12. h = POPUFARE_HOUSING_DEPTH-dh;
  13. bx = POPUFARE_BRACKET_CX;
  14. br = POPUFARE_BRACKET_D/2.0;
  15. de = POPUFARE_BRACKET_DE;
  16. des = POPUFARE_BRACKET_DE_SHORT;
  17. lip = _MATERIAL_THICKNESS;
  18. back_bracket_dx = w/3;
  19. screw_terminal_dw = 35;
  20. screw_terminal_r = 3/2;
  21. difference() {
  22. union() {
  23. square([w,h], center=true);
  24. translate([0, (h/2 + lip/2) - 0.001]) square([w, lip], center=true);
  25. // add overhang to back and sides but not front
  26. //
  27. translate([-w/2, -h/4]) square([lip, h/2], center=true);
  28. translate([ w/2, -h/4]) square([lip, h/2], center=true);
  29. translate([-w/2, h/4 + lip/2]) square([lip, h/2 + lip], center=true);
  30. translate([ w/2, h/4 + lip/2]) square([lip, h/2 + lip], center=true);
  31. };
  32. // shave off top front panel to accomodate angle plate
  33. //
  34. translate([0, -(h/2 - lip/2) - 0.01]) square([2*w, lip], center=true);
  35. // attach to back plate bracket
  36. //
  37. //translate([ -(w/2 - de), (h/2-bx) ]) circle(br);
  38. //translate([ (w/2 - de), (h/2-bx) ]) circle(br);
  39. // side plate bracket attachment
  40. //
  41. translate([ -(w/2 - bx), (h/2-des)]) circle(br);
  42. translate([ -(w/2 - bx),-(h/2-des)]) circle(br);
  43. translate([ (w/2 - bx), (h/2-des)]) circle(br);
  44. translate([ (w/2 - bx),-(h/2-des)]) circle(br);
  45. // back bracket attachment
  46. //
  47. translate([ -back_bracket_dx/2, h/2 - bx ]) circle(br);
  48. translate([ back_bracket_dx/2, h/2 - bx ]) circle(br);
  49. translate([-.3*w, 5])
  50. translate([0,screw_terminal_dw/2])
  51. circle(screw_terminal_r);
  52. translate([-.3*w, 5])
  53. translate([0,-screw_terminal_dw/2])
  54. circle(screw_terminal_r);
  55. translate([ .3*w, 5])
  56. translate([0,screw_terminal_dw/2])
  57. circle(screw_terminal_r);
  58. translate([ .3*w, 5])
  59. translate([0,-screw_terminal_dw/2])
  60. circle(screw_terminal_r);
  61. }
  62. }
  63. //PopufareHousingTopPlate();