From f2f12d8b176318338e163d3a654f207d781b754c Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 26 Jan 2018 21:16:59 +0000 Subject: [PATCH] fairphone-case: new style prop: buildout seems to be there... Signed-off-by: Ian Jackson --- fairphone-case.scad | 58 +++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/fairphone-case.scad b/fairphone-case.scad index a41afd9..a434efe 100644 --- a/fairphone-case.scad +++ b/fairphone-case.scad @@ -4,6 +4,8 @@ include phone = [ 75.0, 145.0 ]; +prop_x_pos = 18; + prop_angles = [ 15, 30, 45, 60 ]; bumper = [ 0.250, -0.025 ]; @@ -119,7 +121,6 @@ prop_main_width = 3; prop_side_gap = 0.75; // each side prop_caserecess_behind = 0.75; prop_caserecess_taper = 0.25; // each side -prop_x_pos = 30; // ---------- calculated ---------- @@ -137,11 +138,11 @@ lid_buttoncover_overlap = case_th_lip + keeper_gap_z_top; phone_backside_slope_thick = phone_total_thick - phone_edge_thick; -prop_lidrecess_depth = case_th_lid - prop_recess_under; +//prop_lidrecess_depth = case_th_lid - prop_recess_under; -prop_nose_len = case_th_lid - prop_recess_under; -prop_recess_slope = tan(prop_max_angle); // bigger means steeper -prop_recess_width = prop_main_th / cos(prop_max_angle) + prop_backfwd_gap; +//prop_nose_len = case_th_lid - prop_recess_under; +//prop_recess_slope = tan(prop_max_angle); // bigger means steeper +//prop_recess_width = prop_main_th / cos(prop_max_angle) + prop_backfwd_gap; //lid_lip_overlap_width xxx bad name = ; @@ -243,27 +244,20 @@ cppQ = [ cppR[0], cppV[1] - (catch_finger_height - cp_rQ) ]; cppF = [ cppV[0] + catch_finger_depth, cppC[1] ]; -// prop recess in lid - -prl_r1 = prop_end_dia/2 + prop_recess_slop; // radius of end - -prlp1 = [ lpp10[0] + prop_recess_slop + prop_end_dia/2, - lpp10[1] + prop_recess_slop + prop_end_dia/2 ]; +// prop recess -// prop recess in case +prop_recess_hw = 0.5 * prop_main_width + prop_side_gap; -prcp2 = [ epp1[0], case_bottom_z ]; // protrusion corner +prcp2 = [ epp4[0], case_bottom_z ]; -prc_r2 = prop_end_dia/2 + prop_recess_slop; // radius of end +prop_caserecess_buildout_r = prcp2[0] - epp2o[0]; -prcp1_y = epp2o[1] - prop_recess_under - prc_r2; -prcp2_x = prcp2[0] + prop_caserecess_behind + prc_r2 + - (prcp1_y - case_bottom_z) * prop_caserecess_taper; -prcp2 = [ prcp1_x, prcp1_y ]; // centre of tip circle +prc_r1 = prop_end_dia/2; +prc_r3 = prc_r1 + prop_recess_slop; +echo(prc_r3); -prop_recess_hw = 0.5 * prop_main_width + prop_side_gap; - -prop_caserecess_buildout_r = prcp2[0] - epp2o[0]; +prcp1 = [ prcp2[0] + prop_caserecess_behind + prc_r3, + epp2i[1] - prc_r3 ]; // ---------- modules ---------- @@ -626,6 +620,16 @@ module Case(){ ////toplevel // hinge HingePortion(hex20, hex21) HingeBaseProfile(); + + // buildout for prop recess + Flip_rhs(1) + linextr(case_bottom_z, epp2i[1]) + hull() { + for (dxs = [-1,+1]) + circleat([ prop_x_pos + dxs * prop_caserecess_buildout_r, + -epp2o[0] ], + r = epp2o[0] - prcp2[0]); + } } // slot for keeper @@ -669,14 +673,6 @@ module Case(){ ////toplevel ButtonPlan($button_l, 1,1); } - // buildout for prop recess - Flip_rhs(1) - linextr(-case_th_bottom, epp2i) - hull() { - for (dxs = [-1,+1]) - circleat([ prop_x_pos + dxs * prop_caserecess_buildout_r, - epp2o[0] ]); - } } // apertures along top edge @@ -705,14 +701,14 @@ module Case(){ ////toplevel // prop recess Flip_rhs(1) - translate([0,0,x]) + translate([0,0,1]) rotate([90,0,90]) linextr(-prop_recess_hw, +prop_recess_hw) hull(){ for (zs=[ -1,0,+1 ]) circleat(prcp2 + 20*(abs(zs) * [0,-1] + zs * [1,0] * prop_caserecess_taper), - pr_r2); + prc_r3); } } } -- 2.30.2