X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=fairphone-case.scad;h=deb40ba01a1036cc2a0c879f7311e665e0427335;hb=2770e3844f3885e574bd4bc029d6b15efef060a9;hp=c22f1bcc27e9b42ebe9d0b70ac94a25dacdeadfa;hpb=aa025aa7d75f68f7b8fb05a5f90aafae61336017;p=reprap-play.git diff --git a/fairphone-case.scad b/fairphone-case.scad index c22f1bc..deb40ba 100644 --- a/fairphone-case.scad +++ b/fairphone-case.scad @@ -25,6 +25,7 @@ initial_layer_width = 0.125; // ^ needed for mode 3 only multicolour_gap = 0.15; // each side phone_cnr_rad = 6.0; +phone_rim_depth = 0.80; // includes allowance for a screen protector button_cutout_depth = 9; @@ -39,7 +40,7 @@ camera_pos_br = [ 22.300, 37.600 ]; // tl/br as seen from back jack_pos = [ 13.83, 8.485 ]; jack_dia = 10.64 + .5; // some jack I had lying around -led_pos = [ 12.50, 8.00 ]; +led_pos = [ 10.86, 8.58 ]; led_aperture = 5; led_window_ledge = 0.75; // each side @@ -196,7 +197,19 @@ kppa = [ kppb[0], kppf[1] ]; lpp10 = [ epp5[0] + lid_gap_x, kppc[1] + lid_gap_z ]; lpp11 = [ lpp10[0], epp5[1] + lid_gap_z ]; -lp_r12 = case_th_lid - (lpp11[1] - lpp10[1]); +lpp14 = lpp10 + [1,0] * keeper_inner_width; +// exact x posn not very important; must extend past end of keeper + +lpp15 = [ lpp14[0], + epp0[1] - phone_rim_depth + 1/2.5 * case_th_lid ]; +// ^ beam theory says to maximise force before contact, +// the gap below the `beam' (the lid) must be 1/3 +// the thickness (ie the lid thickness) if the beam +// is solid, or 1/2 if it has a top and bottom only. +// ours is mostly solid. + +lp_r12 = max(case_th_lid - (lpp11[1] - lpp15[1]), + case_th_lip); lpp12 = [ epp4[0] + lp_r12, lpp11[1] ]; lpp13 = [ lpp12[0], lpp12[1] + lp_r12 ]; @@ -377,7 +390,9 @@ module LidEdgeProfile(){ lpp12, lpp13, lpp13 + [10, 0], - lpp10 + [10, 0] + lpp15 + [10, 0], + lpp15, + lpp14, ]); intersection(){ circleat(lpp12, r=lp_r12); @@ -1144,6 +1159,8 @@ module TestSelectFrame(){ module TestSelectLidFrame(){ TestSelectFrame(); + translate([led_pos[0], -led_pos[1], -50]) + cylinder(r= nla_r2+2, h=100); } module TestFrameCase(){ ////toplevel