Switch plates for home lighting.

This commit is contained in:
2026-08-04 18:23:59 -05:00
parent 5987b647be
commit 6f3edad8ab
12 changed files with 702 additions and 0 deletions
@@ -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

Binary file not shown.
@@ -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

+87
View File
@@ -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]);
}