X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=simplephone-case.scad;h=95593388de4bb6fdd04dcdcdc7e0333e834dcdf0;hb=d7c194afb634ed8f3dfaa22dd6f7f9ae791843cf;hp=b8fea21ddb800356be2421bb9ca6d6e52f898471;hpb=371f759f3dd99928c6cbbe22914363fd02a9a378;p=reprap-play.git diff --git a/simplephone-case.scad b/simplephone-case.scad index b8fea21..9559338 100644 --- a/simplephone-case.scad +++ b/simplephone-case.scad @@ -8,8 +8,8 @@ psz = [ thick = [ 2, - 3, - 2.5, + 2, + 1.5, ]; btn_x = 58; @@ -30,18 +30,45 @@ rail_zsz = 2.5; case_x_less = 0; //case_x_less = 10; +inner_cnr_rad = 3.0; + // calculated ym = psz[1]/2; +outer_cnr_rad = inner_cnr_rad + thick[2]; + +x_sliced = outer_cnr_rad * (1-sin(45)); + +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]) - - [case_x_less, 0, 0]); + translate(-thick + + - [1,0,0] * x_sliced) + RoundedCube(psz + + 2*thick + - [1,0,0] * (thick[0]) + + [1,0,0] * (x_sliced) + - [case_x_less, 0, 0], + outer_cnr_rad); for (yp= [ btn_yprop, 1-btn_yprop ]) translate([ -btn_x, @@ -70,11 +97,17 @@ module Case(){ $fn= 20); } + translate([ thick[0], -10, -10 ]) + cube([ 10, psz[1]+20, psz[2]+20 ]); + + //translate([-50,-50,10]) cube([100,100,100]); + mirror([1,0,0]) difference(){ - cube(psz + [1,0,0]); + RoundedCube(psz + [1,0,0], + inner_cnr_rad); - for (m=[0,1]) { + 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]) cube([psz[0]+1, rail_ysz+1, rail_zsz+1]); @@ -84,3 +117,4 @@ module Case(){ } Case(); +//RoundedCube(psz, inner_cnr_rad);