From d8329f5401b07d91d2d2b3a5d78748a0c1cebb5b Mon Sep 17 00:00:00 2001 From: Dejvino Date: Mon, 11 Jan 2021 14:38:06 +0100 Subject: [PATCH] Add bottom component as a single sliding Print-in-Place model --- main.scad | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/main.scad b/main.scad index 72c3d92..ecab914 100644 --- a/main.scad +++ b/main.scad @@ -7,15 +7,18 @@ use // 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()) {