chiark / gitweb /
fairphone-case: tidy up catch: Convert to thumbrecess_width.
[reprap-play.git] / fairphone-case.scad
index ba710bd3c9da298aae089186ecf662edb1d7db66..6f6a099fc467b44992ae8c844988b91b97c89f4b 100644 (file)
@@ -210,9 +210,7 @@ lid_gap_z = 0.25;
 lid_lip = 1.75;
 lid_edgepart_width = 5.0;
 lid_buttoncover_thick = 1.3;
-lid_buttoncover_reinf = 1.0;
-
-catch_slop = 0.50;
+lid_buttoncover_reinf = 0.65;
 
 foldover_gap = 0.50;
 foldover_lever_gap = 0.50;
@@ -254,16 +252,20 @@ hinge_r_arms_gap = 0.55;
 
 rearspeaker_gap    = [ 2.0, 2.0 ]; // each side
 
-catch_len = 7.5;
-catch_width = 15;
+thumbrecess_depth = 1.3;
+thumbrecess_width = 16.5;
+
+catch_slop = -0.75;
+
+catch_len = 4.5;
 catch_thickness = 1.3;
-catch_side_gap = 0.75; // each side
 
-catch_depth = 1.25;
+catch_depth = 0.75;
 catch_height = 0.35;
 catch_finger_height = 1.5;
 catch_finger_depth = 2.5;
-catch_catch_slope = 0.25;
+catch_catch_slope = 2.00;
+catch_close_slope = 3.00;
 
 catch_topcurve_r = 5.0;
 
@@ -428,26 +430,10 @@ lid_fold_clearance_skew =
 
 echo("SK",lid_fold_clearance_skew);
 
-// catch
-
-cppJ = [ epp4[0] + catch_thickness, lpp10[1] ];
-cppA = cppJ + [lid_gap_x, -lid_gap_z];
-cppB = [ epp0[0], cppA[1] ];
-cppP = [ epp4[0], cppJ[1] ];
-
-cppS = cppJ + [0,-1] * catch_len;
-cppD = [ cppA[0], cppS[1] + catch_slop ];
-cppC = [ cppB[0], cppD[1] ];
-cppT = cppS + [1, -catch_catch_slope] * catch_depth;
-cppU = cppT + [0,-1] * catch_height;
-cppV = [ cppS[0], cppU[1] - catch_depth ];
+// thumb recess (used to be "catch" hence cpp*
 
-cppR = 0.5*(cppP + cppJ);
-
-cp_rQ = 0.5 * (cppJ[0] - cppP[0]);
-cppQ = [ cppR[0],
-        cppV[1] - (catch_finger_height - cp_rQ) ];
-cppF = [ cppV[0] + catch_finger_depth, cppC[1] ];
+cppA = epp4 + [thumbrecess_depth, 0];
+cppB = [ cppA[0], epp1[1] ];
 
 // lanyard
 
@@ -745,29 +731,14 @@ module ButtonCoverReinf(){ ////toplevel
   }
 }
 
-module CatchCatchProfile(){
-  hull(){
-    for (c=[ cppR, cppQ ])
-      circleat(c, cp_rQ);
-  }
-  hull(){
-    circleat(lpp12, lp_r12);
-    circleat(lpp12 + [5,0], lp_r12);
-    rectfromto(cppP, cppP + [5,0.1]);
-  }
-  polygon([cppJ, cppS, cppT, cppU, cppV, cppQ, cppR]);
-}
-
 module CatchCutProfile(){
-  polygon([ cppB,
-           cppA,
-           cppD,
-           cppF,
-           cppF + [0,-10],
-           cppF + [-10,-10],
-           lpp12 + [-10,0],
-           lpp12 + [10,0]
-           ]);
+  difference(){
+    polygon([ cppA + [-10,0],
+             cppB + [-10,0],
+             cppB,
+             cppA ]);
+    circleat(epp1, r=case_th_side);
+  }
 }
 
 module Flip_rhs(yn=[0,1]) {
@@ -992,8 +963,8 @@ module HingePortion(x0,x1){
     children();
 }
 
-module CatchPortion(xwidth, ztop){
-  width = catch_width + xwidth;
+module CatchPortion(ztop){
+  width = thumbrecess_width;
   w = width + catch_topcurve_r*2 + 1;
   translate([phone_width/2, 0,0]){
     difference(){
@@ -1214,7 +1185,7 @@ module Case(){ ////toplevel
     HingeScrews();
 
     // catch striker
-    CatchPortion(catch_side_gap*2, epp4[1])
+    CatchPortion(epp4[1])
       CatchCutProfile();
 
     // lanyard
@@ -1293,10 +1264,6 @@ module Lid(){ ////toplevel
        LidEdgeProfile();
        HingeLidProfile();
       }
-
-      // catch
-      CatchPortion(0, lpp12[1])
-       CatchCatchProfile();
     }
     Struts(lpp10[0] + strut_min_at_end, lpp13[1], -case_th_lid);
 
@@ -1769,7 +1736,6 @@ module DemoProfiles(){ ////toplevel
     //translate([0,0,1]) CatchCutProfile();
     translate([0,0,+1]) color("red")
       difference(){ EdgeProfile(); CatchCutProfile(); }
-    color("blue") CatchCatchProfile();
   }
 
   translate([40,-30]) {