Compare commits
10 Commits
d1055841fa
...
703a39dd57
| Author | SHA1 | Date | |
|---|---|---|---|
| 703a39dd57 | |||
| 52d836de34 | |||
| 142b10d2b8 | |||
| 709c4cb6bc | |||
| 4465097a29 | |||
| 7a046d5648 | |||
| 7dbaf2fdb8 | |||
| 163b1787c4 | |||
| 6f3edad8ab | |||
| 5987b647be |
@@ -1 +1,2 @@
|
||||
.*.sw?
|
||||
*.stl
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
module P() {
|
||||
intersection() {
|
||||
scale(1.2) linear_extrude(5) import("probatem-logo.svg");
|
||||
translate([-1, -1, -1]) cube([50, 70, 10]);
|
||||
}
|
||||
}
|
||||
|
||||
module R() {
|
||||
intersection() {
|
||||
scale(1.2) linear_extrude(5) import("probatem-logo.svg");
|
||||
translate([70, -1, -1]) cube([60, 70, 10]);
|
||||
}
|
||||
}
|
||||
|
||||
module O() {
|
||||
intersection() {
|
||||
scale(1.2) linear_extrude(5) import("probatem-logo.svg");
|
||||
translate([135, -1, -1]) cube([100, 70, 10]);
|
||||
}
|
||||
}
|
||||
|
||||
module B() {
|
||||
intersection() {
|
||||
scale(1.2) linear_extrude(5) import("probatem-logo.svg");
|
||||
translate([220, -1, -1]) cube([90, 70, 10]);
|
||||
}
|
||||
}
|
||||
|
||||
module A() {
|
||||
intersection() {
|
||||
scale(1.2) linear_extrude(5) import("probatem-logo.svg");
|
||||
translate([300, -1, -1]) cube([100, 70, 10]);
|
||||
}
|
||||
}
|
||||
|
||||
module T() {
|
||||
intersection() {
|
||||
scale(1.2) linear_extrude(5) import("probatem-logo.svg");
|
||||
translate([380, -1, -1]) cube([90, 70, 10]);
|
||||
}
|
||||
}
|
||||
|
||||
module E() {
|
||||
intersection() {
|
||||
scale(1.2) linear_extrude(5) import("probatem-logo.svg");
|
||||
translate([460, -1, -1]) cube([90, 70, 10]);
|
||||
}
|
||||
}
|
||||
|
||||
module M() {
|
||||
intersection() {
|
||||
scale(1.2) linear_extrude(5) import("probatem-logo.svg");
|
||||
translate([530, -1, -1]) cube([90, 70, 10]);
|
||||
}
|
||||
}
|
||||
|
||||
B();
|
||||
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="1458"
|
||||
height="160"
|
||||
viewBox="0 0 385.76249 42.333334"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
|
||||
sodipodi:docname="probate-logo-one-path-no-border.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#999999"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showguides="true"
|
||||
inkscape:zoom="1.4142136"
|
||||
inkscape:cx="516.5415"
|
||||
inkscape:cy="8.4852813"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1410"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1"><sodipodi:guide
|
||||
position="93.46406,1.657876e-05"
|
||||
orientation="0,-1"
|
||||
id="guide2"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs1" /><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(88.01959,-128.92059)"><path
|
||||
id="rect1"
|
||||
style="stroke-width:0.264583;stroke-dasharray:none"
|
||||
d="m 25.486142,128.92084 v 2.11667 h 1.05885 c 7.708027,0 14.649705,4.6382 17.599442,11.75949 2.949737,7.12129 1.321455,15.31112 -4.128947,20.76152 -5.450399,5.4504 -13.640232,7.07868 -20.761523,4.12895 -7.121291,-2.94974 -11.7600062,-9.89141 -11.7600054,-17.59945 v -1.05885 H 5.3788423 v 1.05885 c -8e-7,8.55806 5.1597677,16.27934 13.0663857,19.55436 7.906619,3.27503 17.014829,1.46364 23.066292,-4.58783 6.051466,-6.05146 7.862864,-15.15967 4.587834,-23.06629 -3.275031,-7.90661 -10.996303,-13.06742 -19.554362,-13.06742 z m -113.505732,-3e-5 v 2.11667 h 15.61145 c 5.930101,5.6e-4 10.714592,4.78486 10.714591,10.7151 -4e-6,5.91688 -4.804038,10.69411 -10.715625,10.71615 H -88.01959 v 2.11666 16.66875 h 2.116667 v -16.66875 h 14.287499 c 6.706618,-0.41121 12.039054,-6.02469 12.039059,-12.83281 1e-6,-6.80813 -5.332437,-12.42056 -12.039059,-12.83177 -0.27085,-3e-5 -0.522898,4e-5 -0.79375,0 z m 46.566666,-2.2e-4 v 2.11666 c 5.29182,0.007 10.318602,-0.01 15.610417,5.1e-4 5.493367,0 10.082499,4.13277 10.656713,9.59603 0.569514,5.41852 -2.997898,10.37516 -8.298718,11.57035 h -1.035079 l 10.997262,19.05003 h 2.1177 l -10.066569,-17.4362 c 5.466766,-1.97843 9.014223,-7.47948 8.391219,-13.40694 -0.657742,-6.25796 -5.764544,-11.10822 -11.969812,-11.48995 z m 106.097915,2.4e-4 v 2.11667 h 15.081767 v 5.1e-4 c 5.025933,0 8.995835,3.83996 8.995833,8.33334 2e-6,4.4867 -3.958278,8.3239 -8.973612,8.3349 H 64.644991 v 2.11666 c -5.467962,-0.0299 21.872204,0.007 16.404167,-0.001 5.592513,0 10.054169,4.1493 10.054166,9.39374 -2e-6,5.24442 -4.462171,9.92136 -10.054683,9.92136 h -16.40365 v 2.11718 h 16.66875 c 6.561126,-0.13564 11.906765,-5.67815 11.906767,-12.03802 3e-6,-5.01315 -3.321284,-9.13691 -7.941117,-10.78126 3.30773,-1.77907 5.558319,-5.22797 5.558317,-9.06249 2e-6,-5.48355 -4.600407,-10.07311 -10.317717,-10.45156 z m 62.573959,0 c -5.0683,13.93574 -10.33498,28.39882 -15.40669,42.33333 h 2.11667 l 14.28324,-39.24153 14.28276,39.24156 h 2.11667 c -5.07843,-13.93232 -10.32707,-28.40207 -15.40828,-42.33337 z m 36.11562,3e-5 v 2.11667 h 30.1625 v -2.11667 z m 48.15417,1e-5 v 2.11667 h 27.51667 v -2.1167 z m 45.50833,-2e-5 v 42.33333 h 2.11667 v -36.64272 l 18.25625,25.12715 20.37292,-28.04067 v -2.77709 h -0.86662 l -19.5063,26.84901 -19.5063,-26.84901 z m -79.63958,15.08119 v 27.25212 h 2.11667 v -27.25212 z m 118.26875,-9.8e-4 v 27.25312 h 2.11667 v -27.25312 z m -84.1375,5.02811 v 2.11667 h 27.51667 v -2.11667 z m 0,20.10833 v 2.11667 h 27.51667 v -2.11667 z"
|
||||
sodipodi:nodetypes="ccsssssccsssssccccscccccccsccccccscccccsccccccsccccsscccscsccccccccccccccccccccccccccccccccccccccccccccccccccc" /></g></svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
@@ -0,0 +1,36 @@
|
||||
bays = 5;
|
||||
wt = 2; // wall thickness
|
||||
pt = 12; // phone thickness
|
||||
l = 170; // length
|
||||
h = 40; // height
|
||||
w = bays * (pt + wt) + wt;
|
||||
lip = 10;
|
||||
|
||||
T=atan((h - lip + 0.5) / l);
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
cube([w, l, wt]); // base
|
||||
cube([w, wt, lip]); // front lip
|
||||
|
||||
// back
|
||||
translate([0, l - wt, 0])
|
||||
cube([w, wt, h]);
|
||||
|
||||
// side walls
|
||||
for (i = [0 : bays]) {
|
||||
translate([i*(pt + wt), 0, lip]) rotate([T, 0, 0])
|
||||
translate([0, 0, -h]) cube([wt, l / cos(T), h]);
|
||||
}
|
||||
}
|
||||
|
||||
translate([-wt, -wt, -h]) cube([w+2*wt, l+2*wt, h]); // bottom
|
||||
translate([-wt, -wt, h]) cube([w+2*wt, l+2*wt, h]); // top
|
||||
translate([-wt, l, -wt]) cube([w+2*wt, l, h + 2*wt]); // back
|
||||
}
|
||||
/*
|
||||
sin(ang) = opp / hyp
|
||||
ang = asin(opp/hyp)
|
||||
cos(ang) = adj / hyp
|
||||
hyp = adj / cos(ang)
|
||||
*/
|
||||
@@ -0,0 +1,211 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="128"
|
||||
height="128"
|
||||
viewBox="0 0 33.866666 33.866666"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
|
||||
sodipodi:docname="chandelier-icon.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showguides="true"
|
||||
inkscape:zoom="3.9803311"
|
||||
inkscape:cx="81.777117"
|
||||
inkscape:cy="84.540706"
|
||||
inkscape:window-width="3440"
|
||||
inkscape:window-height="1368"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1">
|
||||
<sodipodi:guide
|
||||
position="16.933333,16.933333"
|
||||
orientation="1,0"
|
||||
id="guide1"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
position="16.933333,22.754166"
|
||||
orientation="0,1"
|
||||
id="guide2"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" />
|
||||
<sodipodi:guide
|
||||
position="16.933333,11.1125"
|
||||
orientation="0,1"
|
||||
id="guide3"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" />
|
||||
<sodipodi:guide
|
||||
position="8.4666665,16.933333"
|
||||
orientation="-1,0"
|
||||
id="guide4"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" />
|
||||
<sodipodi:guide
|
||||
position="25.399999,16.933333"
|
||||
orientation="-1,0"
|
||||
id="guide5"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" />
|
||||
<sodipodi:guide
|
||||
position="2.6458333,16.933333"
|
||||
orientation="-1,0"
|
||||
id="guide8"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" />
|
||||
<sodipodi:guide
|
||||
position="16.933333,18.520833"
|
||||
orientation="0,1"
|
||||
id="guide9"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" />
|
||||
<sodipodi:guide
|
||||
position="16.933333,14.816666"
|
||||
orientation="0,1"
|
||||
id="guide10"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" />
|
||||
<sodipodi:guide
|
||||
position="2.0215776,16.296018"
|
||||
orientation="0,-1"
|
||||
id="guide11"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
position="3.9687499,17.481796"
|
||||
orientation="-1,0"
|
||||
id="guide12"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" />
|
||||
<sodipodi:guide
|
||||
position="1.3229166,17.614547"
|
||||
orientation="-1,0"
|
||||
id="guide13"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" />
|
||||
<sodipodi:guide
|
||||
position="15.610416,16.296018"
|
||||
orientation="-1,0"
|
||||
id="guide14"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" />
|
||||
<sodipodi:guide
|
||||
position="18.25625,16.296018"
|
||||
orientation="-1,0"
|
||||
id="guide15"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs1">
|
||||
<inkscape:path-effect
|
||||
effect="mirror_symmetry"
|
||||
start_point="16.933333,15.513066"
|
||||
end_point="16.933333,22.586934"
|
||||
center_point="16.933333,19.05"
|
||||
id="path-effect13"
|
||||
is_visible="true"
|
||||
lpeversion="1.2"
|
||||
lpesatellites=""
|
||||
mode="free"
|
||||
discard_orig_path="false"
|
||||
fuse_paths="false"
|
||||
oposite_fuse="false"
|
||||
split_items="false"
|
||||
split_open="false"
|
||||
link_styles="false" />
|
||||
<inkscape:path-effect
|
||||
effect="mirror_symmetry"
|
||||
start_point="16.933336,22.754166"
|
||||
end_point="16.933336,32.774889"
|
||||
center_point="16.933336,27.764527"
|
||||
id="path-effect8"
|
||||
is_visible="true"
|
||||
lpeversion="1.2"
|
||||
lpesatellites=""
|
||||
mode="free"
|
||||
discard_orig_path="false"
|
||||
fuse_paths="false"
|
||||
oposite_fuse="false"
|
||||
split_items="false"
|
||||
split_open="false"
|
||||
link_styles="false" />
|
||||
<inkscape:path-effect
|
||||
effect="mirror_symmetry"
|
||||
start_point="16.933333,0.048479"
|
||||
end_point="16.933333,33.818187"
|
||||
center_point="16.933333,16.933333"
|
||||
id="path-effect6"
|
||||
is_visible="true"
|
||||
lpeversion="1.2"
|
||||
lpesatellites=""
|
||||
mode="free"
|
||||
discard_orig_path="false"
|
||||
fuse_paths="false"
|
||||
oposite_fuse="false"
|
||||
split_items="false"
|
||||
split_open="false"
|
||||
link_styles="false" />
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
d="M 16.933333,33.767964 C 9.4713474,33.866666 6.2771729,28.774134 6.3499999,22.754166 12.874316,17.35994 13.74129,8.5795681 15.875,0 h 1.058333 m 0,33.767964 c 7.461986,0.0987 10.65616,-4.99383 10.583333,-11.013798 C 20.99235,17.35994 20.125376,8.5795681 17.991666,0 h -1.058333"
|
||||
style="fill:none;stroke:#000000;stroke-width:2.18294;stroke-linejoin:round"
|
||||
id="path6"
|
||||
inkscape:path-effect="#path-effect6"
|
||||
inkscape:original-d="M 16.933333,33.767964 C 9.4713474,33.866666 6.2771729,28.774134 6.3499999,22.754166 12.874316,17.35994 13.74129,8.5795681 15.875,0 h 1.058333"
|
||||
sodipodi:nodetypes="cccc"
|
||||
transform="matrix(1.0000038,0,0,0.94020146,-6.1354782e-5,1.0262002)" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none"
|
||||
d="M 6.3499626,22.419701 H 27.516709"
|
||||
id="path7" />
|
||||
<path
|
||||
style="display:none;fill:none;stroke:#000000;stroke-width:2.11667;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none"
|
||||
d="M 16.933336,32.774889 C 14.438259,32.605733 12.287577,29.02428 12.126849,22.754166 m 4.806487,10.020723 c 2.495077,-0.169156 4.645759,-3.750609 4.806487,-10.020723"
|
||||
id="path8"
|
||||
inkscape:path-effect="#path-effect8"
|
||||
inkscape:original-d="M 16.933336,32.774889 C 14.438259,32.605733 12.287577,29.02428 12.126849,22.754166"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none"
|
||||
d="M 6.3499626,22.419701 C 3.8522717,22.027667 2.6175619,20.904433 2.6458333,19.05 H 3.96875 1.3229166 2.6458333 L 1.3229166,17.570648 C 0.74053188,14.931764 1.7937319,13.0699 2.6458333,11.1125 3.364172,13.032699 4.5342909,14.574168 3.96875,17.570648 L 2.6458333,19.05 m 24.8708697,3.369701 c 2.497691,-0.392034 3.732401,-1.515268 3.70413,-3.369701 h -1.322917 2.645833 -1.322916 l 1.322916,-1.479352 C 33.126134,14.931764 32.072934,13.0699 31.220833,11.1125 c -0.718339,1.920199 -1.888458,3.461668 -1.322917,6.458148 L 31.220833,19.05"
|
||||
id="path13"
|
||||
inkscape:path-effect="#path-effect13"
|
||||
inkscape:original-d="M 6.3499626,22.419701 C 3.8522717,22.027667 2.6175619,20.904433 2.6458333,19.05 H 3.96875 1.3229166 2.6458333 L 1.3229166,17.570648 C 0.74053188,14.931764 1.7937319,13.0699 2.6458333,11.1125 3.364172,13.032699 4.5342909,14.574168 3.96875,17.570648 2.6458333,19.05 3.0868055,18.556883 2.6458333,19.05"
|
||||
sodipodi:nodetypes="ccccccccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none"
|
||||
d="m 16.933336,32.77489 -3e-6,-13.72489 h 1.322917 -2.645834 1.322917 l -1.322917,-1.479352 c -0.582247,-2.213817 0.481387,-4.329351 1.322917,-6.458148 0.76812,1.979419 1.898811,3.766776 1.322917,6.458148 L 16.933333,19.05"
|
||||
id="path15"
|
||||
sodipodi:nodetypes="ccccccccc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.0 KiB |
@@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="127.99999"
|
||||
height="128.00002"
|
||||
viewBox="0 0 33.866665 33.866671"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
|
||||
sodipodi:docname="dishwasher-icon.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="2.8284271"
|
||||
inkscape:cx="43.487067"
|
||||
inkscape:cy="60.811183"
|
||||
inkscape:window-width="1707"
|
||||
inkscape:window-height="1039"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(1.0583346,1.0583346)">
|
||||
<rect
|
||||
style="fill:none;stroke:#000000;stroke-width:1.99215;stroke-dasharray:none"
|
||||
id="rect1"
|
||||
width="31.874516"
|
||||
height="31.874519"
|
||||
x="-0.0622596"
|
||||
y="-0.0622596" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.13907;stroke-dasharray:none"
|
||||
d="M 3.1749984,8.4778668 H 28.574998"
|
||||
id="path1" />
|
||||
<rect
|
||||
style="fill:none;stroke:#000000;stroke-width:1.56062;stroke-dasharray:none"
|
||||
id="rect2"
|
||||
width="0.55605459"
|
||||
height="0.55605119"
|
||||
x="5.0136433"
|
||||
y="3.9553099" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="33.866665mm"
|
||||
height="33.866665mm"
|
||||
viewBox="0 0 33.866666 33.866665"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
|
||||
sodipodi:docname="disposal-icon.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="4"
|
||||
inkscape:cx="74.875"
|
||||
inkscape:cy="49.75"
|
||||
inkscape:window-width="1707"
|
||||
inkscape:window-height="1039"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0.01726782,0.01721442)">
|
||||
<circle
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1"
|
||||
cx="20.717878"
|
||||
cy="11.961516"
|
||||
r="15.874998"
|
||||
transform="rotate(15)" />
|
||||
<g
|
||||
id="g3"
|
||||
transform="rotate(15,16.916065,16.916119)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 1.0410671,16.916118 h 7.9375"
|
||||
id="path2" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 24.853563,16.916119 h 7.9375"
|
||||
id="path3" />
|
||||
</g>
|
||||
<g
|
||||
id="g5"
|
||||
transform="rotate(75,16.916065,16.916118)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 1.0410671,16.916118 h 7.9375"
|
||||
id="path4" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 24.853563,16.916119 h 7.9375"
|
||||
id="path5" />
|
||||
</g>
|
||||
<g
|
||||
id="g8"
|
||||
transform="rotate(135,16.916065,16.916118)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 1.0410671,16.916118 h 7.9375"
|
||||
id="path7" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 24.853563,16.916119 h 7.9375"
|
||||
id="path8" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="128"
|
||||
height="128"
|
||||
viewBox="0 0 33.866666 33.866666"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
|
||||
sodipodi:docname="exterior-lights-icon.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="true"
|
||||
inkscape:zoom="5.6290382"
|
||||
inkscape:cx="32.77647"
|
||||
inkscape:cy="55.693351"
|
||||
inkscape:window-width="3440"
|
||||
inkscape:window-height="1368"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1">
|
||||
<inkscape:grid
|
||||
id="grid1"
|
||||
units="px"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="0.26458333"
|
||||
spacingy="0.26458333"
|
||||
empcolor="#0099e5"
|
||||
empopacity="0.30196078"
|
||||
color="#0099e5"
|
||||
opacity="0.14901961"
|
||||
empspacing="8"
|
||||
enabled="true"
|
||||
visible="true"
|
||||
dotted="true" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="g2"
|
||||
transform="translate(-4.2333336)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 19.049999,8.4666662 -4.233333,-2e-7 L 31.75,2.1166666 V 8.4666662 H 19.049999 V 31.75 l 12.699999,-2e-6 V 8.4666662"
|
||||
id="path1"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="M 19.049999,12.699999 H 12.7 13.49375 l 3.439583,4.233333 H 8.4666667 L 11.90625,12.699999 H 12.7 v 2.116667 c -1.058334,1.058333 -2.116667,2.116666 -2.116667,4.233333 0,1.322917 0,2.910416 2.116667,4.233333 2.116666,-1.322917 2.116666,-2.910416 2.116666,-4.233333 0,-2.116667 -1.058333,-3.175 -2.116666,-4.233333"
|
||||
id="path2"
|
||||
sodipodi:nodetypes="cccccccccccc" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M424.5 355.1C449 329.2 464 294.4 464 256C464 176.5 399.5 112 320 112C240.5 112 176 176.5 176 256C176 294.4 191 329.2 215.5 355.1C236.8 377.5 260.4 409.1 268.8 448L371.2 448C379.6 409 403.2 377.5 424.5 355.1zM459.3 388.1C435.7 413 416 443.4 416 477.7L416 496C416 540.2 380.2 576 336 576L304 576C259.8 576 224 540.2 224 496L224 477.7C224 443.4 204.3 413 180.7 388.1C148 353.7 128 307.2 128 256C128 150 214 64 320 64C426 64 512 150 512 256C512 307.2 492 353.7 459.3 388.1zM272 248C272 261.3 261.3 272 248 272C234.7 272 224 261.3 224 248C224 199.4 263.4 160 312 160C325.3 160 336 170.7 336 184C336 197.3 325.3 208 312 208C289.9 208 272 225.9 272 248z"/></svg>
|
||||
|
After Width: | Height: | Size: 877 B |
@@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="128"
|
||||
height="128"
|
||||
viewBox="0 0 33.866666 33.866666"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
|
||||
sodipodi:docname="outlet-icon.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="true"
|
||||
inkscape:zoom="4.3632813"
|
||||
inkscape:cx="30.940018"
|
||||
inkscape:cy="33.346464"
|
||||
inkscape:window-width="3440"
|
||||
inkscape:window-height="1368"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1">
|
||||
<inkscape:grid
|
||||
id="grid1"
|
||||
units="px"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="0.26458333"
|
||||
spacingy="0.26458333"
|
||||
empcolor="#0099e5"
|
||||
empopacity="0.30196078"
|
||||
color="#0099e5"
|
||||
opacity="0.14901961"
|
||||
empspacing="8"
|
||||
enabled="true"
|
||||
visible="true"
|
||||
dotted="true" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="g5"
|
||||
transform="matrix(1.2499999,0,0,1.2538461,-4.2349535,-4.2984597)"
|
||||
style="stroke-width:0.798772">
|
||||
<g
|
||||
id="g4"
|
||||
style="stroke-width:0.798772">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.69074;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="M 8.4666662,6.3499997 H 25.399999 c 5.644444,7.0555553 5.644444,14.1111103 0,21.1666653 H 8.4666662 c -5.6444441,-7.055555 -5.6444442,-14.11111 0,-21.1666653 z"
|
||||
id="path1"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.69074;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 12.699999,10.054166 v 5.291668"
|
||||
id="path2"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.69074;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 21.166666,10.583333 v 4.233334"
|
||||
id="path3" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.69074;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 14.816666,23.283334 c 0,-0.79375 -10e-7,-2.645833 2.116666,-2.645834 2.116666,1e-6 2.116667,1.852084 2.116667,2.645834 z"
|
||||
id="path4"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,43 @@
|
||||
include <../../lib/chamfered-cube.scad>
|
||||
|
||||
numPaddles = 4;
|
||||
|
||||
// All units in millimeters
|
||||
//
|
||||
// screw distance (on center), horizontal and vertical
|
||||
screwDX = 45;
|
||||
screwDY = 82;
|
||||
|
||||
// paddle size
|
||||
pX = 33.7;
|
||||
pY = 66.3;
|
||||
|
||||
// inter-switch distance (horizontal)
|
||||
interX = 12;
|
||||
|
||||
// plate side size (square)
|
||||
sideX = pX*numPaddles + interX*(numPaddles - 1) + 64;
|
||||
sideY = 120;
|
||||
|
||||
pDepth = 6;
|
||||
backingDepth = 2;
|
||||
tDepth = pDepth + backingDepth;
|
||||
|
||||
pOffsetX = 32;
|
||||
pOffsetY = (sideY - pY)/2;
|
||||
|
||||
difference() {
|
||||
translate([0, 0, -2])
|
||||
chamferedCube([sideX, sideY, tDepth - 3 + 2], chamfer=2);
|
||||
|
||||
// bottom flush cut
|
||||
translate([-10, -10, -4]) cube([sideX + 20, sideY + 20, 4]);
|
||||
|
||||
// paddle cutouts
|
||||
for (i = [0:numPaddles - 1]) {
|
||||
translate([pOffsetX + (pX + interX)*i, pOffsetY, -2]) cube([pX, pY, tDepth + 4]);
|
||||
}
|
||||
|
||||
// interior-space carve-out
|
||||
translate([4, 4, -2]) chamferedCube([sideX - 8, sideY - 8, tDepth - 5 + 2]);
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="128"
|
||||
height="128"
|
||||
viewBox="0 0 33.866666 33.866666"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
|
||||
sodipodi:docname="stair-lights-icon.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showguides="true"
|
||||
showgrid="true"
|
||||
inkscape:zoom="3.4906242"
|
||||
inkscape:cx="-5.2999116"
|
||||
inkscape:cy="11.029546"
|
||||
inkscape:window-width="3440"
|
||||
inkscape:window-height="1368"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1">
|
||||
<inkscape:grid
|
||||
id="grid5"
|
||||
units="px"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="0.26458333"
|
||||
spacingy="0.26458333"
|
||||
empcolor="#0099e5"
|
||||
empopacity="0.30196078"
|
||||
color="#0099e5"
|
||||
opacity="0.14901961"
|
||||
empspacing="8"
|
||||
enabled="true"
|
||||
visible="true"
|
||||
dotted="true" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs1">
|
||||
<inkscape:path-effect
|
||||
effect="mirror_symmetry"
|
||||
start_point="7.2760413,8.8635414"
|
||||
end_point="7.2760413,10.451041"
|
||||
center_point="7.2760413,9.6572912"
|
||||
id="path-effect7"
|
||||
is_visible="true"
|
||||
lpeversion="1.2"
|
||||
lpesatellites=""
|
||||
mode="free"
|
||||
discard_orig_path="false"
|
||||
fuse_paths="false"
|
||||
oposite_fuse="false"
|
||||
split_items="false"
|
||||
split_open="false"
|
||||
link_styles="false" />
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="M 1.7197916,6.4822912 -0.13229162,9.1281244 M 12.832291,6.4822912 14.684374,9.1281244"
|
||||
id="path7"
|
||||
inkscape:path-effect="#path-effect7"
|
||||
inkscape:original-d="M 1.7197916,6.4822912 -0.13229162,9.1281244"
|
||||
transform="translate(1.1906249,7.2760414)"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 8.4666662,15.874999 0,2.910417"
|
||||
id="path8"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 31.749999,12.699999 h -6.35 v 6.35 h -6.35 v 6.35 h -6.35 V 31.75 l -6.3499993,-2e-6"
|
||||
id="path9"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
id="path10"
|
||||
style="fill:none;stroke:#000000;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 6.3499999,2.1166666 v 2.6458333 0 C 4.9984853,5.5053705 4.2354036,6.9244459 4.2333332,8.4666665 4.233333,10.804672 6.128661,12.7 8.4666665,12.7 10.804672,12.7 12.7,10.804672 12.7,8.4666665 12.697929,6.9244458 11.934848,5.5053703 10.583333,4.7624999 v 0 -2.6458333 c -0.7937502,-0.5291667 -3.4395834,-0.5291667 -4.2333331,0 z"
|
||||
sodipodi:nodetypes="ccccsccccc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
@@ -0,0 +1,40 @@
|
||||
include <../../lib/chamfered-cube.scad>
|
||||
|
||||
// All units in millimeters
|
||||
//
|
||||
// screw distance (on center), horizontal and vertical
|
||||
screwDX = 45;
|
||||
screwDY = 82;
|
||||
|
||||
// paddle size
|
||||
pX = 33.7;
|
||||
pY = 66.3;
|
||||
|
||||
// inter-switch distance (horizontal)
|
||||
interX = 12;
|
||||
|
||||
// plate side size (square_
|
||||
side = 120;
|
||||
|
||||
pDepth = 6;
|
||||
backingDepth = 2;
|
||||
tDepth = pDepth + backingDepth;
|
||||
|
||||
pOffsetX = (side - 2*pX - interX)/2;
|
||||
pOffsetY = (side - pY)/2;
|
||||
|
||||
difference() {
|
||||
translate([0, 0, -2])
|
||||
chamferedCube([side, side, tDepth - 3 + 2], chamfer=2);
|
||||
|
||||
// bottom flush cut
|
||||
translate([-10, -10, -4]) cube([side + 20, side + 20, 4]);
|
||||
|
||||
// paddle cutouts
|
||||
for (i = [0, 1]) {
|
||||
translate([pOffsetX + (pX + interX)*i, pOffsetY, -2]) cube([pX, pY, tDepth + 4]);
|
||||
}
|
||||
|
||||
// interior-space carve-out
|
||||
translate([4, 4, -2]) chamferedCube([side - 8, side - 8, tDepth - 5 + 2]);
|
||||
}
|
||||
@@ -351,7 +351,7 @@ module lowerRightDrawerFace(outerDims, boxDims) {
|
||||
cube([boardThickness, drawerHeight(boxDims) - boardThickness + ep, 4+ep]);
|
||||
translate([
|
||||
feltThickness + boardThickness/2 + drawerWidth(boxDims) - boardThickness,
|
||||
feltThickness + boardThickness/2 + boardThickness - ep,
|
||||
drawerSideOffset + boardThickness - ep,
|
||||
-ep])
|
||||
cube([boardThickness, drawerHeight(boxDims) - boardThickness + ep, 4+ep]);
|
||||
|
||||
@@ -626,7 +626,7 @@ innerBoxDims =
|
||||
|
||||
//drawerBottom(innerBoxDims);
|
||||
//lowerLeftDrawerFace(shelfDims, innerBoxDims);
|
||||
//lowerRightDrawerFace(shelfDims, innerBoxDims);
|
||||
lowerRightDrawerFace(shelfDims, innerBoxDims);
|
||||
//upperLeftDrawerFace(shelfDims, innerBoxDims);
|
||||
upperRightDrawerFace(shelfDims, innerBoxDims);
|
||||
//upperRightDrawerFace(shelfDims, innerBoxDims);
|
||||
//drawerHandle();
|
||||
|
||||
@@ -0,0 +1,174 @@
|
||||
// use </home/elijah/Applications/OpenSCAD Libraries/OpenSCAD-Pattern-Filling-master/pattern.scad>
|
||||
|
||||
wallLength=127;
|
||||
largeWallHeight=228.6;
|
||||
//full size is 228.6mm
|
||||
wallWidth=10;
|
||||
sinkHoleDiameter=19.05;
|
||||
sinkPadding=1;
|
||||
|
||||
circleRadius=3.175;
|
||||
|
||||
module CutOutCircles(r)
|
||||
{
|
||||
color("blue")
|
||||
cylinder(h=15, r=r, center=false);
|
||||
translate([0, 0, 29])
|
||||
sphere(r*5.2);
|
||||
}
|
||||
|
||||
module DrawAllCircles(startPoint, endPoint, distanceBetween, xPoint, zPoint) {
|
||||
for(i = [startPoint : distanceBetween : endPoint])
|
||||
{
|
||||
translate([xPoint, i, zPoint])
|
||||
CutOutCircles(circleRadius);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module mainBody() {
|
||||
translate([0, 0, wallWidth])
|
||||
difference(){
|
||||
|
||||
union(){
|
||||
//Longer Wall
|
||||
color("cyan")
|
||||
cube([wallLength, wallWidth, largeWallHeight]);
|
||||
color("cyan")
|
||||
translate([0, -117, 0])
|
||||
cube([wallLength, wallWidth, largeWallHeight]);
|
||||
|
||||
//Shorter Wall
|
||||
color("yellow")
|
||||
translate([0,0,-10])
|
||||
rotate([0, 0, -90])
|
||||
cube([wallLength - (wallWidth*2), wallWidth, largeWallHeight + 10]);
|
||||
|
||||
color("yellow")
|
||||
translate([117, 0, -10])
|
||||
rotate([0, 0, -90])
|
||||
cube([wallLength - (wallWidth*2), wallWidth, largeWallHeight + 10]);
|
||||
|
||||
|
||||
difference()
|
||||
{
|
||||
color("green")
|
||||
rotate([90,0,0])
|
||||
translate([0, -10, -10])
|
||||
cube([wallLength, wallWidth, wallLength]);
|
||||
|
||||
DrawAllCircles(-72, -27.5, circleRadius*4, 15, -20);
|
||||
DrawAllCircles(-91, -10, circleRadius*4, 27.5, -20);
|
||||
DrawAllCircles(-91, -10, circleRadius*4, 40, -20);
|
||||
DrawAllCircles(-91, -10, circleRadius*4, 52.5, -20);
|
||||
DrawAllCircles(-91, -10, circleRadius*4, 65, -20);
|
||||
DrawAllCircles(-91, -10, circleRadius*4, 77.5, -20);
|
||||
DrawAllCircles(-91, -10, circleRadius*4, 90, -20);
|
||||
DrawAllCircles(-91, -10, circleRadius*4, 102.5, -20);
|
||||
DrawAllCircles(-72, -27.5, circleRadius*4, 113, -20);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Holes in the bottom
|
||||
|
||||
// translate([15, -30, -20])
|
||||
// CutOutCircles(circleRadius);
|
||||
|
||||
|
||||
|
||||
|
||||
// Triangular cutouts in the corners
|
||||
union(){
|
||||
color("blue")
|
||||
translate([0, 10, -30])
|
||||
rotate([45, 0, 45])
|
||||
|
||||
cube([70,70,70], center=true);
|
||||
|
||||
color("blue")
|
||||
translate([0, -117, -30])
|
||||
rotate([45, 0, -45])
|
||||
cube([70,70,70], center=true);
|
||||
|
||||
color("blue")
|
||||
translate([wallLength, 10, -30])
|
||||
rotate([-45, 0, -45])
|
||||
cube([70,70,70], center=true);
|
||||
|
||||
color("blue")
|
||||
translate([127, -117, -30])
|
||||
rotate([-45, 0, 45])
|
||||
cube([70,70,70], center=true);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Grip Mechanism
|
||||
module grip() {
|
||||
translate([0, 0, wallWidth])
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
//Base
|
||||
translate([63.5, 30, 162.3])
|
||||
cube([90.8,47.4,76.2], center=true);
|
||||
|
||||
//Rounded far edge
|
||||
translate([63.5, 46.6625, 125])
|
||||
rotate([0,90,0])
|
||||
cylinder(h = 90.8, r = 6.0375, center=true);
|
||||
|
||||
//Rounded near edge
|
||||
translate([63.5, 15.6875, 125])
|
||||
rotate([0,90,0])
|
||||
cylinder(h = 90.8, r = 6.0375, center=true);
|
||||
}
|
||||
|
||||
//Opening for grip
|
||||
union()
|
||||
{
|
||||
//Cylinders for hole
|
||||
translate([63.5, 31, 170])
|
||||
rotate([0,90,0])
|
||||
cylinder(h = 91, r = sinkHoleDiameter/2 + (sinkPadding * 2), center=true);
|
||||
|
||||
translate([63.5, 31, 138.7])
|
||||
cube([91, sinkHoleDiameter + (sinkPadding * 2), 60], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
rotate([0, -45, 0])
|
||||
union() {
|
||||
mainBody();
|
||||
grip();
|
||||
|
||||
for(i = [1,2]) {
|
||||
translate([-wallLength * 2 - 0.1, -wallLength*i/3 + wallWidth, 0])
|
||||
cube([wallLength*2, 1.2, largeWallHeight]);
|
||||
|
||||
}
|
||||
|
||||
for(i = [-1, 1]) {
|
||||
translate([-wallLength*2 + 63.5 - (90.8/2) - 0.1, 30 + 16*i, 0])
|
||||
cube([wallLength*2, 1.2, largeWallHeight]);
|
||||
translate([0, -50-50*i, -80.1]) cube([80, 1.2, 80]);
|
||||
}
|
||||
}
|
||||
translate([-140, -74, 0]) cube([1.2, 121, 100]);
|
||||
|
||||
}
|
||||
|
||||
translate([-400, -400, -400]) cube([800, 800, 400]);
|
||||
translate([-980, -200, -1]) cube([800, 400, 400]);
|
||||
translate([90, -200, -1]) cube([800, 400, 400]);
|
||||
}
|
||||