chiark / gitweb /
fairphone-case: camera adj from v1
[reprap-play.git] / fairphone-case.scad
index bfa7d41242f2e5259d873e99aedfc190c2836a89..9335b35780ba134812a6bac15aadbb0027171c6f 100644 (file)
@@ -9,7 +9,7 @@ phone_edge_thick = 9.0;
 phone_total_thick = 12.0;
 phone_backside_slope = 1.0; // larger means shallower
 
-camera_pos_tl = [  7.5, 13.5 ]; // measured from tl corner
+camera_pos_tl = [  7.0, 13.0 ]; // measured from tl corner
 camera_pos_br = [ 24.0, 39.5 ]; // tl/br as seen from back
 
 case_th_bottom = 2;
@@ -76,7 +76,7 @@ module KeeperProfile(){
 module EdgeProfile(){
   difference(){
     hull(){
-      circleat(epp3, r=case_th_bottom);
+      translate(epp3) square(case_th_bottom*2, center=true);
       circleat(epp2, r=case_th_bottom);
       circleat(epp1, r=case_th_side);
       rectfromto(epp0, epp4);
@@ -121,13 +121,13 @@ module CaseBase_botflip() {
   }
 }  
 
-module CaseBase(){
+module AroundEdges(fill_zstart, fill_th, fill_downwards=0){
   // sides
   CaseBase_rhsflip(){
     translate([0, -phone_cnr_rad, 0])
       rotate([90,0,0])
       linear_extrude(height = phone_height - phone_cnr_rad*2)
-      EdgeProfile();
+      children(0);
   }
   // corners
   CaseBase_rhsflip() CaseBase_botflip() {
@@ -137,7 +137,7 @@ module CaseBase(){
          intersection(){
            mirror([1,0,0])
              translate([-1,0] * phone_cnr_rad)
-             EdgeProfile();
+             children(0);
            rectfromto([0,-20],[10,20]);
          }
        translate([-10, 0, -20] + 0.01 * [+1,-1, 0] )
@@ -149,16 +149,21 @@ module CaseBase(){
     translate([ phone_width - phone_cnr_rad, 0,0 ])
       rotate([90,0,-90])
       linear_extrude(height = phone_width - phone_cnr_rad*2)
-      EdgeProfile();
+      children(0);
   }
   // fill
-  translate([0,0, epp3[1]])
-    mirror([0,0, 1])
-    linear_extrude(height = case_th_bottom)
+  translate([0,0, fill_zstart])
+    mirror([0,0, fill_downwards])
+    linear_extrude(height = fill_th)
     rectfromto([+1,-1] * phone_cnr_rad,
               [phone_width, -phone_height] + [-1,+1] * phone_cnr_rad);
 }
 
+module CaseBase(){
+  AroundEdges(epp3[1], case_th_bottom, 1)
+    EdgeProfile();
+}
+
 module Case(){ ////toplevel
   difference(){
     CaseBase();
@@ -183,6 +188,11 @@ module Case(){ ////toplevel
   }
 }
 
+module Lid(){ ////toplevel
+  AroundEdges(lpp10[1], lpp13[1] - lpp10[1], 0)
+    LidEdgeProfile();
+}
+
 module TestLength(){ ////toplevel
   intersection(){
     Case();