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:
|
// DEBUG:
|
||||||
//validation = 1;
|
//validation = 1;
|
||||||
//xray = 1;
|
XRAY_POSITIVE=1;
|
||||||
|
XRAY_BACKPLANE=2;
|
||||||
|
//xray = 2;
|
||||||
|
|
||||||
// EXPORT:
|
// EXPORT:
|
||||||
MODEL_HARNESS_LEFT=1;
|
MODEL_HARNESS_LEFT=1;
|
||||||
MODEL_HARNESS_RIGHT=2;
|
MODEL_HARNESS_RIGHT=2;
|
||||||
MODEL_HARNESS_TOP=3;
|
MODEL_HARNESS_BOTTOM_PIP=3;
|
||||||
MODEL_HARNESS_SLIDER_FRONT=4;
|
MODEL_HARNESS_TOP=4;
|
||||||
MODEL_HARNESS_SLIDER_BACK=5;
|
MODEL_HARNESS_SLIDER_FRONT=5;
|
||||||
export=1; // [0:5]
|
MODEL_HARNESS_SLIDER_BACK=6;
|
||||||
|
export=3; // [0:6]
|
||||||
function is_not_export() = is_undef(export) || export == 0;
|
function is_not_export() = is_undef(export) || export == 0;
|
||||||
function is_export() = !is_not_export();
|
function is_export() = !is_not_export();
|
||||||
function is_model_strict(m) = is_export() && export == m;
|
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];
|
function get_phone_size() = [160, 76.7, 10];
|
||||||
|
|
||||||
|
backplane_pip_slideout=10;
|
||||||
|
|
||||||
module cubi(s, fillet=0, edges=EDGES_ALL) {
|
module cubi(s, fillet=0, edges=EDGES_ALL) {
|
||||||
if ($preview) {
|
if ($preview) {
|
||||||
cube(s, center=true);
|
cube(s, center=true);
|
||||||
@ -123,7 +128,21 @@ 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) 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 ====
|
// ==== 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_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_TOP)) model_harness_top();
|
||||||
if (is_model(MODEL_HARNESS_SLIDER_FRONT)) model_harness_slider_front();
|
if (is_model(MODEL_HARNESS_SLIDER_FRONT)) model_harness_slider_front();
|
||||||
if (is_model(MODEL_HARNESS_SLIDER_BACK)) model_harness_slider_back();
|
if (is_model(MODEL_HARNESS_SLIDER_BACK)) model_harness_slider_back();
|
||||||
@ -308,7 +331,11 @@ if (!is_undef(validation)) {
|
|||||||
} else {
|
} else {
|
||||||
intersection() {
|
intersection() {
|
||||||
if (!is_undef(xray)) {
|
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() {
|
union() {
|
||||||
if (is_not_export()) {
|
if (is_not_export()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user