PopufareHousingFrontBottom.scad 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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 PopufareHousingFrontBottomPlate() {
  10. w = POPUFARE_HOUSING_WIDTH;
  11. h = POPUFARE_FRONT_HEIGHT;
  12. bx = POPUFARE_BRACKET_CX;
  13. br = POPUFARE_BRACKET_D/2.0;
  14. de = POPUFARE_BRACKET_DE;
  15. lip = _MATERIAL_THICKNESS;
  16. lip_top = _MATERIAL_THICKNESS * sqrt(2.0);
  17. h_tot = h - lip_top + lip;
  18. difference() {
  19. union() {
  20. square([w,h], center=true);
  21. // lip to cover bottom plate
  22. //
  23. translate([0,-(h/2 + lip/2)]) square([w,lip], center=true);
  24. // left/right overhang
  25. //
  26. translate([-w/2-lip, -h/2 - lip]) square([lip,h_tot]);
  27. translate([ w/2, -h/2 - lip]) square([lip,h_tot]);
  28. };
  29. // shave off top front panel to accomodate angle plate.
  30. // fudge to guard against stray geometry
  31. //
  32. translate([0, (h/2 - 0.4999*lip_top)]) square([2*w, lip_top + 0.15], center=true);
  33. // attach to bottom plate bracket
  34. //
  35. translate([ -(w/2 - de), -(h/2-bx) ]) circle(br);
  36. translate([ (w/2 - de), -(h/2-bx) ]) circle(br);
  37. // side plate bracket attachment
  38. //
  39. translate([ -(w/2 - bx), 0]) circle(br);
  40. translate([ (w/2 - bx), 0]) circle(br);
  41. }
  42. }
  43. //PopufareHousingFrontBottomPlate();