X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=simplephone-case.scad;h=caf465e496b3d2a20b80dcb414cc36d5f390f946;hb=7c29da5a11949c8aaf416934dc71d4a86c8e2dda;hp=6b3f7083abff57b6a3422efced3d89cd5933c759;hpb=b7c8603a4f23ca2e9528b45f7e70872f8ac9fb10;p=reprap-play.git diff --git a/simplephone-case.scad b/simplephone-case.scad index 6b3f708..caf465e 100644 --- a/simplephone-case.scad +++ b/simplephone-case.scad @@ -8,26 +8,61 @@ psz = [ thick = [ 2, - 3, + 2, 2.5, ]; btn_x = 58; -btn_dia = 14; +btn_dia = 13; btn_yprop = 0.23; +abtn_x = 45; +abtn_sz = [ 11, 13 ]; + +screen_xbot = 67; +screen_sz = [ 45, 46 ]; + +thumb_xbot = 90; +thumb_dia = 25; + rail_ysz = 2.5; rail_zsz = 2.5; +case_x_less = 0; //case_x_less = 10; + +inner_cnr_rad = 2.0; + // calculated ym = psz[1]/2; +module RoundedProfile(sz, cnr_rad){ + hull(){ + for (x=[ cnr_rad, sz[0]-cnr_rad ]) + for (y=[ cnr_rad, sz[1]-cnr_rad ]) + translate([x,y]) + circle(r= cnr_rad, $fn=20); + } +} + +module RoundedCube(sz, cnr_rad){ + 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); + } +} + module Case(){ difference(){ mirror([1,0,0]) translate(-thick) - cube(psz + 2*thick - [1,0,0] * (thick[0])); + cube(psz + + 2*thick + - [1,0,0] * (thick[0]) + - [case_x_less, 0, 0]); for (yp= [ btn_yprop, 1-btn_yprop ]) translate([ -btn_x, @@ -35,6 +70,27 @@ module Case(){ 0.5 * psz[2] ]) cylinder(r= btn_dia/2, h=20); + translate([ -abtn_x, + btn_yprop * psz[1], + psz[2] ]) + cube(concat(abtn_sz, [ thick[2]*3 ]), center=true); + + mirror([1,0,0]) + translate([ screen_xbot, + (psz[1] - screen_sz[1])/2, + psz[2]-1 ]) + cube(concat(screen_sz, [ thick[2]+2 ])); + + hull(){ + for (x=[ thumb_xbot+thumb_dia/2, psz[0]+10 ]) + translate([ -x, + ym, + -thick[2]-1 ]) + cylinder(r= thumb_dia/2, + h= thick[2] + 2, + $fn= 20); + } + mirror([1,0,0]) difference(){ cube(psz + [1,0,0]); @@ -49,3 +105,4 @@ module Case(){ } Case(); +//RoundedCube(psz, inner_cnr_rad);