X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=simplephone-case.scad;h=2cbc5ff1a3412606ef8b5d88e49d2394a1ba1901;hp=5da6f53549da4ffea6559c60f5dd83fe1225f3ff;hb=b5d196171acdb4887099393effc16ccd4db69bf7;hpb=1561bc21e65645892cdef84744d24c10c8a66e93 diff --git a/simplephone-case.scad b/simplephone-case.scad index 5da6f53..2cbc5ff 100644 --- a/simplephone-case.scad +++ b/simplephone-case.scad @@ -2,7 +2,7 @@ psz = [ 120, - 56 + 5, + 56 + 5 - 3.75, 15 + 3, ]; @@ -12,11 +12,11 @@ thick = [ 1.5, ]; -btn_x = 56.4; +btn_x = 59.6; btn_dia = 13; -btn_yprop = 0.23; +btn_y = 14.03; -abtn_x = 43.15; +abtn_x = 46.85; abtn_sz = [ 11, 13 ]; screen_xbot = 79; @@ -25,8 +25,8 @@ screen_sz = [ 35, 46 ]; thumb_xbot = 90; thumb_dia = 25; -vol_xbot = 87.4; -vol_xtop = 106.7; +vol_xbot = 86.5; +vol_xtop = 107.5; vol_depth = 1.0; vol_zsz = 9; vol_zoff = 0; @@ -34,17 +34,24 @@ vol_zoff = 0; rail_ysz = 2.5; rail_zsz = 2.5; +stay_height = 1.49; + case_x_less = 0; //case_x_less = 10; -inner_cnr_rad = 3.0; +inner_cnr_rad = 4.0; // calculated +btn_yprop = btn_y / psz[1]; +echo(btn_yprop); + ym = psz[1]/2; outer_cnr_rad = inner_cnr_rad + thick[2]; x_sliced = outer_cnr_rad * (1-sin(45)); +$screen = true; + module RoundedProfile(sz, cnr_rad){ hull(){ for (x=[ cnr_rad, sz[0]-cnr_rad ]) @@ -55,15 +62,33 @@ module RoundedProfile(sz, cnr_rad){ } module RoundedCube(sz, cnr_rad){ - hull(){ + if ($test) + cube(sz); + else hull(){ for (x=[ cnr_rad, sz[0]-cnr_rad ]) for (y=[ cnr_rad, sz[1]-cnr_rad ]) for (z=[ cnr_rad, sz[2]-cnr_rad ]) translate([x,y,z]) - sphere(r= cnr_rad, $fn=20); + sphere(r= cnr_rad, $fn=40); + } +} + +module Stay(xbot, xtop, width, midgap_width) { + translate([ (xbot+xtop)/2, psz[1]/2, psz[2] ]){ + difference(){ + cube([ xtop-xbot, width, stay_height*2 ], center=true); + if (midgap_width > 0) + cube([ 200, midgap_width, 10 ], center=true); + } } } +module Stays(){ + Stay( 76, 82, 10, 0); + Stay(-0.1, 55, 10, 0); + Stay( 113,125, 70, 15); +} + module Case(){ difference(){ mirror([1,0,0]) @@ -87,11 +112,12 @@ module Case(){ psz[2] ]) cube(concat(abtn_sz, [ thick[2]*3 ]), center=true); - mirror([1,0,0]) + if ($screen) + mirror([1,0,0]) translate([ screen_xbot, (psz[1] - screen_sz[1])/2, - psz[2]-1 ]) - cube(concat(screen_sz, [ thick[2]+2 ])); + psz[2]-3 ]) + cube(concat(screen_sz, [ thick[2]+6 ])); hull(){ for (x=[ thumb_xbot+thumb_dia/2, psz[0]+10 ]) @@ -117,6 +143,8 @@ module Case(){ RoundedCube(psz + [1,0,0], inner_cnr_rad); + Stays(); + if (0) for (m=[0,1]) { translate([0,ym,0]) mirror([0,m,0]) translate([0,-ym,0]) translate([-1,-1, psz[2]-rail_zsz]) @@ -126,5 +154,14 @@ module Case(){ } } +module TestLoop(){ + intersection(){ + Case($screen=false); + translate([ -vol_xbot, 0,0 ]) + cube([ 4, 200,200 ], center=true); + } +} + Case(); +//TestLoop(); //RoundedCube(psz, inner_cnr_rad);