Compare commits
No commits in common. "ebde72fab1c7c49549b85838b7b9124c057e7b58" and "fd03cb0b30242510f1851d251f43955198d1d08a" have entirely different histories.
ebde72fab1
...
fd03cb0b30
@ -1,5 +1,3 @@
|
|||||||
include <export.scad>
|
|
||||||
|
|
||||||
// dependency: https://github.com/revarbat/BOSL
|
// dependency: https://github.com/revarbat/BOSL
|
||||||
include <BOSL/constants.scad>
|
include <BOSL/constants.scad>
|
||||||
use <BOSL/transforms.scad>
|
use <BOSL/transforms.scad>
|
||||||
@ -7,10 +5,6 @@ use <BOSL/shapes.scad>
|
|||||||
use <BOSL/masks.scad>
|
use <BOSL/masks.scad>
|
||||||
use <BOSL/sliders.scad>
|
use <BOSL/sliders.scad>
|
||||||
|
|
||||||
use <specs_phone.scad>
|
|
||||||
use <specs_harness.scad>
|
|
||||||
use <specs_platform.scad>
|
|
||||||
|
|
||||||
// DEBUG:
|
// DEBUG:
|
||||||
//validation = 1;
|
//validation = 1;
|
||||||
XRAY_POSITIVE=1;
|
XRAY_POSITIVE=1;
|
||||||
@ -18,6 +12,22 @@ XRAY_BACKPLANE=2;
|
|||||||
XRAY_BOTTOM=3;
|
XRAY_BOTTOM=3;
|
||||||
//xray = 2;
|
//xray = 2;
|
||||||
|
|
||||||
|
// EXPORT:
|
||||||
|
MODEL_HARNESS_LEFT=1;
|
||||||
|
MODEL_HARNESS_RIGHT=2;
|
||||||
|
MODEL_HARNESS_BOTTOM=3;
|
||||||
|
MODEL_HARNESS_BOTTOM_PIP=4;
|
||||||
|
MODEL_HARNESS_TOP=5;
|
||||||
|
MODEL_HARNESS_SLIDER_FRONT=6;
|
||||||
|
MODEL_HARNESS_SLIDER_BACK=7;
|
||||||
|
MODEL_HARNESS_BUTTONS=8;
|
||||||
|
export=0; // [0:8]
|
||||||
|
function is_not_export() = is_undef(export) || export == 0;
|
||||||
|
function is_export() = !is_not_export();
|
||||||
|
function is_model_strict(m) = is_export() && export == m;
|
||||||
|
function is_model(m) = is_not_export() || export == m;
|
||||||
|
|
||||||
|
function get_phone_size() = [161.2, 77.2, 10];
|
||||||
function use_slideout_backplane() = is_model_strict(MODEL_HARNESS_BOTTOM_PIP) || is_model_strict(MODEL_HARNESS_LEFT) || is_model_strict(MODEL_HARNESS_RIGHT);
|
function use_slideout_backplane() = is_model_strict(MODEL_HARNESS_BOTTOM_PIP) || is_model_strict(MODEL_HARNESS_LEFT) || is_model_strict(MODEL_HARNESS_RIGHT);
|
||||||
|
|
||||||
backplane_pip_slideout=10;
|
backplane_pip_slideout=10;
|
||||||
@ -401,7 +411,7 @@ module phone_harness() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module model() {
|
module model() {
|
||||||
up(get_platform_size().z + get_harness_size().z/2) phone_harness();
|
phone_harness();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_undef(validation)) {
|
if (!is_undef(validation)) {
|
55302
model_bottom.stl
Normal file
55302
model_bottom.stl
Normal file
File diff suppressed because it is too large
Load Diff
31866
model_bottom_pip.stl
Normal file
31866
model_bottom_pip.stl
Normal file
File diff suppressed because it is too large
Load Diff
2746
model_buttons.stl
Normal file
2746
model_buttons.stl
Normal file
File diff suppressed because it is too large
Load Diff
1934
model_slider_back.stl
Normal file
1934
model_slider_back.stl
Normal file
File diff suppressed because it is too large
Load Diff
1934
model_slider_front.stl
Normal file
1934
model_slider_front.stl
Normal file
File diff suppressed because it is too large
Load Diff
1346
model_strap_base.stl
Normal file
1346
model_strap_base.stl
Normal file
File diff suppressed because it is too large
Load Diff
198
model_strap_brace.stl
Normal file
198
model_strap_brace.stl
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
solid OpenSCAD_Model
|
||||||
|
facet normal 0 1 -0
|
||||||
|
outer loop
|
||||||
|
vertex 20 -29.2 -19.5142
|
||||||
|
vertex -20 -29.2 -15.8858
|
||||||
|
vertex 20 -29.2 -15.8858
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 1 0
|
||||||
|
outer loop
|
||||||
|
vertex -20 -29.2 -15.8858
|
||||||
|
vertex 20 -29.2 -19.5142
|
||||||
|
vertex -20 -29.2 -19.5142
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0.707107 0.707107
|
||||||
|
outer loop
|
||||||
|
vertex 20 -29.2 -15.8858
|
||||||
|
vertex -20 -29.7858 -15.3
|
||||||
|
vertex 20 -29.7858 -15.3
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0.707107 0.707107
|
||||||
|
outer loop
|
||||||
|
vertex -20 -29.7858 -15.3
|
||||||
|
vertex 20 -29.2 -15.8858
|
||||||
|
vertex -20 -29.2 -15.8858
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -20 -29.7858 -15.3
|
||||||
|
vertex 20 -32.2142 -15.3
|
||||||
|
vertex 20 -29.7858 -15.3
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex 20 -32.2142 -15.3
|
||||||
|
vertex -20 -29.7858 -15.3
|
||||||
|
vertex -20 -32.2142 -15.3
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -0.707107 0.707107
|
||||||
|
outer loop
|
||||||
|
vertex -20 -32.8 -15.8858
|
||||||
|
vertex 20 -32.2142 -15.3
|
||||||
|
vertex -20 -32.2142 -15.3
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -0.707107 0.707107
|
||||||
|
outer loop
|
||||||
|
vertex 20 -32.2142 -15.3
|
||||||
|
vertex -20 -32.8 -15.8858
|
||||||
|
vertex 20 -32.8 -15.8858
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -1 0
|
||||||
|
outer loop
|
||||||
|
vertex -20 -32.8 -19.5142
|
||||||
|
vertex 20 -32.8 -15.8858
|
||||||
|
vertex -20 -32.8 -15.8858
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -1 -0
|
||||||
|
outer loop
|
||||||
|
vertex 20 -32.8 -15.8858
|
||||||
|
vertex -20 -32.8 -19.5142
|
||||||
|
vertex 20 -32.8 -19.5142
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -0.707107 -0.707107
|
||||||
|
outer loop
|
||||||
|
vertex -20 -32.2142 -20.1
|
||||||
|
vertex 20 -32.8 -19.5142
|
||||||
|
vertex -20 -32.8 -19.5142
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -0.707107 -0.707107
|
||||||
|
outer loop
|
||||||
|
vertex 20 -32.8 -19.5142
|
||||||
|
vertex -20 -32.2142 -20.1
|
||||||
|
vertex 20 -32.2142 -20.1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -20 -32.2142 -20.1
|
||||||
|
vertex 20 -29.7858 -20.1
|
||||||
|
vertex 20 -32.2142 -20.1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex 20 -29.7858 -20.1
|
||||||
|
vertex -20 -32.2142 -20.1
|
||||||
|
vertex -20 -29.7858 -20.1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0.707107 -0.707107
|
||||||
|
outer loop
|
||||||
|
vertex 20 -29.7858 -20.1
|
||||||
|
vertex -20 -29.2 -19.5142
|
||||||
|
vertex 20 -29.2 -19.5142
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0.707107 -0.707107
|
||||||
|
outer loop
|
||||||
|
vertex -20 -29.2 -19.5142
|
||||||
|
vertex 20 -29.7858 -20.1
|
||||||
|
vertex -20 -29.7858 -20.1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex 20 -32.8 -15.8858
|
||||||
|
vertex 20 -29.2 -15.8858
|
||||||
|
vertex 20 -29.7858 -15.3
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex 20 -29.2 -15.8858
|
||||||
|
vertex 20 -32.8 -15.8858
|
||||||
|
vertex 20 -29.2 -19.5142
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex 20 -32.8 -15.8858
|
||||||
|
vertex 20 -29.7858 -15.3
|
||||||
|
vertex 20 -32.2142 -15.3
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex 20 -32.8 -19.5142
|
||||||
|
vertex 20 -29.2 -19.5142
|
||||||
|
vertex 20 -32.8 -15.8858
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex 20 -29.2 -19.5142
|
||||||
|
vertex 20 -32.8 -19.5142
|
||||||
|
vertex 20 -29.7858 -20.1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex 20 -29.7858 -20.1
|
||||||
|
vertex 20 -32.8 -19.5142
|
||||||
|
vertex 20 -32.2142 -20.1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -20 -32.8 -19.5142
|
||||||
|
vertex -20 -29.2 -19.5142
|
||||||
|
vertex -20 -29.7858 -20.1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -20 -29.2 -19.5142
|
||||||
|
vertex -20 -32.8 -19.5142
|
||||||
|
vertex -20 -29.2 -15.8858
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -20 -32.8 -19.5142
|
||||||
|
vertex -20 -29.7858 -20.1
|
||||||
|
vertex -20 -32.2142 -20.1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -20 -32.8 -15.8858
|
||||||
|
vertex -20 -29.2 -15.8858
|
||||||
|
vertex -20 -32.8 -19.5142
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -20 -29.2 -15.8858
|
||||||
|
vertex -20 -32.8 -15.8858
|
||||||
|
vertex -20 -29.7858 -15.3
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 -0 0
|
||||||
|
outer loop
|
||||||
|
vertex -20 -29.7858 -15.3
|
||||||
|
vertex -20 -32.8 -15.8858
|
||||||
|
vertex -20 -32.2142 -15.3
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
endsolid OpenSCAD_Model
|
4342
model_strap_rib.stl
Normal file
4342
model_strap_rib.stl
Normal file
File diff suppressed because it is too large
Load Diff
842
model_strap_secondary.stl
Normal file
842
model_strap_secondary.stl
Normal file
@ -0,0 +1,842 @@
|
|||||||
|
solid OpenSCAD_Model
|
||||||
|
facet normal 0.281677 0.866858 -0.411358
|
||||||
|
outer loop
|
||||||
|
vertex -43.2366 -27.5725 -9.991
|
||||||
|
vertex -45 -26.9995 -9.991
|
||||||
|
vertex -43.0866 -22.8806 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.195091 0.980785 -0
|
||||||
|
outer loop
|
||||||
|
vertex -43.0866 -22.8806 -0.000999451
|
||||||
|
vertex -45 -22.5 0
|
||||||
|
vertex -43.0866 -22.8806 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.195091 0.980785 0
|
||||||
|
outer loop
|
||||||
|
vertex -45 -22.5 0
|
||||||
|
vertex -43.0866 -22.8806 -0.000999451
|
||||||
|
vertex -45 -22.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.831458 -0.555587 0
|
||||||
|
outer loop
|
||||||
|
vertex -41.4645 -36.0355 0
|
||||||
|
vertex -40.3806 -34.4134 -0.000999451
|
||||||
|
vertex -40.3806 -34.4134 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.831458 -0.555587 0
|
||||||
|
outer loop
|
||||||
|
vertex -40.3806 -34.4134 -0.000999451
|
||||||
|
vertex -41.4645 -36.0355 0
|
||||||
|
vertex -41.4645 -36.0355 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.831458 -0.555587 0
|
||||||
|
outer loop
|
||||||
|
vertex -78.5355 -36.0355 -0.000999451
|
||||||
|
vertex -79.6194 -34.4134 0
|
||||||
|
vertex -79.6194 -34.4134 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.831458 -0.555587 0
|
||||||
|
outer loop
|
||||||
|
vertex -79.6194 -34.4134 0
|
||||||
|
vertex -78.5355 -36.0355 -0.000999451
|
||||||
|
vertex -78.5355 -36.0355 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.413355 -0.811201 -0.413631
|
||||||
|
outer loop
|
||||||
|
vertex -43.0866 -37.1194 -0.000999451
|
||||||
|
vertex -45 -33.0005 -9.991
|
||||||
|
vertex -42.573 -31.7638 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.842298 -0.429166 -0.326114
|
||||||
|
outer loop
|
||||||
|
vertex -76.7634 -32.4275 -9.991
|
||||||
|
vertex -79.6194 -34.4134 -0.000999451
|
||||||
|
vertex -78 -30.0005 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.785232 -0.524698 -0.328791
|
||||||
|
outer loop
|
||||||
|
vertex -78.5355 -36.0355 -0.000999451
|
||||||
|
vertex -79.6194 -34.4134 -0.000999451
|
||||||
|
vertex -76.7634 -32.4275 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.516055 -0.772297 -0.370465
|
||||||
|
outer loop
|
||||||
|
vertex -76.9134 -37.1194 -0.000999451
|
||||||
|
vertex -78.5355 -36.0355 -0.000999451
|
||||||
|
vertex -76.7634 -32.4275 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.516055 0.772297 -0.370465
|
||||||
|
outer loop
|
||||||
|
vertex -41.4645 -23.9645 -0.000999451
|
||||||
|
vertex -43.2366 -27.5725 -9.991
|
||||||
|
vertex -43.0866 -22.8806 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -42.573 -31.7638 -9.991
|
||||||
|
vertex -42 -29.9995 -9.991
|
||||||
|
vertex -42 -30.0005 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -42.573 -31.7638 -9.991
|
||||||
|
vertex -43.2366 -27.5725 -9.991
|
||||||
|
vertex -42 -29.9995 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -45 -33.0005 -9.991
|
||||||
|
vertex -43.2366 -27.5725 -9.991
|
||||||
|
vertex -42.573 -31.7638 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -45 -33.0005 -9.991
|
||||||
|
vertex -45 -26.9995 -9.991
|
||||||
|
vertex -43.2366 -27.5725 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -75 -33.0005 -9.991
|
||||||
|
vertex -45 -26.9995 -9.991
|
||||||
|
vertex -45 -33.0005 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -75 -33.0005 -9.991
|
||||||
|
vertex -75 -26.9995 -9.991
|
||||||
|
vertex -45 -26.9995 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -76.7634 -32.4275 -9.991
|
||||||
|
vertex -75 -26.9995 -9.991
|
||||||
|
vertex -75 -33.0005 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -76.7634 -32.4275 -9.991
|
||||||
|
vertex -77.427 -28.2362 -9.991
|
||||||
|
vertex -75 -26.9995 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -78 -30.0005 -9.991
|
||||||
|
vertex -77.427 -28.2362 -9.991
|
||||||
|
vertex -76.7634 -32.4275 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -77.427 -28.2362 -9.991
|
||||||
|
vertex -78 -30.0005 -9.991
|
||||||
|
vertex -78 -29.9995 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0.911793 -0.41065
|
||||||
|
outer loop
|
||||||
|
vertex -45 -26.9995 -9.991
|
||||||
|
vertex -75 -26.1028 -8
|
||||||
|
vertex -45 -26.1028 -8
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0.911793 -0.41065
|
||||||
|
outer loop
|
||||||
|
vertex -75 -26.1028 -8
|
||||||
|
vertex -45 -26.9995 -9.991
|
||||||
|
vertex -75 -26.9995 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0.911776 -0.410687
|
||||||
|
outer loop
|
||||||
|
vertex -45 -23.4004 -2
|
||||||
|
vertex -75 -22.5 -0.000999451
|
||||||
|
vertex -45 -22.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0.911776 -0.410687
|
||||||
|
outer loop
|
||||||
|
vertex -75 -22.5 -0.000999451
|
||||||
|
vertex -45 -23.4004 -2
|
||||||
|
vertex -75 -23.4004 -2
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.178453 0.897141 -0.404095
|
||||||
|
outer loop
|
||||||
|
vertex -75 -23.4004 -2
|
||||||
|
vertex -76.9134 -22.8806 -0.000999451
|
||||||
|
vertex -75 -22.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.178432 0.897153 -0.404078
|
||||||
|
outer loop
|
||||||
|
vertex -75 -26.1028 -8
|
||||||
|
vertex -76.9134 -22.8806 -0.000999451
|
||||||
|
vertex -75 -23.4004 -2
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.178349 0.897174 -0.404066
|
||||||
|
outer loop
|
||||||
|
vertex -76.9134 -22.8806 -0.000999451
|
||||||
|
vertex -75 -26.1028 -8
|
||||||
|
vertex -75 -26.9995 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.785232 0.524698 -0.328791
|
||||||
|
outer loop
|
||||||
|
vertex -40.3806 -25.5866 -0.000999451
|
||||||
|
vertex -43.2366 -27.5725 -9.991
|
||||||
|
vertex -41.4645 -23.9645 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.178453 0.897141 -0.404095
|
||||||
|
outer loop
|
||||||
|
vertex -43.0866 -22.8806 -0.000999451
|
||||||
|
vertex -45 -23.4004 -2
|
||||||
|
vertex -45 -22.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.178432 0.897153 -0.404078
|
||||||
|
outer loop
|
||||||
|
vertex -43.0866 -22.8806 -0.000999451
|
||||||
|
vertex -45 -26.1028 -8
|
||||||
|
vertex -45 -23.4004 -2
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.178349 0.897174 -0.404066
|
||||||
|
outer loop
|
||||||
|
vertex -45 -26.1028 -8
|
||||||
|
vertex -43.0866 -22.8806 -0.000999451
|
||||||
|
vertex -45 -26.9995 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.980785 -0.195091 0
|
||||||
|
outer loop
|
||||||
|
vertex -40.3806 -34.4134 0
|
||||||
|
vertex -40 -32.5 -0.000999451
|
||||||
|
vertex -40 -32.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.980785 -0.195091 0
|
||||||
|
outer loop
|
||||||
|
vertex -40 -32.5 -0.000999451
|
||||||
|
vertex -40.3806 -34.4134 0
|
||||||
|
vertex -40.3806 -34.4134 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.512756 -0.767361 -0.385017
|
||||||
|
outer loop
|
||||||
|
vertex -41.4645 -36.0355 -0.000999451
|
||||||
|
vertex -43.0866 -37.1194 -0.000999451
|
||||||
|
vertex -42.573 -31.7638 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.831458 0.555587 0
|
||||||
|
outer loop
|
||||||
|
vertex -40.3806 -25.5866 0
|
||||||
|
vertex -41.4645 -23.9645 -0.000999451
|
||||||
|
vertex -41.4645 -23.9645 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.831458 0.555587 0
|
||||||
|
outer loop
|
||||||
|
vertex -41.4645 -23.9645 -0.000999451
|
||||||
|
vertex -40.3806 -25.5866 0
|
||||||
|
vertex -40.3806 -25.5866 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.555587 0.831458 0
|
||||||
|
outer loop
|
||||||
|
vertex -76.9134 -22.8806 -0.000999451
|
||||||
|
vertex -78.5355 -23.9645 0
|
||||||
|
vertex -76.9134 -22.8806 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.555587 0.831458 0
|
||||||
|
outer loop
|
||||||
|
vertex -78.5355 -23.9645 0
|
||||||
|
vertex -76.9134 -22.8806 -0.000999451
|
||||||
|
vertex -78.5355 -23.9645 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.413355 0.811201 -0.413631
|
||||||
|
outer loop
|
||||||
|
vertex -75 -26.9995 -9.991
|
||||||
|
vertex -77.427 -28.2362 -9.991
|
||||||
|
vertex -76.9134 -22.8806 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.195091 -0.980785 0
|
||||||
|
outer loop
|
||||||
|
vertex -76.9134 -37.1194 -0.000999451
|
||||||
|
vertex -75 -37.5 0
|
||||||
|
vertex -76.9134 -37.1194 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.195091 -0.980785 -0
|
||||||
|
outer loop
|
||||||
|
vertex -75 -37.5 0
|
||||||
|
vertex -76.9134 -37.1194 -0.000999451
|
||||||
|
vertex -75 -37.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 1 -0
|
||||||
|
outer loop
|
||||||
|
vertex -45 -22.5 -0.000999451
|
||||||
|
vertex -75 -22.5 0
|
||||||
|
vertex -45 -22.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 1 0
|
||||||
|
outer loop
|
||||||
|
vertex -75 -22.5 0
|
||||||
|
vertex -45 -22.5 -0.000999451
|
||||||
|
vertex -75 -22.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.980785 0.195091 0
|
||||||
|
outer loop
|
||||||
|
vertex -80 -27.5 -0.000999451
|
||||||
|
vertex -79.6194 -25.5866 0
|
||||||
|
vertex -79.6194 -25.5866 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.980785 0.195091 0
|
||||||
|
outer loop
|
||||||
|
vertex -79.6194 -25.5866 0
|
||||||
|
vertex -80 -27.5 -0.000999451
|
||||||
|
vertex -80 -27.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.952575 -0.18948 -0.238114
|
||||||
|
outer loop
|
||||||
|
vertex -40.3806 -34.4134 -0.000999451
|
||||||
|
vertex -42 -30.0005 -9.991
|
||||||
|
vertex -40 -32.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -80 -32.5 -0.000999451
|
||||||
|
vertex -80 -27.5 0
|
||||||
|
vertex -80 -27.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 -0 0
|
||||||
|
outer loop
|
||||||
|
vertex -80 -27.5 0
|
||||||
|
vertex -80 -32.5 -0.000999451
|
||||||
|
vertex -80 -32.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.178453 -0.897141 -0.404095
|
||||||
|
outer loop
|
||||||
|
vertex -45 -36.5996 -2
|
||||||
|
vertex -43.0866 -37.1194 -0.000999451
|
||||||
|
vertex -45 -37.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.178432 -0.897153 -0.404078
|
||||||
|
outer loop
|
||||||
|
vertex -45 -33.8972 -8
|
||||||
|
vertex -43.0866 -37.1194 -0.000999451
|
||||||
|
vertex -45 -36.5996 -2
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.178349 -0.897174 -0.404066
|
||||||
|
outer loop
|
||||||
|
vertex -43.0866 -37.1194 -0.000999451
|
||||||
|
vertex -45 -33.8972 -8
|
||||||
|
vertex -45 -33.0005 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.789617 -0.527629 -0.313229
|
||||||
|
outer loop
|
||||||
|
vertex -41.4645 -36.0355 -0.000999451
|
||||||
|
vertex -42.573 -31.7638 -9.991
|
||||||
|
vertex -40.3806 -34.4134 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.980785 -0.195091 0
|
||||||
|
outer loop
|
||||||
|
vertex -79.6194 -34.4134 -0.000999451
|
||||||
|
vertex -80 -32.5 0
|
||||||
|
vertex -80 -32.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.980785 -0.195091 0
|
||||||
|
outer loop
|
||||||
|
vertex -80 -32.5 0
|
||||||
|
vertex -79.6194 -34.4134 -0.000999451
|
||||||
|
vertex -79.6194 -34.4134 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.178453 -0.897141 -0.404095
|
||||||
|
outer loop
|
||||||
|
vertex -76.9134 -37.1194 -0.000999451
|
||||||
|
vertex -75 -36.5996 -2
|
||||||
|
vertex -75 -37.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.178432 -0.897153 -0.404078
|
||||||
|
outer loop
|
||||||
|
vertex -76.9134 -37.1194 -0.000999451
|
||||||
|
vertex -75 -33.8972 -8
|
||||||
|
vertex -75 -36.5996 -2
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.178349 -0.897174 -0.404066
|
||||||
|
outer loop
|
||||||
|
vertex -75 -33.8972 -8
|
||||||
|
vertex -76.9134 -37.1194 -0.000999451
|
||||||
|
vertex -75 -33.0005 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -0.911776 -0.410687
|
||||||
|
outer loop
|
||||||
|
vertex -75 -36.5996 -2
|
||||||
|
vertex -45 -37.5 -0.000999451
|
||||||
|
vertex -75 -37.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -0.911776 -0.410687
|
||||||
|
outer loop
|
||||||
|
vertex -45 -37.5 -0.000999451
|
||||||
|
vertex -75 -36.5996 -2
|
||||||
|
vertex -45 -36.5996 -2
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -0.911793 -0.41065
|
||||||
|
outer loop
|
||||||
|
vertex -75 -33.0005 -9.991
|
||||||
|
vertex -45 -33.8972 -8
|
||||||
|
vertex -75 -33.8972 -8
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -0.911793 -0.41065
|
||||||
|
outer loop
|
||||||
|
vertex -45 -33.8972 -8
|
||||||
|
vertex -75 -33.0005 -9.991
|
||||||
|
vertex -45 -33.0005 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.195091 0.980785 0
|
||||||
|
outer loop
|
||||||
|
vertex -75 -22.5 -0.000999451
|
||||||
|
vertex -76.9134 -22.8806 0
|
||||||
|
vertex -75 -22.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.195091 0.980785 0
|
||||||
|
outer loop
|
||||||
|
vertex -76.9134 -22.8806 0
|
||||||
|
vertex -75 -22.5 -0.000999451
|
||||||
|
vertex -76.9134 -22.8806 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.512756 0.767361 -0.385017
|
||||||
|
outer loop
|
||||||
|
vertex -77.427 -28.2362 -9.991
|
||||||
|
vertex -78.5355 -23.9645 -0.000999451
|
||||||
|
vertex -76.9134 -22.8806 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.842298 0.429166 -0.326114
|
||||||
|
outer loop
|
||||||
|
vertex -42 -29.9995 -9.991
|
||||||
|
vertex -43.2366 -27.5725 -9.991
|
||||||
|
vertex -40.3806 -25.5866 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.913245 0.296767 -0.27913
|
||||||
|
outer loop
|
||||||
|
vertex -78 -29.9995 -9.991
|
||||||
|
vertex -79.6194 -25.5866 -0.000999451
|
||||||
|
vertex -77.427 -28.2362 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.555587 0.831458 -0
|
||||||
|
outer loop
|
||||||
|
vertex -41.4645 -23.9645 -0.000999451
|
||||||
|
vertex -43.0866 -22.8806 0
|
||||||
|
vertex -41.4645 -23.9645 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.555587 0.831458 0
|
||||||
|
outer loop
|
||||||
|
vertex -43.0866 -22.8806 0
|
||||||
|
vertex -41.4645 -23.9645 -0.000999451
|
||||||
|
vertex -43.0866 -22.8806 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.952575 -0.18948 -0.238114
|
||||||
|
outer loop
|
||||||
|
vertex -79.6194 -34.4134 -0.000999451
|
||||||
|
vertex -80 -32.5 -0.000999451
|
||||||
|
vertex -78 -30.0005 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.952575 0.18948 -0.238114
|
||||||
|
outer loop
|
||||||
|
vertex -78 -29.9995 -9.991
|
||||||
|
vertex -80 -27.5 -0.000999451
|
||||||
|
vertex -79.6194 -25.5866 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.555587 -0.831458 0
|
||||||
|
outer loop
|
||||||
|
vertex -43.0866 -37.1194 -0.000999451
|
||||||
|
vertex -41.4645 -36.0355 0
|
||||||
|
vertex -43.0866 -37.1194 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.555587 -0.831458 0
|
||||||
|
outer loop
|
||||||
|
vertex -41.4645 -36.0355 0
|
||||||
|
vertex -43.0866 -37.1194 -0.000999451
|
||||||
|
vertex -41.4645 -36.0355 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.195091 -0.980785 0
|
||||||
|
outer loop
|
||||||
|
vertex -45 -37.5 -0.000999451
|
||||||
|
vertex -43.0866 -37.1194 0
|
||||||
|
vertex -45 -37.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.195091 -0.980785 0
|
||||||
|
outer loop
|
||||||
|
vertex -43.0866 -37.1194 0
|
||||||
|
vertex -45 -37.5 -0.000999451
|
||||||
|
vertex -43.0866 -37.1194 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -1 0
|
||||||
|
outer loop
|
||||||
|
vertex -75 -37.5 -0.000999451
|
||||||
|
vertex -45 -37.5 0
|
||||||
|
vertex -75 -37.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -1 -0
|
||||||
|
outer loop
|
||||||
|
vertex -45 -37.5 0
|
||||||
|
vertex -75 -37.5 -0.000999451
|
||||||
|
vertex -45 -37.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.281677 -0.866858 -0.411358
|
||||||
|
outer loop
|
||||||
|
vertex -75 -33.0005 -9.991
|
||||||
|
vertex -76.9134 -37.1194 -0.000999451
|
||||||
|
vertex -76.7634 -32.4275 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.980785 0.195091 0
|
||||||
|
outer loop
|
||||||
|
vertex -40 -27.5 0
|
||||||
|
vertex -40.3806 -25.5866 -0.000999451
|
||||||
|
vertex -40.3806 -25.5866 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.980785 0.195091 0
|
||||||
|
outer loop
|
||||||
|
vertex -40.3806 -25.5866 -0.000999451
|
||||||
|
vertex -40 -27.5 0
|
||||||
|
vertex -40 -27.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.952575 0.18948 -0.238114
|
||||||
|
outer loop
|
||||||
|
vertex -40 -27.5 -0.000999451
|
||||||
|
vertex -42 -29.9995 -9.991
|
||||||
|
vertex -40.3806 -25.5866 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.913245 -0.296767 -0.27913
|
||||||
|
outer loop
|
||||||
|
vertex -40.3806 -34.4134 -0.000999451
|
||||||
|
vertex -42.573 -31.7638 -9.991
|
||||||
|
vertex -42 -30.0005 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -45 -22.5 0
|
||||||
|
vertex -40 -27.5 0
|
||||||
|
vertex -40.3806 -25.5866 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -40 -27.5 0
|
||||||
|
vertex -45 -22.5 0
|
||||||
|
vertex -40 -32.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -45 -22.5 0
|
||||||
|
vertex -40.3806 -25.5866 0
|
||||||
|
vertex -41.4645 -23.9645 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -45 -37.5 0
|
||||||
|
vertex -40 -32.5 0
|
||||||
|
vertex -45 -22.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -45 -22.5 0
|
||||||
|
vertex -41.4645 -23.9645 0
|
||||||
|
vertex -43.0866 -22.8806 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -40 -32.5 0
|
||||||
|
vertex -45 -37.5 0
|
||||||
|
vertex -40.3806 -34.4134 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -40.3806 -34.4134 0
|
||||||
|
vertex -45 -37.5 0
|
||||||
|
vertex -41.4645 -36.0355 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -41.4645 -36.0355 0
|
||||||
|
vertex -45 -37.5 0
|
||||||
|
vertex -43.0866 -37.1194 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -75 -22.5 0
|
||||||
|
vertex -45 -37.5 0
|
||||||
|
vertex -45 -22.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -75 -22.5 0
|
||||||
|
vertex -75 -37.5 0
|
||||||
|
vertex -45 -37.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -80 -27.5 0
|
||||||
|
vertex -75 -22.5 0
|
||||||
|
vertex -76.9134 -22.8806 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -75 -22.5 0
|
||||||
|
vertex -80 -27.5 0
|
||||||
|
vertex -75 -37.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -80 -27.5 0
|
||||||
|
vertex -76.9134 -22.8806 0
|
||||||
|
vertex -78.5355 -23.9645 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -80 -32.5 0
|
||||||
|
vertex -75 -37.5 0
|
||||||
|
vertex -80 -27.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -80 -27.5 0
|
||||||
|
vertex -78.5355 -23.9645 0
|
||||||
|
vertex -79.6194 -25.5866 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -75 -37.5 0
|
||||||
|
vertex -80 -32.5 0
|
||||||
|
vertex -76.9134 -37.1194 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -76.9134 -37.1194 0
|
||||||
|
vertex -80 -32.5 0
|
||||||
|
vertex -78.5355 -36.0355 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -78.5355 -36.0355 0
|
||||||
|
vertex -80 -32.5 0
|
||||||
|
vertex -79.6194 -34.4134 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.555587 -0.831458 0
|
||||||
|
outer loop
|
||||||
|
vertex -78.5355 -36.0355 -0.000999451
|
||||||
|
vertex -76.9134 -37.1194 0
|
||||||
|
vertex -78.5355 -36.0355 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.555587 -0.831458 -0
|
||||||
|
outer loop
|
||||||
|
vertex -76.9134 -37.1194 0
|
||||||
|
vertex -78.5355 -36.0355 -0.000999451
|
||||||
|
vertex -76.9134 -37.1194 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.789617 0.527629 -0.313229
|
||||||
|
outer loop
|
||||||
|
vertex -77.427 -28.2362 -9.991
|
||||||
|
vertex -79.6194 -25.5866 -0.000999451
|
||||||
|
vertex -78.5355 -23.9645 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.831458 0.555587 0
|
||||||
|
outer loop
|
||||||
|
vertex -79.6194 -25.5866 -0.000999451
|
||||||
|
vertex -78.5355 -23.9645 0
|
||||||
|
vertex -78.5355 -23.9645 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.831458 0.555587 0
|
||||||
|
outer loop
|
||||||
|
vertex -78.5355 -23.9645 0
|
||||||
|
vertex -79.6194 -25.5866 -0.000999451
|
||||||
|
vertex -79.6194 -25.5866 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 -0 0
|
||||||
|
outer loop
|
||||||
|
vertex -40 -32.5 0
|
||||||
|
vertex -40 -27.5 -0.000999451
|
||||||
|
vertex -40 -27.5 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -40 -27.5 -0.000999451
|
||||||
|
vertex -40 -32.5 0
|
||||||
|
vertex -40 -32.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.980543 0 -0.196305
|
||||||
|
outer loop
|
||||||
|
vertex -40 -27.5 -0.000999451
|
||||||
|
vertex -42 -30.0005 -9.991
|
||||||
|
vertex -42 -29.9995 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.980543 0 -0.196305
|
||||||
|
outer loop
|
||||||
|
vertex -42 -30.0005 -9.991
|
||||||
|
vertex -40 -27.5 -0.000999451
|
||||||
|
vertex -40 -32.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.980543 0 -0.196305
|
||||||
|
outer loop
|
||||||
|
vertex -78 -30.0005 -9.991
|
||||||
|
vertex -80 -27.5 -0.000999451
|
||||||
|
vertex -78 -29.9995 -9.991
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.980543 -0 -0.196305
|
||||||
|
outer loop
|
||||||
|
vertex -80 -27.5 -0.000999451
|
||||||
|
vertex -78 -30.0005 -9.991
|
||||||
|
vertex -80 -32.5 -0.000999451
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -45 -33.8972 -8
|
||||||
|
vertex -45 -23.4004 -2
|
||||||
|
vertex -45 -26.1028 -8
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 -0 0
|
||||||
|
outer loop
|
||||||
|
vertex -45 -23.4004 -2
|
||||||
|
vertex -45 -33.8972 -8
|
||||||
|
vertex -45 -36.5996 -2
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -75 -36.5996 -2
|
||||||
|
vertex -45 -23.4004 -2
|
||||||
|
vertex -45 -36.5996 -2
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -45 -23.4004 -2
|
||||||
|
vertex -75 -36.5996 -2
|
||||||
|
vertex -75 -23.4004 -2
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -75 -26.1028 -8
|
||||||
|
vertex -45 -33.8972 -8
|
||||||
|
vertex -45 -26.1028 -8
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -45 -33.8972 -8
|
||||||
|
vertex -75 -26.1028 -8
|
||||||
|
vertex -75 -33.8972 -8
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -75 -23.4004 -2
|
||||||
|
vertex -75 -33.8972 -8
|
||||||
|
vertex -75 -26.1028 -8
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 -0
|
||||||
|
outer loop
|
||||||
|
vertex -75 -33.8972 -8
|
||||||
|
vertex -75 -23.4004 -2
|
||||||
|
vertex -75 -36.5996 -2
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
endsolid OpenSCAD_Model
|
29290
model_top.stl
Normal file
29290
model_top.stl
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
export=0; // <-- prepend to the main file to activate the export
|
|
||||||
*/
|
|
||||||
|
|
||||||
function is_not_export() = is_undef(export) || export == 0;
|
|
||||||
function is_export() = !is_not_export();
|
|
||||||
function is_model_strict(m) = is_export() && export == m;
|
|
||||||
function is_model(m) = is_not_export() || export == m;
|
|
||||||
|
|
||||||
MODEL_DEMO=0;
|
|
||||||
|
|
||||||
// Harness
|
|
||||||
MODEL_HARNESS_LEFT=101;
|
|
||||||
MODEL_HARNESS_RIGHT=102;
|
|
||||||
MODEL_HARNESS_BOTTOM=103;
|
|
||||||
MODEL_HARNESS_BOTTOM_PIP=104;
|
|
||||||
MODEL_HARNESS_TOP=105;
|
|
||||||
MODEL_HARNESS_SLIDER_FRONT=106;
|
|
||||||
MODEL_HARNESS_SLIDER_BACK=107;
|
|
||||||
MODEL_HARNESS_BUTTONS=108;
|
|
||||||
|
|
||||||
// Platform
|
|
||||||
MODEL_PLATFORM_HARNESS=201;
|
|
||||||
MODEL_PLATFORM_STRAP=202;
|
|
||||||
|
|
||||||
// Strap
|
|
||||||
MODEL_LINKS=301;
|
|
||||||
MODEL_CLIP_A=302;
|
|
||||||
MODEL_CLIP_B=303;
|
|
||||||
MODEL_CLIP_RATCHETING=304;
|
|
||||||
MODEL_CLIP_RATCHETING_A=305;
|
|
||||||
MODEL_CLIP_RATCHETING_B=306;
|
|
@ -1,6 +0,0 @@
|
|||||||
export=0;
|
|
||||||
include <export.scad>
|
|
||||||
|
|
||||||
include <harness.scad>
|
|
||||||
include <platform.scad>
|
|
||||||
//include <strap.scad>
|
|
@ -1,70 +0,0 @@
|
|||||||
include <export.scad>
|
|
||||||
|
|
||||||
// dependency: https://github.com/revarbat/BOSL
|
|
||||||
include <BOSL/constants.scad>
|
|
||||||
use <BOSL/transforms.scad>
|
|
||||||
use <BOSL/shapes.scad>
|
|
||||||
use <BOSL/masks.scad>
|
|
||||||
use <BOSL/sliders.scad>
|
|
||||||
|
|
||||||
use <specs_platform.scad>
|
|
||||||
use <specs_strap.scad>
|
|
||||||
|
|
||||||
use <strap_common.scad>
|
|
||||||
|
|
||||||
// DEBUG:
|
|
||||||
//validation = 1;
|
|
||||||
//xray = 1;
|
|
||||||
|
|
||||||
// PROP >>
|
|
||||||
module prop_arm() {
|
|
||||||
$fn=$preview ? 10 : 30;
|
|
||||||
arm_size=[200, 55, 40];
|
|
||||||
color("gray")
|
|
||||||
down(arm_size.z/2) {
|
|
||||||
cuboid(arm_size, fillet=16, edges=EDGES_X_ALL);
|
|
||||||
left(arm_size.x*0.6) scale([1, 1, 0.8]) yrot(90) cylinder(d1=arm_size.y*1.4, d2=arm_size.y*0.95, h=arm_size.x/2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
module model_prop_arm() {
|
|
||||||
if (is_not_export()) down(3) prop_arm();
|
|
||||||
}
|
|
||||||
// <<<
|
|
||||||
|
|
||||||
// Blocks:
|
|
||||||
module platform(base) {
|
|
||||||
size=get_platform_size();
|
|
||||||
top=!base;
|
|
||||||
up(top?size.z:0)
|
|
||||||
color(top?"Olive":"YellowGreen")
|
|
||||||
cube(size, center=true);
|
|
||||||
|
|
||||||
module strap_connectors() {
|
|
||||||
down(size.z/2) {
|
|
||||||
for (i=[0:3]) {
|
|
||||||
left((i%2*(-2)+1) * (size.x/2 - get_link_segment_size().y/2))
|
|
||||||
fwd((round(i/2)%2*(-2)+1) * size.y/2)
|
|
||||||
down(get_link_segment_size().z/2)
|
|
||||||
zrot(90 + (round(i/2)%2*180)) link_connector_pin();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (base) {
|
|
||||||
strap_connectors();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Models:
|
|
||||||
module model_platform_harness() {
|
|
||||||
platform(base=false);
|
|
||||||
}
|
|
||||||
|
|
||||||
module model_platform_strap() {
|
|
||||||
platform(base=true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Export:
|
|
||||||
if (is_model(MODEL_PLATFORM_HARNESS)) model_platform_harness();
|
|
||||||
if (is_model(MODEL_PLATFORM_STRAP)) model_platform_strap();
|
|
||||||
if (is_model(MODEL_DEMO)) model_prop_arm();
|
|
@ -1,9 +0,0 @@
|
|||||||
use <specs_phone.scad>
|
|
||||||
|
|
||||||
// TODO
|
|
||||||
function get_harness_size() = [
|
|
||||||
get_phone_size().x + 10,
|
|
||||||
get_phone_size().y + 10,
|
|
||||||
get_phone_size().z + 10,
|
|
||||||
];
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
function get_phone_size() = [161.2, 77.2, 10];
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
|||||||
use <specs_phone.scad>
|
|
||||||
|
|
||||||
function get_platform_size() = [
|
|
||||||
get_phone_size().x - 5,
|
|
||||||
get_phone_size().y - 5,
|
|
||||||
5
|
|
||||||
];
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
function get_link_segment_size() = [15, 30, 5];
|
|
||||||
function get_link_pin_diameter() = 2;
|
|
||||||
function get_link_socket_slack() = [1, 4, 1];
|
|
||||||
function get_link_joiner_arm_size() = [get_link_segment_size().x - 2, 3, get_link_segment_size().z];
|
|
||||||
function get_link_socket_size() = [get_link_segment_size().z,
|
|
||||||
get_link_segment_size().y - get_link_joiner_arm_size().y*2,
|
|
||||||
get_link_segment_size().z];
|
|
||||||
|
|
||||||
function get_link_clip_size() = [get_link_pin_diameter()*5, get_link_segment_size().y - 5, get_link_segment_size().z];
|
|
||||||
function get_link_socket_roundgap() = 2;
|
|
||||||
|
|
270
src/strap.scad
270
src/strap.scad
@ -1,270 +0,0 @@
|
|||||||
links_count=3; // [1..20]
|
|
||||||
include_terminal=true; // [true,false]
|
|
||||||
|
|
||||||
include <export.scad>
|
|
||||||
use <BOSL/transforms.scad>
|
|
||||||
use <BOSL/shapes.scad>
|
|
||||||
include <BOSL/constants.scad>
|
|
||||||
|
|
||||||
use <strap_common.scad>
|
|
||||||
|
|
||||||
if (is_model_strict(MODEL_LINKS)) {
|
|
||||||
echo("===============================");
|
|
||||||
echo(str("Strap length: ", (links_count * get_link_segment_size().x), " mm"));
|
|
||||||
echo("===============================");
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(get_link_segment_size().x >= 10, "Link segment is too short.");
|
|
||||||
assert(get_link_segment_size().z >= (get_link_pin_diameter() + get_link_socket_slack().z + 1), "Link segment is too thin.");
|
|
||||||
|
|
||||||
module link(terminal=false) {
|
|
||||||
$fn=$preview?4:20;
|
|
||||||
module link_joiner() {
|
|
||||||
gap=get_link_socket_roundgap();
|
|
||||||
segment_size=get_link_segment_size();
|
|
||||||
arm_size=get_link_joiner_arm_size();
|
|
||||||
|
|
||||||
module pin_to_socket_joiner() {
|
|
||||||
joiner_size=[segment_size.x-get_link_socket_size().x+get_link_socket_size().x*0.2,
|
|
||||||
segment_size.y-4,
|
|
||||||
segment_size.z];
|
|
||||||
difference() {
|
|
||||||
right(joiner_size.x/2 + 4.5) cuboid(joiner_size, fillet=1, edges=EDGES_Z_ALL + EDGES_BOTTOM);
|
|
||||||
right(segment_size.x) scale([1, 2, 1]) pin_socket_area();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pin_to_socket_joiner();
|
|
||||||
}
|
|
||||||
|
|
||||||
link_connector_pin();
|
|
||||||
if (terminal) {
|
|
||||||
right(get_link_segment_size().x + 2) zrot(180) link_connector_pin();
|
|
||||||
} else {
|
|
||||||
link_joiner();
|
|
||||||
right(get_link_segment_size().x) link_connector_socket();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module link_chain(links_count, include_terminal=true) {
|
|
||||||
for (i = [0:links_count-1]) {
|
|
||||||
terminal=(i==links_count-1) && include_terminal;
|
|
||||||
right(i*get_link_segment_size().x) link(terminal=terminal);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module clip() {
|
|
||||||
$fn=$preview?4:20;
|
|
||||||
socket_size=get_link_socket_size();
|
|
||||||
clip_size=get_link_clip_size();
|
|
||||||
pin_diam=get_link_pin_diameter();
|
|
||||||
slot_slack=get_link_socket_slack();
|
|
||||||
size=[clip_size.x+socket_size.x, clip_size.y, clip_size.z];
|
|
||||||
slot_size=[clip_size.x+slot_slack.x, size.y+1, pin_diam+slot_slack.z];
|
|
||||||
entry_size=[slot_size.x, clip_size.y+1, clip_size.z];
|
|
||||||
entry_pos=[0, 0, 1.5];
|
|
||||||
|
|
||||||
module socket_area() {
|
|
||||||
$fn=$preview? 10 : 20;
|
|
||||||
xrot(90) down(size.y/2) cylinder(d=size.z, h=size.y);
|
|
||||||
}
|
|
||||||
module socket_cutout() {
|
|
||||||
$fn=$preview? 10 : 20;
|
|
||||||
xrot(90) down(slot_size.y/2) cylinder(d=slot_size.z, h=slot_size.y);
|
|
||||||
}
|
|
||||||
module cover() {
|
|
||||||
translate(entry_pos) cube(entry_size, center=true);
|
|
||||||
}
|
|
||||||
module joiner(groove) {
|
|
||||||
slack=groove?0.2:0;
|
|
||||||
joiner_size=[entry_size.x-6+slack, entry_size.y-6+slack, entry_size.z-3+slack];
|
|
||||||
joiner_pos=[entry_pos.x, entry_pos.y, entry_pos.z - entry_size.z/2 + joiner_size.z/2];
|
|
||||||
translate(joiner_pos) cube(joiner_size, center=true);
|
|
||||||
}
|
|
||||||
|
|
||||||
module model() {
|
|
||||||
difference() {
|
|
||||||
union() {
|
|
||||||
right(clip_size.x/2) socket_area();
|
|
||||||
left(clip_size.x/2) socket_area();
|
|
||||||
cube(clip_size, center=true);
|
|
||||||
}
|
|
||||||
right(clip_size.x/2) socket_cutout();
|
|
||||||
left(clip_size.x/2) socket_cutout();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
left(socket_size.x/2)
|
|
||||||
{
|
|
||||||
if (is_model(MODEL_CLIP_A)) {
|
|
||||||
difference() {
|
|
||||||
model();
|
|
||||||
cover();
|
|
||||||
}
|
|
||||||
joiner(groove=false);
|
|
||||||
}
|
|
||||||
if (is_model(MODEL_CLIP_B)) {
|
|
||||||
difference() {
|
|
||||||
intersection() {
|
|
||||||
model();
|
|
||||||
cover();
|
|
||||||
}
|
|
||||||
joiner(groove=true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module clip_ratcheting(ratchet_length=28) {
|
|
||||||
$fn=$preview?4:20;
|
|
||||||
socket_size=get_link_socket_size();
|
|
||||||
clip_size=get_link_clip_size();
|
|
||||||
pin_diam=get_link_pin_diameter();
|
|
||||||
slot_slack=get_link_socket_slack();
|
|
||||||
size=[clip_size.x+socket_size.x, clip_size.y, clip_size.z];
|
|
||||||
slot_size=[clip_size.x+slot_slack.x + 0.2, size.y+1, pin_diam+slot_slack.z];
|
|
||||||
entry_size=[slot_size.x-5, clip_size.y+1, clip_size.z];
|
|
||||||
connector_size=[25, 0, 0];
|
|
||||||
module hookRight() {
|
|
||||||
right(connector_size.x/2) zrot(180) link_connector_pin();
|
|
||||||
}
|
|
||||||
module hookLeft() {
|
|
||||||
left(connector_size.x/2) link_connector_pin();
|
|
||||||
}
|
|
||||||
wall=2;
|
|
||||||
tooth_size=[4, 3, 3];
|
|
||||||
module tooth() {
|
|
||||||
s=[tooth_size.x, tooth_size.z, tooth_size.y];
|
|
||||||
up(tooth_size.z/2) xrot(-90) right_triangle(s);
|
|
||||||
}
|
|
||||||
module teethFwd() {
|
|
||||||
tooth_count = ratchet_length/tooth_size.x;
|
|
||||||
fwd((clip_size.y-wall*2)/2)
|
|
||||||
right(ratchet_length/2) {
|
|
||||||
for (i=[1:tooth_count]) {
|
|
||||||
left(i*tooth_size.x) tooth();
|
|
||||||
}
|
|
||||||
cap_size=[ratchet_length, tooth_size.y, 1];
|
|
||||||
up(tooth_size.z/2 + cap_size.z/2) left(cap_size.x/2) back(tooth_size.y/2) {
|
|
||||||
difference() {
|
|
||||||
cube(cap_size, center=true);
|
|
||||||
translate([0.1, 0.1, 0]) back(tooth_size.y/2) right(ratchet_length/2) zrot(180) tooth();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
module teethBack() {
|
|
||||||
scale([1, -1, 1]) teethFwd();
|
|
||||||
}
|
|
||||||
module ratchetLeft() {
|
|
||||||
right(ratchet_length/2) {
|
|
||||||
difference() {
|
|
||||||
cube([ratchet_length, clip_size.y, clip_size.z], center=true);
|
|
||||||
up(wall/2) cube([ratchet_length, clip_size.y-wall*2, clip_size.z], center=true);
|
|
||||||
right(ratchet_length/2+1) {
|
|
||||||
slideRailGuide(groove=true);
|
|
||||||
scale([1,-1,1]) slideRailGuide(groove=true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
teethFwd();
|
|
||||||
teethBack();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ratchet_tooth_count=2;
|
|
||||||
ratchet_wall=2.5;
|
|
||||||
ratchet_slack=0.3;
|
|
||||||
rail_slack=0.2;
|
|
||||||
ratchet_tooth_scale_z=0.8;
|
|
||||||
module ratchetTeethFront() {
|
|
||||||
module ratchetButton() {
|
|
||||||
size=[8,wall*4,4];
|
|
||||||
up(size.z+1) fwd(wall*2 - ratchet_wall) cuboid(size, fillet=1, edges=EDGES_FRONT);
|
|
||||||
up(2) back(ratchet_wall/2) cube([size.x, ratchet_wall, tooth_size.z*ratchet_tooth_scale_z + size.z], center=true);
|
|
||||||
}
|
|
||||||
fwd((clip_size.y-wall*2)/2 - tooth_size.y - ratchet_slack)
|
|
||||||
left(ratchet_length) {
|
|
||||||
for (i=[0:ratchet_tooth_count-1]) {
|
|
||||||
right(i*tooth_size.x) scale([-1,-1*(1-i/5),ratchet_tooth_scale_z]) tooth();
|
|
||||||
}
|
|
||||||
ratchetButton();
|
|
||||||
}
|
|
||||||
|
|
||||||
module ratchetWall() {
|
|
||||||
up(tooth_size.z/2) left(ratchet_length/2 + wall - wall/2) fwd(clip_size.y/2-wall-tooth_size.y-ratchet_wall/2 - ratchet_slack)
|
|
||||||
down(wall/2+0.5) cube([ratchet_length + wall, ratchet_wall, tooth_size.z*ratchet_tooth_scale_z], center=true);
|
|
||||||
}
|
|
||||||
ratchetWall();
|
|
||||||
}
|
|
||||||
module ratchetTeethBack() {
|
|
||||||
scale([1,-1,1]) ratchetTeethFront();
|
|
||||||
}
|
|
||||||
module ratchetRight() {
|
|
||||||
left(wall) cube([wall*2, clip_size.y + rail_slack*2, clip_size.z], center=true);
|
|
||||||
|
|
||||||
ratchetTeethFront();
|
|
||||||
ratchetTeethBack();
|
|
||||||
}
|
|
||||||
module slideRailGuide(groove) {
|
|
||||||
size=[ratchet_length, wall, wall];
|
|
||||||
fwd(clip_size.y/2 + rail_slack)
|
|
||||||
left(size.x/2) scale(groove?1.5:1) cuboid(size, fillet=0.5);
|
|
||||||
}
|
|
||||||
module slideRailLeft() {
|
|
||||||
size=[ratchet_length, clip_size.y/2 - ratchet_wall*2 - wall/2 - ratchet_slack - tooth_size.y, clip_size.z];
|
|
||||||
right(size.x/2) cube(size, center=true);
|
|
||||||
}
|
|
||||||
module slideRailRight() {
|
|
||||||
size=[ratchet_length + 3, wall*1.5, clip_size.z];
|
|
||||||
module railFront() {
|
|
||||||
fwd(clip_size.y/2 + size.y/2 + rail_slack) left(size.x/2)
|
|
||||||
cuboid(size, fillet=1, edges=EDGES_FRONT);
|
|
||||||
slideRailGuide(groove=false);
|
|
||||||
}
|
|
||||||
module railBack() {
|
|
||||||
scale([1, -1, 1]) railFront();
|
|
||||||
}
|
|
||||||
railFront();
|
|
||||||
railBack();
|
|
||||||
}
|
|
||||||
|
|
||||||
right(size.x + connector_size.x - 2) {
|
|
||||||
left(2)
|
|
||||||
if (is_model(MODEL_CLIP_RATCHETING_A) || is_model(MODEL_CLIP_RATCHETING)) {
|
|
||||||
left(ratchet_length + wall + 1) {
|
|
||||||
hookLeft();
|
|
||||||
left(0.1) {
|
|
||||||
ratchetLeft();
|
|
||||||
slideRailLeft();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
right(is_model(MODEL_DEMO) ? ratchet_length + 5 : 0)
|
|
||||||
if (is_model(MODEL_CLIP_RATCHETING_B) || is_model(MODEL_CLIP_RATCHETING)) {
|
|
||||||
ratchetRight();
|
|
||||||
hookRight();
|
|
||||||
slideRailRight();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// === Export ===
|
|
||||||
if (is_model(MODEL_DEMO)) {
|
|
||||||
translate([-20, -40, -10]) zrot(-90) {
|
|
||||||
link_chain(links_count, include_terminal=include_terminal);
|
|
||||||
right(links_count * get_link_segment_size().x + get_link_clip_size().x) {
|
|
||||||
clip();
|
|
||||||
right(get_link_clip_size().x) clip_ratcheting();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (is_model(MODEL_CLIP_A) || is_model(MODEL_CLIP_B)) {
|
|
||||||
left(get_link_clip_size().x) clip();
|
|
||||||
}
|
|
||||||
if (is_model(MODEL_CLIP_RATCHETING) || is_model(MODEL_CLIP_RATCHETING_A) || is_model(MODEL_CLIP_RATCHETING_B)) {
|
|
||||||
left(get_link_clip_size().x * 2 + 3) clip_ratcheting();
|
|
||||||
}
|
|
||||||
if (is_model(MODEL_LINKS)) for (i = [0:links_count-1]) {
|
|
||||||
terminal=(i==links_count-1) && include_terminal;
|
|
||||||
right(i*get_link_segment_size().x) link(terminal=terminal);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,65 +0,0 @@
|
|||||||
include <export.scad>
|
|
||||||
|
|
||||||
use <BOSL/transforms.scad>
|
|
||||||
use <BOSL/shapes.scad>
|
|
||||||
include <BOSL/constants.scad>
|
|
||||||
|
|
||||||
use <specs_strap.scad>
|
|
||||||
|
|
||||||
module pin() {
|
|
||||||
segment_size=get_link_segment_size();
|
|
||||||
h=segment_size.y;
|
|
||||||
d=get_link_pin_diameter();
|
|
||||||
back(h/2) xrot(90) cylinder(h=h, d=d, $fn=$preview ? 10 : 30);
|
|
||||||
}
|
|
||||||
module pin_socket_area() {
|
|
||||||
segment_size=get_link_segment_size();
|
|
||||||
h=segment_size.y-get_link_socket_slack().y;
|
|
||||||
d=segment_size.z;
|
|
||||||
back(h/2) xrot(90) cylinder(h=h, d=d, $fn=$preview ? 10 : 30);
|
|
||||||
}
|
|
||||||
module pin_socket() {
|
|
||||||
difference() {
|
|
||||||
pin_socket_area();
|
|
||||||
scaleup = [
|
|
||||||
((get_link_pin_diameter() + get_link_socket_slack().x) / get_link_pin_diameter()),
|
|
||||||
((get_link_pin_diameter() + get_link_socket_slack().y) / get_link_pin_diameter()),
|
|
||||||
((get_link_pin_diameter() + get_link_socket_slack().z) / get_link_pin_diameter())
|
|
||||||
];
|
|
||||||
scale(scaleup) pin();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module arm() {
|
|
||||||
segment_size=get_link_segment_size();
|
|
||||||
arm_size=get_link_joiner_arm_size();
|
|
||||||
fwd(segment_size.y/2 + arm_size.y/2 - 1) right(arm_size.x/2 - 1) cuboid(arm_size, fillet=1, edges=EDGES_FRONT + EDGES_Y_ALL);
|
|
||||||
}
|
|
||||||
module armFront() {
|
|
||||||
arm();
|
|
||||||
}
|
|
||||||
module armBack() {
|
|
||||||
scale([1, -1, 1]) arm();
|
|
||||||
}
|
|
||||||
module armJoiner() {
|
|
||||||
gap=get_link_socket_roundgap();
|
|
||||||
arm_size=get_link_joiner_arm_size();
|
|
||||||
segment_size=get_link_segment_size();
|
|
||||||
joiner_size=[arm_size.x-get_link_socket_size().x, segment_size.y, segment_size.z];
|
|
||||||
right(joiner_size.x/2 + get_link_socket_size().x/2 + gap) cuboid(joiner_size, fillet=1, edges=EDGES_Z_ALL + EDGES_BOTTOM);
|
|
||||||
}
|
|
||||||
module link_arms() {
|
|
||||||
armFront();
|
|
||||||
armBack();
|
|
||||||
armJoiner();
|
|
||||||
}
|
|
||||||
|
|
||||||
module link_connector_pin() {
|
|
||||||
pin();
|
|
||||||
link_arms();
|
|
||||||
}
|
|
||||||
|
|
||||||
module link_connector_socket() {
|
|
||||||
pin_socket();
|
|
||||||
}
|
|
||||||
|
|
134
strap.scad
Normal file
134
strap.scad
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
// dependency: https://github.com/revarbat/BOSL
|
||||||
|
include <BOSL/constants.scad>
|
||||||
|
use <BOSL/transforms.scad>
|
||||||
|
use <BOSL/shapes.scad>
|
||||||
|
use <BOSL/masks.scad>
|
||||||
|
use <BOSL/sliders.scad>
|
||||||
|
|
||||||
|
// DEBUG:
|
||||||
|
//validation = 1;
|
||||||
|
//xray = 1;
|
||||||
|
|
||||||
|
// EXPORT:
|
||||||
|
MODEL_STRAP_PLATFORM_BASE=10;
|
||||||
|
MODEL_STRAP_PLATFORM_RIB=11;
|
||||||
|
MODEL_STRAP_PLATFORM_RIB_BRACE=12;
|
||||||
|
MODEL_STRAP_SECONDARY=13;
|
||||||
|
export=0; // [0:20]
|
||||||
|
function is_not_export() = is_undef(export) || export == 0;
|
||||||
|
function is_export() = !is_not_export();
|
||||||
|
function is_model_strict(m) = is_export() && export == m;
|
||||||
|
function is_model(m) = is_not_export() || export == m;
|
||||||
|
|
||||||
|
function get_phone_size() = [160, 76.7, 10];
|
||||||
|
|
||||||
|
module arm() {
|
||||||
|
$fn=$preview ? 10 : 30;
|
||||||
|
arm_size=[200, 55, 40];
|
||||||
|
color("gray")
|
||||||
|
down(arm_size.z/2) {
|
||||||
|
cuboid(arm_size, fillet=16, edges=EDGES_X_ALL);
|
||||||
|
left(arm_size.x*0.6) scale([1, 1, 0.8]) yrot(90) cylinder(d1=arm_size.y*1.4, d2=arm_size.y*0.95, h=arm_size.x/2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module strap_platform() {
|
||||||
|
base_size=[40, 70, 2];
|
||||||
|
rib_thickness=5;
|
||||||
|
rib_height=20;
|
||||||
|
rib_pos=[base_size.x/2 - rib_thickness, 0, -1.3];
|
||||||
|
brace_size=[base_size.x, 3.6, 4.8];
|
||||||
|
brace_pos=[0, base_size.y/2 - 4, -1.3];
|
||||||
|
module platform_base() {
|
||||||
|
cutout_size=[(base_size.x-rib_thickness*2 - 2*(base_size.x/2-rib_pos.x)), (base_size.y - 5), 2*base_size.z];
|
||||||
|
difference() {
|
||||||
|
down(base_size.z/2) cuboid(base_size, fillet=2, edges=EDGES_Z_ALL);
|
||||||
|
down(base_size.z/2) cuboid(cutout_size, fillet=2, edges=EDGES_Z_ALL);
|
||||||
|
model_rib_left(socket=true);
|
||||||
|
model_rib_right(socket=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module platform_rib(socket=false) {
|
||||||
|
rib_size=[rib_thickness, base_size.y - 2, rib_height];
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
difference() {
|
||||||
|
down(rib_size.z/2) scale(socket ? 1.01 : 1) sparse_strut(h=rib_size.z, l=rib_size.y, thick=rib_size.x, strut=1.2, maxang=40, max_bridge=4);
|
||||||
|
arm();
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
intersection() {
|
||||||
|
down(rib_size.z/2) cube(rib_size, center=true);
|
||||||
|
scale(1.07) arm();
|
||||||
|
}
|
||||||
|
down(2) scale(1.0) arm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fwd(brace_pos.y) platform_rib_brace(socket=true);
|
||||||
|
back(brace_pos.y) platform_rib_brace(socket=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module platform_rib_brace(socket=false) {
|
||||||
|
down(rib_height - 1.2 - brace_size.z/2) scale(socket ? 1.02 : 1) cuboid(brace_size, fillet=1, edges=EDGES_X_ALL);
|
||||||
|
}
|
||||||
|
|
||||||
|
module model_rib_left(socket=false) {
|
||||||
|
left(rib_pos.x) up(rib_pos.z) platform_rib(socket=socket);
|
||||||
|
}
|
||||||
|
module model_rib_right(socket=false) {
|
||||||
|
right(rib_pos.x) up(rib_pos.z) platform_rib(socket=socket);
|
||||||
|
}
|
||||||
|
module model_brace_front() {
|
||||||
|
fwd(brace_pos.y) up(brace_pos.z) platform_rib_brace();
|
||||||
|
}
|
||||||
|
module model_brace_back() {
|
||||||
|
back(brace_pos.y) up(brace_pos.z) platform_rib_brace();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_model(MODEL_STRAP_PLATFORM_BASE)) platform_base();
|
||||||
|
if (is_model(MODEL_STRAP_PLATFORM_RIB)) model_rib_left();
|
||||||
|
if (is_model(MODEL_STRAP_PLATFORM_RIB_BRACE)) model_brace_front();
|
||||||
|
if (is_not_export()) {
|
||||||
|
model_rib_right();
|
||||||
|
model_brace_back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module strap_secondary() {
|
||||||
|
size=[40, 15, 10];
|
||||||
|
size_base=[size.x, size.y];
|
||||||
|
size_top=[size.x * 0.9, size.y * 0.4];
|
||||||
|
cutout_size=[size.x - 10, size.y*10, size.z - 4];
|
||||||
|
module anchor() {
|
||||||
|
difference() {
|
||||||
|
xrot(180) rounded_prismoid(size1=size_base, size2=size_top, h=size.z, r=5);
|
||||||
|
down(size.z/2) cube(cutout_size, center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
anchor_pos=[60, 30, 0];
|
||||||
|
module anchor_front() {
|
||||||
|
left(anchor_pos.x) fwd(anchor_pos.y) anchor();
|
||||||
|
}
|
||||||
|
module anchor_back() {
|
||||||
|
left(anchor_pos.x) back(anchor_pos.y) anchor();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_model(MODEL_STRAP_SECONDARY)) anchor_front();
|
||||||
|
if (is_not_export()) anchor_back();
|
||||||
|
}
|
||||||
|
|
||||||
|
module model_strap_platform() {
|
||||||
|
strap_platform();
|
||||||
|
}
|
||||||
|
module model_strap_secondary() {
|
||||||
|
strap_secondary();
|
||||||
|
}
|
||||||
|
module model_arm() {
|
||||||
|
if (is_not_export()) down(3) arm();
|
||||||
|
}
|
||||||
|
|
||||||
|
model_strap_platform();
|
||||||
|
model_strap_secondary();
|
||||||
|
model_arm();
|
Loading…
Reference in New Issue
Block a user