chiark / gitweb /
simplephone-case: screen
[reprap-play.git] / simplephone-case.scad
index 8adc4d8b0c50ae07761d4f261b53f03f128111bb..46609d53dc287030a60f8a6c611fa3c009e46897 100644 (file)
@@ -12,14 +12,61 @@ thick = [
         2.5,
         ];
 
+btn_x = 58;
+btn_dia = 13;
+btn_yprop = 0.23;
+
+abtn_x = 45;
+abtn_sz = [ 11, 13 ];
+
+screen_xbot = 67;
+screen_sz = [ 45, 46 ];
+
+rail_ysz = 2.5;
+rail_zsz = 2.5;
+
+case_x_less = 0; //case_x_less = 10;
+
+// calculated
+
+ym = psz[1]/2;
+
 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,
+                 yp * psz[1],
+                 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 ]));
+
+    mirror([1,0,0])
+      difference(){
+       cube(psz + [1,0,0]);
 
-    #mirror([1,0,0])
-      cube(psz + [1,0,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]);
+       }
+      }
   }
 }