+ 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,
+ 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);
+
+ if ($screen)
+ mirror([1,0,0])
+ translate([ screen_xbot,
+ (psz[1] - screen_sz[1])/2,
+ psz[2]-3 ])
+ cube(concat(screen_sz, [ thick[2]+6 ]));
+
+ 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])
+ translate([ (vol_xbot+vol_xtop)/2, 0, psz[2]/2 + vol_zoff ])
+ cube([ vol_xtop-vol_xbot, vol_depth*2, vol_zsz ], center=true);
+
+ 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(){
+ 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])
+ cube([psz[0]+1, rail_ysz+1, rail_zsz+1]);
+ }
+ }
+ }
+}