|
|
@@ -0,0 +1,96 @@
|
|
|
+// License: CC0
|
|
|
+//
|
|
|
+// To the extent possible under law, Clementine Computing LLC has waived
|
|
|
+// all copyright and related or neighboring rights to this file.
|
|
|
+//
|
|
|
+// This work is published from: United States.
|
|
|
+//
|
|
|
+
|
|
|
+include <PopufareHousingCommon.scad>
|
|
|
+
|
|
|
+module PopufareHousingFrontInsideSupport2Plate() {
|
|
|
+
|
|
|
+ w = POPUFARE_HOUSING_WIDTH;
|
|
|
+ h = POPUFARE_FRONT_HEIGHT;
|
|
|
+
|
|
|
+ bx = POPUFARE_BRACKET_CX;
|
|
|
+ br = POPUFARE_BRACKET_D/2.0;
|
|
|
+ de = POPUFARE_BRACKET_DE;
|
|
|
+
|
|
|
+ frontlip = POPUFARE_HOUSING_FRONT_LIP_HEIGHT;
|
|
|
+
|
|
|
+ mt = _MATERIAL_THICKNESS;
|
|
|
+
|
|
|
+ lip = _MATERIAL_THICKNESS;
|
|
|
+ lip_top = _MATERIAL_THICKNESS * sqrt(2.0);
|
|
|
+
|
|
|
+ h_tot = h - lip_top + lip;
|
|
|
+
|
|
|
+ fudge = 10;
|
|
|
+
|
|
|
+ bracket_r = POPUFARE_BRACKET_WIDTH/2;
|
|
|
+
|
|
|
+ difference() {
|
|
|
+ union() {
|
|
|
+ square([w,h], center=true);
|
|
|
+ };
|
|
|
+
|
|
|
+ // legacy housing fron lip
|
|
|
+ //
|
|
|
+ translate([0, -(h/2 - frontlip/2)]) square([w + 2*lip,frontlip], center=true);
|
|
|
+
|
|
|
+ // get rid of ghost edges
|
|
|
+ //
|
|
|
+ translate([0, -(h/2 - frontlip/2)]) square([w + 2*lip + 1,frontlip], center=true);
|
|
|
+ translate([0, -(h/2)]) square([w + 2*lip + 1,frontlip/2], center=true);
|
|
|
+
|
|
|
+ // shave off top front panel to accomodate angle plate.
|
|
|
+ // fudge to guard against stray geometry
|
|
|
+ //
|
|
|
+ translate([0, (h/2 - 0.4999*lip_top)]) square([2*w, lip_top + 0.15], center=true);
|
|
|
+
|
|
|
+ // side plate bracket attachment
|
|
|
+ //
|
|
|
+ hull() {
|
|
|
+ translate([ -(w/2 - bx), 0]) circle(bracket_r);
|
|
|
+ translate([ -(w/2 - bx) - 2*de, 0]) circle(bracket_r);
|
|
|
+ }
|
|
|
+
|
|
|
+ hull() {
|
|
|
+ translate([ (w/2 - bx), 0]) circle(bracket_r);
|
|
|
+ translate([ (w/2 - bx) + 2*de, 0]) circle(bracket_r);
|
|
|
+ }
|
|
|
+
|
|
|
+ // bottom lip attachment
|
|
|
+ //
|
|
|
+ translate([ -(w/2 - 8*mt), -(h/2 - bx)]) circle(br);
|
|
|
+ translate([ (w/2 - 8*mt), -(h/2 - bx)]) circle(br);
|
|
|
+
|
|
|
+ translate([ -(w/2 - 12*mt), -(h/2 - bx)]) circle(br);
|
|
|
+ translate([ (w/2 - 12*mt), -(h/2 - bx)]) circle(br);
|
|
|
+
|
|
|
+ // inner lip bracket catch attachment
|
|
|
+ //
|
|
|
+ /*
|
|
|
+ hull() {
|
|
|
+ translate([ -(w/2 - 12*mt), -(h/2 - bx)]) circle(bracket_r);
|
|
|
+ translate([ -(w/2 - 12*mt), -(h/2 - bx) - 2*de]) circle(bracket_r);
|
|
|
+ }
|
|
|
+
|
|
|
+ hull() {
|
|
|
+ translate([ (w/2 - 12*mt), -(h/2 - bx)]) circle(bracket_r);
|
|
|
+ translate([ (w/2 - 12*mt), -(h/2 - bx) - 2*de]) circle(bracket_r);
|
|
|
+ }
|
|
|
+ */
|
|
|
+
|
|
|
+ // top clearance
|
|
|
+ //
|
|
|
+ translate([0, h/2]) square([12*mt, 3*h/4], center=true);
|
|
|
+ translate([0, h/2]) polygon([ [ -12*mt/2, -3*h/8], [-32*mt/2, 0], [-11*mt/2, 0]]);
|
|
|
+ translate([0, h/2]) polygon([ [ 12*mt/2, -3*h/8], [ 32*mt/2, 0], [ 11*mt/2, 0]]);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+//PopufareHousingFrontInsideSupport2Plate();
|