Compare commits
2 Commits
0c48f112a1
...
0295678c71
Author | SHA1 | Date | |
---|---|---|---|
|
0295678c71 | ||
|
1c72dd1dbc |
Binary file not shown.
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 83 KiB |
Binary file not shown.
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 56 KiB |
BIN
frame00000.png
BIN
frame00000.png
Binary file not shown.
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 92 KiB |
35
main.scad
35
main.scad
@ -55,19 +55,20 @@ module phone_harness() {
|
|||||||
ps=[ops.x+0.2, ops.y+0.2, ops.z+0.2];
|
ps=[ops.x+0.2, ops.y+0.2, ops.z+0.2];
|
||||||
shell_wall=3;
|
shell_wall=3;
|
||||||
shell_rim_wall=3;
|
shell_rim_wall=3;
|
||||||
rim_edge_thickness=1.2;
|
rim_edge_thickness=1.5;
|
||||||
rim_edge_tolerance=0.4;
|
rim_edge_tolerance=0.4;
|
||||||
expose_back_camera=false;
|
expose_back_camera=true;
|
||||||
screwmount_screw=3;
|
screwmount_screw=3;
|
||||||
harness_divider=[1, 0, 1.3];
|
harness_divider=[1, 0, 1.3];
|
||||||
harness_size=[ps.x+shell_wall*2, ps.y+shell_wall*2, ps.z+shell_wall*2];
|
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;
|
w=shell_wall;
|
||||||
f=2;
|
f=2;
|
||||||
rf=5;
|
rf=5;
|
||||||
hs=harness_size;
|
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 ====
|
// ==== SHELL ====
|
||||||
|
|
||||||
@ -130,19 +131,23 @@ module phone_harness() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
module shell_backplane(groove) {
|
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) {
|
back(backplane_rim_size.y/2) {
|
||||||
teeth=4;
|
teeth=backplane_teeth;
|
||||||
segment=backplane_rim_size.y/teeth;
|
segment=backplane_rim_size.y/teeth;
|
||||||
tooth_size=[backplane_rim_size.x, segment/2, backplane_rim_size.z];
|
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]) {
|
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;
|
d1=8.8;
|
||||||
d2=14;
|
d2=14;
|
||||||
p=[ps.x/2, ps.y/2-24, -0.88];
|
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);
|
translate(p) yrot(90) down(10) cylinder(h=h, d1=d1, d2=d2);
|
||||||
}
|
}
|
||||||
module right_cutout() {
|
module right_cutout() {
|
||||||
@ -275,7 +280,7 @@ module phone_harness() {
|
|||||||
s=[buttons_cutout_size.x-2, 4, buttons_cutout_size.z-0.5];
|
s=[buttons_cutout_size.x-2, 4, buttons_cutout_size.z-0.5];
|
||||||
p=buttons_cutout_pos;
|
p=buttons_cutout_pos;
|
||||||
t=socket ? 0.2 : 0;
|
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_size=[2, s.y, 2];
|
||||||
touch_power_size=[3, touch_size.y, touch_size.z];
|
touch_power_size=[3, touch_size.y, touch_size.z];
|
||||||
translate(p) {
|
translate(p) {
|
||||||
@ -395,8 +400,8 @@ if (!is_undef(validation)) {
|
|||||||
if (!is_undef(xray)) {
|
if (!is_undef(xray)) {
|
||||||
if (xray == XRAY_POSITIVE) {
|
if (xray == XRAY_POSITIVE) {
|
||||||
span_cube([0,1000], [0,1000], [-1000,1000]);
|
span_cube([0,1000], [0,1000], [-1000,1000]);
|
||||||
} else if (xray == XRAY_BACKPLANE) {
|
} else if (abs(xray) == XRAY_BACKPLANE) {
|
||||||
span_cube([-1000,1000], [-1000,1000], [-1000,-7]);
|
span_cube([-1000,1000], [-1000,1000], [-1000*sign(xray),-6]);
|
||||||
} else if (xray == XRAY_BOTTOM) {
|
} else if (xray == XRAY_BOTTOM) {
|
||||||
span_cube([-1000,1000], [-1000,1000], [-1000,0]);
|
span_cube([-1000,1000], [-1000,1000], [-1000,0]);
|
||||||
}
|
}
|
||||||
|
33336
model_bottom_pip.stl
33336
model_bottom_pip.stl
File diff suppressed because it is too large
Load Diff
1050
model_buttons.stl
1050
model_buttons.stl
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
40704
model_top.stl
40704
model_top.stl
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user