chiark / gitweb /
fairphone-case: Rework HingeLeverInnerProfile, prep for change angles (nfc)
[reprap-play.git] / fairphone-case.scad
index b06b1741b5b9df8b53c5cd487a8b494e687cca2f..04c4d61b93c93c6c11f5717a98d86a11bedca2a1 100644 (file)
@@ -26,7 +26,7 @@ phone_backside_slope_outer = 1.0; // larger means shallower
 camera_pos_tl = [  6.450, 12.750 ]; // measured from tl corner
 camera_pos_br = [ 22.300, 37.600 ]; // tl/br as seen from back
 
-jack_pos = [ 14.38, 7.96 ];
+jack_pos = [ 13.83, 8.485 ];
 jack_dia = 10.64 + .5; // some jack I had lying around
 
 noisecancelmic_pos = [ 19.54, 7.37 ];   // from rhs
@@ -189,6 +189,9 @@ bppO = [ bppN[0], bppP[1] ];
 bppL = lpp10 + [5,0];
 bppK = [ bppL[0], bppN[1] ];
 bppJ = [ bppN[0], bppL[1] ];
+bppU = [ bppJ[0], lpp12[1] ];
+bppV = lpp11;
+bppW = lpp10;
 
 // hinge plan
 hp_rn = hingescrew_nut_dia/2;
@@ -321,7 +324,9 @@ module LidEdgeProfile(){
 
 module ButtonCoverProfile(){
   intersection(){
-    polygon([ bppM, bppP, bppO, bppJ, bppL, bppK ]);
+    polygon(concat([ bppM, bppP, bppO, bppJ ],
+                  (enable_support ? [ bppU, bppV, bppW ] : []),
+                  [ bppL, bppK ]));
     hull(){
       EdgeProfile();
       LidEdgeProfile();
@@ -584,12 +589,15 @@ module HingeLeverOuterProfile(){
 }
 
 module HingeLeverInnerProfile(){
-  for (c = [hppT, hppB]) {
-    hull()
+  for (s = [-1,+1]) {
+    c = s > 0 ? hppT : hppB;
+    translate(c)
+      mirror([0,0,s>0])
+      hull()
       for (x=[-20,20])
-       for (y=[0, c[1] - hppM[1]])
+       for (y=[0, s * 10])
          translate([x,y])
-           circleat(c, hp_rn);
+           circle(hp_rn);
   }
 }