瀏覽代碼

inner lip support alignment and lip-bracket alignment

abetusk 5 年之前
父節點
當前提交
8177f7a49f

+ 1 - 1
experiment/production/housing/v-acorn-squash/PopufareHousingFrontAngle.scad

@@ -217,4 +217,4 @@ module PopufareHousingFrontAnglePlate() {
   PopufareHousingFrontAnglePlate_capacitive_waveshare();
 }
 
-PopufareHousingFrontAnglePlate();
+//PopufareHousingFrontAnglePlate();

+ 19 - 2
experiment/production/housing/v-acorn-squash/PopufareHousingFrontInsideSupport.scad

@@ -8,7 +8,7 @@
 
 include <PopufareHousingCommon.scad>
 
-module PopufareHousingFrontInsideSupportPlate() {
+module PopufareHousingFrontInsideSupport1Plate() {
 
   w = POPUFARE_HOUSING_WIDTH;
   h = POPUFARE_FRONT_HEIGHT;
@@ -66,8 +66,25 @@ module PopufareHousingFrontInsideSupportPlate() {
     translate([ -(w/2 - 8*mt), -(h/2 - bx)]) circle(br);
     translate([  (w/2 - 8*mt), -(h/2 - bx)]) circle(br);
 
+    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], [-20*mt/2, 0], [-11*mt/2, 0]]);
+    translate([0, h/2]) polygon([ [  12*mt/2, -3*h/8], [ 20*mt/2, 0], [ 11*mt/2, 0]]);
+
+
   }
 
 }
 
-//PopufareHousingFrontInsideSupportPlate();
+//PopufareHousingFrontInsideSupport1Plate();

+ 96 - 0
experiment/production/housing/v-acorn-squash/PopufareHousingFrontInsideSupport2.scad

@@ -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], [-20*mt/2, 0], [-11*mt/2, 0]]);
+    translate([0, h/2]) polygon([ [  12*mt/2, -3*h/8], [ 20*mt/2, 0], [ 11*mt/2, 0]]);
+
+  }
+
+}
+
+//PopufareHousingFrontInsideSupport2Plate();

+ 12 - 2
experiment/production/housing/v-acorn-squash/PopufareHousingFrontInsideAlign.scad

@@ -8,7 +8,7 @@
 
 include <PopufareHousingCommon.scad>
 
-module PopufareHousingFrontInsideAlignPlate() {
+module PopufareHousingFrontInsideSupport3Plate() {
 
   w = POPUFARE_HOUSING_WIDTH;
   h = POPUFARE_FRONT_HEIGHT;
@@ -63,6 +63,9 @@ module PopufareHousingFrontInsideAlignPlate() {
 
     // bottom lip attachment
     //
+    translate([ -(w/2 - 12*mt), -(h/2 - bx)]) circle(br);
+    translate([  (w/2 - 12*mt), -(h/2 - bx)]) circle(br);
+
     hull() {
       translate([ -(w/2 - 8*mt), -(h/2 - bx)]) circle(bracket_r);
       translate([ -(w/2 - 8*mt), -(h/2 - bx) - 2*de]) circle(bracket_r);
@@ -73,8 +76,15 @@ module PopufareHousingFrontInsideAlignPlate() {
       translate([  (w/2 - 8*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], [-20*mt/2, 0], [-11*mt/2, 0]]);
+    translate([0, h/2]) polygon([ [  12*mt/2, -3*h/8], [ 20*mt/2, 0], [ 11*mt/2, 0]]);
+
+
   }
 
 }
 
-//PopufareHousingFrontInsideAlignPlate();
+//PopufareHousingFrontInsideSupport3Plate();

+ 96 - 0
experiment/production/housing/v-acorn-squash/PopufareHousingFrontInsideSupport4.scad

@@ -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 PopufareHousingFrontInsideSupport4Plate() {
+
+  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
+    //
+    hull() {
+      translate([ -(w/2 - 8*mt), -(h/2 - bx)]) circle(bracket_r);
+      translate([ -(w/2 - 8*mt), -(h/2 - bx) - 2*de]) circle(bracket_r);
+    }
+
+    hull() {
+      translate([  (w/2 - 8*mt), -(h/2 - bx)]) circle(bracket_r);
+      translate([  (w/2 - 8*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);
+    }
+
+    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], [-20*mt/2, 0], [-11*mt/2, 0]]);
+    translate([0, h/2]) polygon([ [  12*mt/2, -3*h/8], [ 20*mt/2, 0], [ 11*mt/2, 0]]);
+
+  }
+
+}
+
+//PopufareHousingFrontInsideSupport4Plate();

+ 19 - 0
experiment/production/housing/v-acorn-squash/housing_layout_3d.scad

@@ -3,6 +3,12 @@ include <PopufareHousingCommon.scad>
 include <PopufareHousingBottom.scad>
 include <PopufareHousingFrontAngle.scad>
 include <PopufareHousingFrontBottom.scad>
+
+include <PopufareHousingFrontInsideSupport1.scad>
+include <PopufareHousingFrontInsideSupport2.scad>
+include <PopufareHousingFrontInsideSupport3.scad>
+include <PopufareHousingFrontInsideSupport4.scad>
+
 include <PopufareHousingSideLeft.scad>
 include <PopufareHousingSideRight.scad>
 include <PopufareHousingTop.scad>
@@ -40,6 +46,19 @@ translate( [  (dw/2+spacing), 0, dh/2 + spacing ] ) rotate(90, [0,1,0]) rotate(9
 translate( [ 0, -(dh/2 + spacing), hh/2 + spacing]) rotate(90, [1,0,0])
   PopufareHousingFrontBottomPlate();
 
+translate( [ 0, -(dh/2 + spacing - 20), hh/2 + spacing]) rotate(90, [1,0,0])
+  PopufareHousingFrontInsideSupport1Plate();
+
+translate( [ 0, -(dh/2 + spacing - 40), hh/2 + spacing]) rotate(90, [1,0,0])
+  PopufareHousingFrontInsideSupport2Plate();
+
+translate( [ 0, -(dh/2 + spacing - 60), hh/2 + spacing]) rotate(90, [1,0,0])
+  PopufareHousingFrontInsideSupport3Plate();
+
+translate( [ 0, -(dh/2 + spacing - 80), hh/2 + spacing]) rotate(90, [1,0,0])
+  PopufareHousingFrontInsideSupport4Plate();
+
+
 translate( [ 0, -dz/2, hh + sqrt(2)*(dh-hh)/2 + spacing] ) rotate(45, [1,0,0])
   PopufareHousingFrontAnglePlate();