chiark / gitweb /
fairphone-case: Flip_hinge: support doflip=0 (nfc)
[reprap-play.git] / fairphone-case.scad
index f182ac89a85d7d0c182482be084a01d9d981a506..35ffc96b9f1673ba47d39159298eab37ace3f291 100644 (file)
@@ -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,19 +589,23 @@ 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])
+      rotate(-s * 45)
+      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);
   }
 }
 
-module Flip_hinge(){
+module Flip_hinge(doflip=1){
   hinge_origin = [0, -(phone_height - hppB[0]), hppB[1]];
   translate(hinge_origin)
-    rotate([180,0,0])
+    rotate([doflip*180,0,0])
     translate(-hinge_origin)
     children();
 }