PopufareHousingFrontInsideSupport1.scad 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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 PopufareHousingFrontInsideSupport1Plate() {
  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. frontlip = POPUFARE_HOUSING_FRONT_LIP_HEIGHT;
  16. mt = _MATERIAL_THICKNESS;
  17. lip = _MATERIAL_THICKNESS;
  18. lip_top = _MATERIAL_THICKNESS * sqrt(2.0);
  19. h_tot = h - lip_top + lip;
  20. fudge = 10;
  21. bracket_r = POPUFARE_BRACKET_WIDTH/2;
  22. difference() {
  23. union() {
  24. square([w,h], center=true);
  25. };
  26. // legacy housing fron lip
  27. //
  28. translate([0, -(h/2 - frontlip/2)]) square([w + 2*lip,frontlip], center=true);
  29. // get rid of ghost edges
  30. //
  31. translate([0, -(h/2 - frontlip/2)]) square([w + 2*lip + 1,frontlip], center=true);
  32. translate([0, -(h/2)]) square([w + 2*lip + 1,frontlip/2], center=true);
  33. // shave off top front panel to accomodate angle plate.
  34. // fudge to guard against stray geometry
  35. //
  36. translate([0, (h/2 - 0.4999*lip_top)]) square([2*w, lip_top + 0.15], center=true);
  37. // side plate bracket attachment
  38. //
  39. hull() {
  40. translate([ -(w/2 - bx), 0]) circle(bracket_r);
  41. translate([ -(w/2 - bx) - 2*de, 0]) circle(bracket_r);
  42. }
  43. hull() {
  44. translate([ (w/2 - bx), 0]) circle(bracket_r);
  45. translate([ (w/2 - bx) + 2*de, 0]) circle(bracket_r);
  46. }
  47. // bottom lip attachment
  48. //
  49. translate([ -(w/2 - 8*mt), -(h/2 - bx)]) circle(br);
  50. translate([ (w/2 - 8*mt), -(h/2 - bx)]) circle(br);
  51. hull() {
  52. translate([ -(w/2 - 12*mt), -(h/2 - bx)]) circle(bracket_r);
  53. translate([ -(w/2 - 12*mt), -(h/2 - bx) - 2*de]) circle(bracket_r);
  54. }
  55. hull() {
  56. translate([ (w/2 - 12*mt), -(h/2 - bx)]) circle(bracket_r);
  57. translate([ (w/2 - 12*mt), -(h/2 - bx) - 2*de]) circle(bracket_r);
  58. }
  59. // top clearance
  60. //
  61. translate([0, h/2]) square([12*mt, 3*h/4], center=true);
  62. translate([0, h/2]) polygon([ [ -12*mt/2, -3*h/8], [-32*mt/2, 0], [-11*mt/2, 0]]);
  63. translate([0, h/2]) polygon([ [ 12*mt/2, -3*h/8], [ 32*mt/2, 0], [ 11*mt/2, 0]]);
  64. }
  65. }
  66. //PopufareHousingFrontInsideSupport1Plate();