chiark / gitweb /
fairphone-case: rename lid_fold_clearance_skew (nfc)
[reprap-play.git] / fairphone-case.scad
index 41bad57660bfe76e488520c12b7fba7705a2dba6..e6fe93b1ba1f3d3e20c88aec06a2e4185b257d7f 100644 (file)
@@ -408,6 +408,12 @@ chk(hex22, 10.9975);
 chk(hex23, 13.74);
 chk(hex24, 18.75);
 
+lid_fold_clearance_skew =
+  (lpp10[1] - hppB[1]) /
+  (lpp10[0] - hppB[0]);
+
+echo("SK",lid_fold_clearance_skew);
+
 // catch
 
 cppJ = [ epp4[0] + catch_thickness, lpp10[1] ];
@@ -522,11 +528,12 @@ module LidEdgeProfile(){
 }
 
 module LidEdgeFoldClearanceProfile(){
-  polygon([ lpp10 + [0,  -10],
+  polygon([ lpp10,
            lpp11,
-           lpp11 + [20,   0],
-           lpp10 + [20, -10]
-           ]);
+           lpp11 + [-20,  0],
+           lpp11 + [-20, 20],
+           lpp11 + [+20, 20],
+           lpp10 + [+20,  0] ]);
 }
 
 module ButtonCoverProfile(){
@@ -832,7 +839,7 @@ module HingePortion(x0,x1){
     mirror([1,0,0])
     rotate([90,0,-90])
     linear_extrude(height=x1-x0)
-    children(0);
+    children();
 }
 
 module CatchPortion(width){
@@ -1072,8 +1079,19 @@ module Lid(){ ////toplevel
   skew_centre = [0, lpp11[0], lpp11[1]];
   difference(){
     union(){
-      LidAroundEdges()
-       LidEdgeProfile();
+      intersection(){
+       LidAroundEdges()
+         LidEdgeProfile();
+
+       translate(skew_centre)
+         multmatrix([[ 1, 0, 0, 0 ],
+                     [ 0, 1, -lid_fold_clearance_skew, 0 ],
+                     [ 0, 0, 1, 0 ],
+                     [ 0, 0, 0, 1 ]])
+         translate(-skew_centre)
+         LidAroundEdges()
+         LidEdgeFoldClearanceProfile();
+      }
 
       // button covers
       Buttons(){
@@ -1090,7 +1108,10 @@ module Lid(){ ////toplevel
       }
 
       // hinge arms
-      HingePortion(hex20, hex21) HingeLidProfile();
+      HingePortion(hex20, hex21) {
+       LidEdgeProfile();
+       HingeLidProfile();
+      }
 
       // catch
       CatchPortion(catch_width)
@@ -1098,15 +1119,6 @@ module Lid(){ ////toplevel
     }
     Struts(lpp10[0] + strut_min_at_end, lpp13[1], -case_th_lid);
 
-    translate(skew_centre)
-      multmatrix([[ 1, 0, 0, 0 ],
-                 [ 0, 1, 2, 0 ],
-                 [ 0, 0, 1, 0 ],
-                 [ 0, 0, 0, 1 ]])
-      translate(-skew_centre)
-      LidAroundEdges()
-      LidEdgeFoldClearanceProfile();
-
     // screw holes in the hinge arms
     HingeScrews();