Compare commits
11 Commits
fd03cb0b30
...
ebde72fab1
Author | SHA1 | Date | |
---|---|---|---|
|
ebde72fab1 | ||
|
4d0931df73 | ||
|
f17455be4f | ||
|
b85aee5fe1 | ||
|
a7c184e6cb | ||
|
f1c4576519 | ||
|
61dbc1e75a | ||
|
8b61f86eb6 | ||
|
384480e824 | ||
|
78e7a2b34a | ||
|
eddd8f28e7 |
55302
model_bottom.stl
55302
model_bottom.stl
File diff suppressed because it is too large
Load Diff
31866
model_bottom_pip.stl
31866
model_bottom_pip.stl
File diff suppressed because it is too large
Load Diff
2746
model_buttons.stl
2746
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
1346
model_strap_base.stl
1346
model_strap_base.stl
File diff suppressed because it is too large
Load Diff
@ -1,198 +0,0 @@
|
||||
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
4342
model_strap_rib.stl
File diff suppressed because it is too large
Load Diff
@ -1,842 +0,0 @@
|
||||
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
29290
model_top.stl
File diff suppressed because it is too large
Load Diff
32
src/export.scad
Normal file
32
src/export.scad
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
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,3 +1,5 @@
|
||||
include <export.scad>
|
||||
|
||||
// dependency: https://github.com/revarbat/BOSL
|
||||
include <BOSL/constants.scad>
|
||||
use <BOSL/transforms.scad>
|
||||
@ -5,6 +7,10 @@ use <BOSL/shapes.scad>
|
||||
use <BOSL/masks.scad>
|
||||
use <BOSL/sliders.scad>
|
||||
|
||||
use <specs_phone.scad>
|
||||
use <specs_harness.scad>
|
||||
use <specs_platform.scad>
|
||||
|
||||
// DEBUG:
|
||||
//validation = 1;
|
||||
XRAY_POSITIVE=1;
|
||||
@ -12,22 +18,6 @@ XRAY_BACKPLANE=2;
|
||||
XRAY_BOTTOM=3;
|
||||
//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);
|
||||
|
||||
backplane_pip_slideout=10;
|
||||
@ -411,7 +401,7 @@ module phone_harness() {
|
||||
}
|
||||
|
||||
module model() {
|
||||
phone_harness();
|
||||
up(get_platform_size().z + get_harness_size().z/2) phone_harness();
|
||||
}
|
||||
|
||||
if (!is_undef(validation)) {
|
6
src/main.scad
Normal file
6
src/main.scad
Normal file
@ -0,0 +1,6 @@
|
||||
export=0;
|
||||
include <export.scad>
|
||||
|
||||
include <harness.scad>
|
||||
include <platform.scad>
|
||||
//include <strap.scad>
|
70
src/platform.scad
Normal file
70
src/platform.scad
Normal file
@ -0,0 +1,70 @@
|
||||
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();
|
9
src/specs_harness.scad
Normal file
9
src/specs_harness.scad
Normal file
@ -0,0 +1,9 @@
|
||||
use <specs_phone.scad>
|
||||
|
||||
// TODO
|
||||
function get_harness_size() = [
|
||||
get_phone_size().x + 10,
|
||||
get_phone_size().y + 10,
|
||||
get_phone_size().z + 10,
|
||||
];
|
||||
|
2
src/specs_phone.scad
Normal file
2
src/specs_phone.scad
Normal file
@ -0,0 +1,2 @@
|
||||
function get_phone_size() = [161.2, 77.2, 10];
|
||||
|
8
src/specs_platform.scad
Normal file
8
src/specs_platform.scad
Normal file
@ -0,0 +1,8 @@
|
||||
use <specs_phone.scad>
|
||||
|
||||
function get_platform_size() = [
|
||||
get_phone_size().x - 5,
|
||||
get_phone_size().y - 5,
|
||||
5
|
||||
];
|
||||
|
11
src/specs_strap.scad
Normal file
11
src/specs_strap.scad
Normal file
@ -0,0 +1,11 @@
|
||||
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
Normal file
270
src/strap.scad
Normal file
@ -0,0 +1,270 @@
|
||||
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);
|
||||
}
|
||||
}
|
65
src/strap_common.scad
Normal file
65
src/strap_common.scad
Normal file
@ -0,0 +1,65 @@
|
||||
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
134
strap.scad
@ -1,134 +0,0 @@
|
||||
// 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