|
|
@@ -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]); |
|
|
|
} |
|
|
|