chiark / gitweb /
fairphone-case: Lid: Struts - fix to remove a debugging %
[reprap-play.git] / fairphone-case.scad
index 5cd591e09fd9aec157e427b4037b50613d66615b..365aa933b68ee19a07668d8b87a624e5ae6c0c2b 100644 (file)
@@ -47,6 +47,8 @@ $fs = 0.1;
 
 button_l_fudge = 4.5;
 
+strut_min_at_end = 1.5;
+
 // ---------- calculated ----------
 
 // ----- could be changed -----
@@ -245,18 +247,21 @@ module AroundEdges(fill_zstart, fill_th, fill_downwards=0){
               [phone_width, -phone_height] + [-1,+1] * phone_cnr_rad);
 }
 
-module Struts(z_min, th){
+module Struts(x_start, z_min, th){
+  // if th is negative, starts at z_min and works towards -ve z
+  // and object should then be printed other way up
   for (i= [1 : 1 : case_struts_count]) {
     translate([0,
               0,
               z_min])
+      mirror([0,0, th<0 ? 1 : 0])
       translate([0,
-              -phone_height * i / (case_struts_count+1),
-              case_struts_solid_below])
-      linear_extrude(height= th
+                -phone_height * i / (case_struts_count+1),
+                case_struts_solid_below])
+      linear_extrude(height= abs(th)
                     -(case_struts_solid_below+case_struts_solid_above))
-      rectfromto([               epp2i[0], -0.5 * case_struts_width ],
-                [ phone_width - epp2i[0], +0.5 * case_struts_width ]);
+      rectfromto([               x_start, -0.5 * case_struts_width ],
+                [ phone_width - x_start, +0.5 * case_struts_width ]);
   }
 }
 
@@ -305,13 +310,18 @@ module Case(){ ////toplevel
       rectfromto(camera_pos_tl, camera_pos_br);
 
     // struts (invisible, because they're buried in the case)
-    Struts(epp2i[1] - case_th_bottom, case_th_bottom);
+    Struts(epp2i[0], epp2i[1] - case_th_bottom, case_th_bottom);
   }
 }
 
 module Lid(){ ////toplevel
-  AroundEdges(lpp10[1], lpp13[1] - lpp10[1], 0)
-    LidEdgeProfile();
+  difference(){
+    union(){
+      AroundEdges(lpp10[1], lpp13[1] - lpp10[1], 0)
+        LidEdgeProfile();
+    }
+    Struts(lpp10[0] + strut_min_at_end, lpp13[1], -case_th_lid);
+  }
 }
 
 module TestLength(){ ////toplevel