X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=fairphone-case.scad;h=f2352316e3dcae6783ec837d71d6e2edc4912372;hb=2e25482dba1d814c556ec9dd0aff575b53f32f11;hp=ff29be79a9349bdf2f218435767ea47facbb4188;hpb=d4c1cea9e5f126dfa75434af5d04d179f397f972;p=reprap-play.git diff --git a/fairphone-case.scad b/fairphone-case.scad index ff29be7..f235231 100644 --- a/fairphone-case.scad +++ b/fairphone-case.scad @@ -2,7 +2,7 @@ phone = [ 75.0, 145.0 ]; -bumper = [ 0.250, 0.250 ]; +bumper = [ 0.250, -0.025 ]; // ^ One side. Overall size is increased by twice this. // If no bumpers, is the gap around the phone. @@ -24,6 +24,8 @@ jack_dia = 9.1 + .5; // some jack I had lying around noisecancelmic_pos = [ 19.54, 7.37 ]; // from rhs noisecancelmic_dia = 1.75; +fingerpushhole_dias = [ 14, 17 ]; + rearspeaker_pos_bl = [ 14.92, 18.72 ]; rearspeaker_size = [ 3.76, 7.36 ]; @@ -54,6 +56,12 @@ lid_gap_x = 0.25; lid_gap_z = 0.25; lid_lip = 1.75; +foldover_gap = 0.50; +foldover_hinger_gap = 0.50; + +hingescrew_nut_dia = 4.72 + 0.50; // washer, actually +hinger_th = 2; + $fa = 5; $fs = 0.1; @@ -118,6 +126,19 @@ bppL = lpp10 + [5,0]; bppK = [ bppL[0], bppN[1] ]; bppJ = [ bppN[0], bppL[1] ]; +// hinge plan +hp_rn = hingescrew_nut_dia; +hp_r2 = hp_rn + hinger_th; + +hppU = lpp13; +hppS = epp2o[1] + [0,-1] * case_th_bottom; +hp_k = 0.5 * (hppU[1] - hppS[1] + foldover_gap); + +hppM = [ epp4[0] - foldover_hinger_gap - hp_r2, + 0.5 * (hppU + hppS)[1] ]; +hppT = hppM + 0.5 * [0,+1] * hp_k; +hppB = hppM + 0.5 * [0,-1] * hp_k; + module rectfromto(a,b) { ab = b - a; translate([min(a[0], b[0]), min(a[1], b[1])]) @@ -345,6 +366,12 @@ module OrdinaryRearApertures(){ OrdinaryRearAperture(1,1, rearspeaker_pos_bl) rectfromto(-rearspeaker_gap, rearspeaker_size + rearspeaker_gap); + + // finger hole to remove phone + OrdinaryRearAperture(1,0, [ fingerpushhole_dias[0]/2 + epp2i[0], + phone[1]/2 ]) + scale(fingerpushhole_dias) + circle(r= 0.5 ); } module RearCameraAperture(){ @@ -450,11 +477,15 @@ module Lid(){ ////toplevel } } +module TestSelectLength(){ + translate([-30, -200, -20]) + cube([30 + 15, 250, 40]); +} + module TestLength(){ ////toplevel intersection(){ Case(); - translate([-30, -200, -20]) - cube([30 + 15, 250, 40]); + TestSelectLength(); } }