Add bottom component as a single sliding Print-in-Place model
This commit is contained in:
parent
118fe703b5
commit
d8329f5401
43
main.scad
43
main.scad
@ -7,15 +7,18 @@ use <BOSL/sliders.scad>
|
||||
|
||||
// DEBUG:
|
||||
//validation = 1;
|
||||
//xray = 1;
|
||||
XRAY_POSITIVE=1;
|
||||
XRAY_BACKPLANE=2;
|
||||
//xray = 2;
|
||||
|
||||
// EXPORT:
|
||||
MODEL_HARNESS_LEFT=1;
|
||||
MODEL_HARNESS_RIGHT=2;
|
||||
MODEL_HARNESS_TOP=3;
|
||||
MODEL_HARNESS_SLIDER_FRONT=4;
|
||||
MODEL_HARNESS_SLIDER_BACK=5;
|
||||
export=1; // [0:5]
|
||||
MODEL_HARNESS_BOTTOM_PIP=3;
|
||||
MODEL_HARNESS_TOP=4;
|
||||
MODEL_HARNESS_SLIDER_FRONT=5;
|
||||
MODEL_HARNESS_SLIDER_BACK=6;
|
||||
export=3; // [0:6]
|
||||
function is_not_export() = is_undef(export) || export == 0;
|
||||
function is_export() = !is_not_export();
|
||||
function is_model_strict(m) = is_export() && export == m;
|
||||
@ -23,6 +26,8 @@ function is_model(m) = is_not_export() || export == m;
|
||||
|
||||
function get_phone_size() = [160, 76.7, 10];
|
||||
|
||||
backplane_pip_slideout=10;
|
||||
|
||||
module cubi(s, fillet=0, edges=EDGES_ALL) {
|
||||
if ($preview) {
|
||||
cube(s, center=true);
|
||||
@ -123,7 +128,21 @@ module phone_harness() {
|
||||
}
|
||||
}
|
||||
module shell_backplane(groove) {
|
||||
down(hs.z/2 - shell_wall/6) up(backplane_rim_size.z/2) right(harness_divider.x) scale(groove ? 1.01 : 1) cubi(backplane_rim_size, fillet=5, edges=EDGES_Z_LF);
|
||||
down(hs.z/2 - shell_wall/6) up(backplane_rim_size.z/2) right(harness_divider.x) {
|
||||
back(backplane_rim_size.y/2) {
|
||||
teeth=4;
|
||||
segment=backplane_rim_size.y/teeth;
|
||||
tooth_size=[backplane_rim_size.x, segment/2, 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);
|
||||
}
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ==== SHELL SLIDER AND RAIL ====
|
||||
@ -290,7 +309,11 @@ module phone_harness() {
|
||||
}
|
||||
|
||||
if (is_model(MODEL_HARNESS_LEFT)) model_harness_left();
|
||||
if (is_model(MODEL_HARNESS_RIGHT)) model_harness_right();
|
||||
if (is_model(MODEL_HARNESS_RIGHT)) model_harness_right();
|
||||
if (is_model_strict(MODEL_HARNESS_BOTTOM_PIP)) {
|
||||
model_harness_left();
|
||||
right(backplane_pip_slideout) model_harness_right();
|
||||
}
|
||||
if (is_model(MODEL_HARNESS_TOP)) model_harness_top();
|
||||
if (is_model(MODEL_HARNESS_SLIDER_FRONT)) model_harness_slider_front();
|
||||
if (is_model(MODEL_HARNESS_SLIDER_BACK)) model_harness_slider_back();
|
||||
@ -308,7 +331,11 @@ if (!is_undef(validation)) {
|
||||
} else {
|
||||
intersection() {
|
||||
if (!is_undef(xray)) {
|
||||
span_cube([0,1000*xray], [0,1000*xray], [-1000,1000]);
|
||||
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]);
|
||||
}
|
||||
}
|
||||
union() {
|
||||
if (is_not_export()) {
|
||||
|
Loading…
Reference in New Issue
Block a user