rearspeaker_gap = [ 2.0, 2.0 ]; // each side
thumbrecess_depth = 1.3;
+thumbrecess_width = 16.5;
+thumbrecess_topcurve_r = 5.0;
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_catch_slope = 2.00;
catch_close_slope = 3.00;
-catch_topcurve_r = 5.0;
-
prop_recess_under = 0.50;
prop_recess_slop = 0.200; // each side
prop_end_dia = 0.5;
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;
children();
}
-module CatchPortion(xwidth, ztop){
- width = catch_width + xwidth;
- w = width + catch_topcurve_r*2 + 1;
+module CatchPortion(ztop){
+ width = thumbrecess_width;
+ w = width + thumbrecess_topcurve_r*2 + 1;
translate([phone_width/2, 0,0]){
difference(){
rotate([90,0,-90])
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);
}
}
}
HingeScrews();
// catch striker
- CatchPortion(catch_side_gap*2, epp4[1])
+ CatchPortion(epp4[1])
CatchCutProfile();
// lanyard