diff --git a/main.scad b/main.scad index 7494406..cc13774 100644 --- a/main.scad +++ b/main.scad @@ -55,19 +55,20 @@ module phone_harness() { ps=[ops.x+0.2, ops.y+0.2, ops.z+0.2]; shell_wall=3; shell_rim_wall=3; - rim_edge_thickness=1.2; + rim_edge_thickness=1.5; rim_edge_tolerance=0.4; - expose_back_camera=false; + expose_back_camera=true; screwmount_screw=3; harness_divider=[1, 0, 1.3]; harness_size=[ps.x+shell_wall*2, ps.y+shell_wall*2, ps.z+shell_wall*2]; - rim_size=[harness_size.x+2*shell_rim_wall, harness_size.y+2*shell_rim_wall, 6]; + rim_size=[harness_size.x+2*shell_rim_wall, harness_size.y+2*shell_rim_wall, 8]; w=shell_wall; f=2; rf=5; hs=harness_size; - backplane_rim_size=[30, ps.y*0.95, shell_wall/2]; + backplane_rim_size=[40, ps.y*0.95, shell_wall/2]; + backplane_teeth=6; // ==== SHELL ==== @@ -130,19 +131,23 @@ module phone_harness() { } } module shell_backplane(groove) { - down(hs.z/2 - shell_wall/6) up(backplane_rim_size.z/2) right(harness_divider.x) { + module groove_scale() { scale([groove?1.05:1, groove?1.05:1, groove?1.2:1]) children(); } + down(hs.z/2 - shell_wall/3) up(backplane_rim_size.z/2) right(harness_divider.x) { back(backplane_rim_size.y/2) { - teeth=4; + teeth=backplane_teeth; segment=backplane_rim_size.y/teeth; tooth_size=[backplane_rim_size.x, segment/2, backplane_rim_size.z]; + joiner_base=5; + joiner_size=[joiner_base + (groove?backplane_pip_slideout:0), segment*1.5, backplane_rim_size.z]; for (i = [0:teeth-1]) { - fwd(i*segment) fwd(tooth_size.y) scale(groove ? 1.02 : 1) cubi(tooth_size, fillet=2, edges=EDGES_Z_LF); + fwd(i*segment) fwd(tooth_size.y) { + groove_scale() cubi(tooth_size, fillet=0.5, edges=EDGES_X_ALL); + if (i%2 == 0) { + left(backplane_rim_size.x/2 + joiner_base/2) fwd(joiner_size.y/3) left(-joiner_size.x/2) groove_scale() cubi(joiner_size, fillet=2, edges=EDGES_Z_ALL); + } + } } } - left(backplane_pip_slideout + 11) if (is_model_strict(MODEL_HARNESS_BOTTOM_PIP)) { - joiner_size=[7 + (groove?backplane_pip_slideout:0), backplane_rim_size.y, backplane_rim_size.z]; - scale(groove ? 1.02 : 1) left(-joiner_size.x/2) cubi(joiner_size, fillet=2, edges=EDGES_Z_LF); - } } } @@ -244,7 +249,7 @@ module phone_harness() { d1=8.8; d2=14; p=[ps.x/2, ps.y/2-24, -0.88]; - h=30; + h=22; translate(p) yrot(90) down(10) cylinder(h=h, d1=d1, d2=d2); } module right_cutout() { @@ -275,7 +280,7 @@ module phone_harness() { s=[buttons_cutout_size.x-2, 4, buttons_cutout_size.z-0.5]; p=buttons_cutout_pos; t=socket ? 0.2 : 0; - pin_size=[3 + t, 3 + t, s.z+1.4 + t/2]; + pin_size=[3 + t, 3 + t, s.z+2 + t/2]; touch_size=[2, s.y, 2]; touch_power_size=[3, touch_size.y, touch_size.z]; translate(p) { @@ -395,8 +400,8 @@ if (!is_undef(validation)) { if (!is_undef(xray)) { if (xray == XRAY_POSITIVE) { span_cube([0,1000], [0,1000], [-1000,1000]); - } else if (xray == XRAY_BACKPLANE) { - span_cube([-1000,1000], [-1000,1000], [-1000,-7]); + } else if (abs(xray) == XRAY_BACKPLANE) { + span_cube([-1000,1000], [-1000,1000], [-1000*sign(xray),-6]); } else if (xray == XRAY_BOTTOM) { span_cube([-1000,1000], [-1000,1000], [-1000,0]); }