chiark / gitweb /
scaffold-clamp: wip straphook
[reprap-play.git] / fairphone-case.scad
index f3a8e62ee1b4a364e577960e5d81beabb6917da0..2998b54d82d5b98df037a769a11706f42e0b1018 100644 (file)
@@ -253,22 +253,8 @@ hinge_r_arms_gap = 0.55;
 rearspeaker_gap    = [ 2.0, 2.0 ]; // each side
 
 thumbrecess_depth = 1.3;
-
-catch_slop = -0.75;
-
-catch_len = 4.5;
-catch_width = 15;
-catch_thickness = 1.3;
-catch_side_gap = 0.75; // each side
-
-catch_depth = 0.75;
-catch_height = 0.35;
-catch_finger_height = 1.5;
-catch_finger_depth = 2.5;
-catch_catch_slope = 2.00;
-catch_close_slope = 3.00;
-
-catch_topcurve_r = 5.0;
+thumbrecess_width = 16.5;
+thumbrecess_topcurve_r = 5.0;
 
 prop_recess_under = 0.50;
 prop_recess_slop = 0.200; // each side
@@ -285,6 +271,9 @@ prop_prong_heel_slope = 0.5;
 
 lid_fold_clearance_antislop = 0.5;
 
+$button_leg_only = false;
+$suppress_forward_holes = false;
+
 // ---------- calculated ----------
 
 phone_width =  (phone + bumper*2)[0];
@@ -436,25 +425,6 @@ echo("SK",lid_fold_clearance_skew);
 cppA = epp4 + [thumbrecess_depth, 0];
 cppB = [ cppA[0], epp1[1] ];
 
-// catch
-
-cppJ = [ epp4[0] + catch_thickness, lpp10[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 * catch_close_slope ];
-
-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] ];
-
 // lanyard
 
 ly_r = lanyard_half_dia / 2;
@@ -751,7 +721,7 @@ module ButtonCoverReinf(){ ////toplevel
   }
 }
 
-module CatchCutProfile(){
+module ThumbRecessCutProfile(){
   difference(){
     polygon([ cppA + [-10,0],
              cppB + [-10,0],
@@ -983,9 +953,9 @@ module HingePortion(x0,x1){
     children();
 }
 
-module CatchPortion(xwidth, ztop){
-  width = catch_width + xwidth;
-  w = width + catch_topcurve_r*2 + 1;
+module ThumbRecessApply(ztop){
+  width = thumbrecess_width;
+  w = width + thumbrecess_topcurve_r*2 + 1;
   translate([phone_width/2, 0,0]){
     difference(){
       rotate([90,0,-90])
@@ -996,10 +966,10 @@ module CatchPortion(xwidth, ztop){
        linear_extrude(height=100){
        for (m=[0,1]) mirror([m,0,0]) {
          hull(){
-           translate([w/2, ztop - catch_topcurve_r])
-             circle(catch_topcurve_r);
+           translate([w/2, ztop - thumbrecess_topcurve_r])
+             circle(thumbrecess_topcurve_r);
            translate([w/2, -50])
-             square(catch_topcurve_r*2, center=true);
+             square(thumbrecess_topcurve_r*2, center=true);
          }
        }
       }
@@ -1185,9 +1155,11 @@ module Case(){ ////toplevel
     }
 
     // apertures along top edge
-    CaseAperture(jack_pos, jack_dia, 8);
-    Flip_rhs(1)
-      CaseAperture(noisecancelmic_pos, noisecancelmic_dia, 8);
+    if (!$suppress_forward_holes) {
+      CaseAperture(jack_pos, jack_dia, 8);
+      Flip_rhs(1)
+       CaseAperture(noisecancelmic_pos, noisecancelmic_dia, 8);
+    }
 
     OrdinaryRearApertures();
 
@@ -1204,9 +1176,9 @@ module Case(){ ////toplevel
     // screw holes in the hinge arms
     HingeScrews();
 
-    // catch striker
-    CatchPortion(catch_side_gap*2, epp4[1])
-      CatchCutProfile();
+    // thumb recess
+    ThumbRecessApply(epp4[1])
+      ThumbRecessCutProfile();
 
     // lanyard
     Flip_bot(1)
@@ -1753,9 +1725,9 @@ module DemoProfiles(){ ////toplevel
   translate([20,-30]) {
     %EdgeProfile();
     %LidEdgeProfile();
-    //translate([0,0,1]) CatchCutProfile();
+    //translate([0,0,1]) ThumbRecessCutProfile();
     translate([0,0,+1]) color("red")
-      difference(){ EdgeProfile(); CatchCutProfile(); }
+      difference(){ EdgeProfile(); ThumbRecessCutProfile(); }
   }
 
   translate([40,-30]) {