chiark / gitweb /
simplephone-case: wip rounded
[reprap-play.git] / simplephone-case.scad
index b8fea21ddb800356be2421bb9ca6d6e52f898471..b1a126bccc8623312a7989b94997a34495d4a65a 100644 (file)
@@ -8,7 +8,7 @@ psz = [
 
 thick = [
         2,
-        3,
+        2,
         2.5,
         ];
 
@@ -30,18 +30,41 @@ 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];
+
+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]);
+      RoundedCube(psz
+                 + 2*thick
+                 - [1,0,0] * (thick[0])
+                 - [case_x_less, 0, 0],
+                 outer_cnr_rad);
 
     for (yp= [ btn_yprop, 1-btn_yprop ])
       translate([ -btn_x,
@@ -70,11 +93,15 @@ module Case(){
                   $fn= 20);
     }
 
+    //translate([ thick[0] - 
+    //cube([
+
     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 +111,4 @@ module Case(){
 }
 
 Case();
+//RoundedCube(psz, inner_cnr_rad);