Add asymmetric offset GFCI plate variant
New plate with off-center opening: - Total width: 177.8mm (7 inches) - Left of opening: 63.5mm (2.5 inches) - Right of opening: 114.3mm (4.5 inches) - Height unchanged: 230mm Opening and screw holes remain at origin (X=0). Includes 2D template SVG for paper test-fit. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
3f9480e61b
commit
201b627841
48
light-switches/gfci-paddle-switch-extended-offset-2d.scad
Normal file
48
light-switches/gfci-paddle-switch-extended-offset-2d.scad
Normal file
@ -0,0 +1,48 @@
|
||||
// 2D projection for paper test fit - OFFSET VERSION
|
||||
// Print this at 100% scale (no scaling)
|
||||
|
||||
include <BOSL2/std.scad>
|
||||
|
||||
// Asymmetric plate dimensions
|
||||
plate_left = 63.5; // mm (2.5 inches)
|
||||
plate_right = 114.3; // mm (4.5 inches)
|
||||
plate_width = 177.8; // mm (7 inches total)
|
||||
plate_x_offset = 25.4; // mm (1 inch) - plate center offset
|
||||
plate_height = 230.0;
|
||||
plate_corner_radius = 3.0;
|
||||
|
||||
opening_width = 34.0;
|
||||
opening_height = 67.0;
|
||||
opening_corner_radius = 2.0;
|
||||
|
||||
// Main screw holes (pill-shaped)
|
||||
screw_hole_height = 6.0;
|
||||
screw_hole_width = 14.0;
|
||||
screw_hole_spacing = 83.3;
|
||||
|
||||
// Outer screw holes (circular)
|
||||
outer_screw_hole_offset = 6.35;
|
||||
outer_screw_hole_diameter = 2.68;
|
||||
|
||||
$fn = 64;
|
||||
|
||||
difference() {
|
||||
// Plate body (offset in X)
|
||||
translate([plate_x_offset, 0])
|
||||
rect([plate_width, plate_height], rounding=plate_corner_radius);
|
||||
|
||||
// Opening (at origin)
|
||||
rect([opening_width, opening_height], rounding=opening_corner_radius);
|
||||
|
||||
// Main screw holes (pill-shaped, at origin)
|
||||
translate([0, screw_hole_spacing/2])
|
||||
rect([screw_hole_width, screw_hole_height], rounding=screw_hole_height/2);
|
||||
translate([0, -screw_hole_spacing/2])
|
||||
rect([screw_hole_width, screw_hole_height], rounding=screw_hole_height/2);
|
||||
|
||||
// Outer screw holes (circular, at origin)
|
||||
translate([0, screw_hole_spacing/2 + outer_screw_hole_offset])
|
||||
circle(d=outer_screw_hole_diameter);
|
||||
translate([0, -screw_hole_spacing/2 - outer_screw_hole_offset])
|
||||
circle(d=outer_screw_hole_diameter);
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="179mm" height="230mm" viewBox="-64 -115 179 230" xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||
<title>OpenSCAD Model</title>
|
||||
<path d="
|
||||
M 111.594,114.986 L 111.885,114.942 L 112.171,114.871 L 112.448,114.772 L 112.714,114.646 L 112.967,114.494
|
||||
L 113.203,114.319 L 113.421,114.121 L 113.619,113.903 L 113.794,113.667 L 113.946,113.414 L 114.072,113.148
|
||||
L 114.171,112.871 L 114.242,112.585 L 114.286,112.294 L 114.3,112 L 114.3,-112 L 114.286,-112.294
|
||||
L 114.242,-112.585 L 114.171,-112.871 L 114.072,-113.148 L 113.946,-113.414 L 113.794,-113.667 L 113.619,-113.903
|
||||
L 113.421,-114.121 L 113.203,-114.319 L 112.967,-114.494 L 112.714,-114.646 L 112.448,-114.772 L 112.171,-114.871
|
||||
L 111.885,-114.942 L 111.594,-114.986 L 111.3,-115 L -60.5,-115 L -60.794,-114.986 L -61.0853,-114.942
|
||||
L -61.3708,-114.871 L -61.648,-114.772 L -61.9142,-114.646 L -62.1667,-114.494 L -62.4032,-114.319 L -62.6213,-114.121
|
||||
L -62.819,-113.903 L -62.9944,-113.667 L -63.1458,-113.414 L -63.2716,-113.148 L -63.3708,-112.871 L -63.4423,-112.585
|
||||
L -63.4855,-112.294 L -63.5,-112 L -63.5,112 L -63.4855,112.294 L -63.4423,112.585 L -63.3708,112.871
|
||||
L -63.2716,113.148 L -63.1458,113.414 L -62.9944,113.667 L -62.819,113.903 L -62.6213,114.121 L -62.4032,114.319
|
||||
L -62.1667,114.494 L -61.9142,114.646 L -61.648,114.772 L -61.3708,114.871 L -61.0853,114.942 L -60.794,114.986
|
||||
L -60.5,115 L 111.3,115 z
|
||||
M -0.131332,-46.6664 L -0.261414,-46.6857 L -0.388977,-46.7177 L -0.512787,-46.762 L -0.631668,-46.8182 L -0.744461,-46.8858
|
||||
L -0.850082,-46.9642 L -0.94751,-47.0525 L -1.03583,-47.1499 L -1.11417,-47.2555 L -1.18176,-47.3683 L -1.23799,-47.4872
|
||||
L -1.28229,-47.611 L -1.31424,-47.7386 L -1.33354,-47.8687 L -1.34,-48 L -1.33354,-48.1313 L -1.31424,-48.2614
|
||||
L -1.28229,-48.389 L -1.23799,-48.5128 L -1.18176,-48.6317 L -1.11417,-48.7445 L -1.03583,-48.8501 L -0.94751,-48.9475
|
||||
L -0.850082,-49.0358 L -0.744461,-49.1142 L -0.631668,-49.1818 L -0.512787,-49.238 L -0.388977,-49.2823 L -0.261414,-49.3142
|
||||
L -0.131332,-49.3335 L 0,-49.34 L 0.131332,-49.3335 L 0.261414,-49.3142 L 0.388977,-49.2823 L 0.512787,-49.238
|
||||
L 0.631668,-49.1818 L 0.744461,-49.1142 L 0.850082,-49.0358 L 0.94751,-48.9475 L 1.03583,-48.8501 L 1.11417,-48.7445
|
||||
L 1.18176,-48.6317 L 1.23799,-48.5128 L 1.28229,-48.389 L 1.31424,-48.2614 L 1.33354,-48.1313 L 1.34,-48
|
||||
L 1.33354,-47.8687 L 1.31424,-47.7386 L 1.28229,-47.611 L 1.23799,-47.4872 L 1.18176,-47.3683 L 1.11417,-47.2555
|
||||
L 1.03583,-47.1499 L 0.94751,-47.0525 L 0.850082,-46.9642 L 0.744461,-46.8858 L 0.631668,-46.8182 L 0.512787,-46.762
|
||||
L 0.388977,-46.7177 L 0.261414,-46.6857 L 0.131332,-46.6664 L 0,-46.66 z
|
||||
M -4,-38.65 L -4.29404,-38.6644 L -4.58527,-38.7076 L -4.87085,-38.7792 L -5.14804,-38.8784 L -5.41418,-39.0042
|
||||
L -5.6667,-39.1556 L -5.90317,-39.331 L -6.12131,-39.5287 L -6.31903,-39.7468 L -6.4944,-39.9833 L -6.64575,-40.2358
|
||||
L -6.77164,-40.502 L -6.87082,-40.7791 L -6.94235,-41.0647 L -6.98555,-41.356 L -7,-41.65 L -6.98555,-41.944
|
||||
L -6.94235,-42.2353 L -6.87082,-42.5208 L -6.77164,-42.798 L -6.64575,-43.0642 L -6.4944,-43.3167 L -6.31903,-43.5532
|
||||
L -6.12131,-43.7713 L -5.90317,-43.969 L -5.6667,-44.1444 L -5.41418,-44.2957 L -5.14804,-44.4216 L -4.87085,-44.5208
|
||||
L -4.58527,-44.5923 L -4.29404,-44.6355 L -4,-44.65 L 4,-44.65 L 4.29404,-44.6355 L 4.58527,-44.5923
|
||||
L 4.87085,-44.5208 L 5.14804,-44.4216 L 5.41418,-44.2957 L 5.6667,-44.1444 L 5.90317,-43.969 L 6.12131,-43.7713
|
||||
L 6.31903,-43.5532 L 6.4944,-43.3167 L 6.64575,-43.0642 L 6.77164,-42.798 L 6.87082,-42.5208 L 6.94235,-42.2353
|
||||
L 6.98555,-41.944 L 7,-41.65 L 6.98555,-41.356 L 6.94235,-41.0647 L 6.87082,-40.7791 L 6.77164,-40.502
|
||||
L 6.64575,-40.2358 L 6.4944,-39.9833 L 6.31903,-39.7468 L 6.12131,-39.5287 L 5.90317,-39.331 L 5.6667,-39.1556
|
||||
L 5.41418,-39.0042 L 5.14804,-38.8784 L 4.87085,-38.7792 L 4.58527,-38.7076 L 4.29404,-38.6644 L 4,-38.65
|
||||
z
|
||||
M -15,33.5 L -15.196,33.4904 L -15.3902,33.4616 L -15.5806,33.4139 L -15.7654,33.3477 L -15.9428,33.2638
|
||||
L -16.1111,33.1629 L -16.2688,33.046 L -16.4142,32.9142 L -16.546,32.7688 L -16.6629,32.6111 L -16.7638,32.4428
|
||||
L -16.8477,32.2654 L -16.9139,32.0806 L -16.9616,31.8902 L -16.9904,31.696 L -17,31.5 L -17,-31.5
|
||||
L -16.9904,-31.696 L -16.9616,-31.8902 L -16.9139,-32.0806 L -16.8477,-32.2654 L -16.7638,-32.4428 L -16.6629,-32.6111
|
||||
L -16.546,-32.7688 L -16.4142,-32.9142 L -16.2688,-33.046 L -16.1111,-33.1629 L -15.9428,-33.2638 L -15.7654,-33.3477
|
||||
L -15.5806,-33.4139 L -15.3902,-33.4616 L -15.196,-33.4904 L -15,-33.5 L 15,-33.5 L 15.196,-33.4904
|
||||
L 15.3902,-33.4616 L 15.5806,-33.4139 L 15.7654,-33.3477 L 15.9428,-33.2638 L 16.1111,-33.1629 L 16.2688,-33.046
|
||||
L 16.4142,-32.9142 L 16.546,-32.7688 L 16.6629,-32.6111 L 16.7638,-32.4428 L 16.8477,-32.2654 L 16.9139,-32.0806
|
||||
L 16.9616,-31.8902 L 16.9904,-31.696 L 17,-31.5 L 17,31.5 L 16.9904,31.696 L 16.9616,31.8902
|
||||
L 16.9139,32.0806 L 16.8477,32.2654 L 16.7638,32.4428 L 16.6629,32.6111 L 16.546,32.7688 L 16.4142,32.9142
|
||||
L 16.2688,33.046 L 16.1111,33.1629 L 15.9428,33.2638 L 15.7654,33.3477 L 15.5806,33.4139 L 15.3902,33.4616
|
||||
L 15.196,33.4904 L 15,33.5 z
|
||||
M -4,44.65 L -4.29404,44.6355 L -4.58527,44.5923 L -4.87085,44.5208 L -5.14804,44.4216 L -5.41418,44.2957
|
||||
L -5.6667,44.1444 L -5.90317,43.969 L -6.12131,43.7713 L -6.31903,43.5532 L -6.4944,43.3167 L -6.64575,43.0642
|
||||
L -6.77164,42.798 L -6.87082,42.5208 L -6.94235,42.2353 L -6.98555,41.944 L -7,41.65 L -6.98555,41.356
|
||||
L -6.94235,41.0647 L -6.87082,40.7791 L -6.77164,40.502 L -6.64575,40.2358 L -6.4944,39.9833 L -6.31903,39.7468
|
||||
L -6.12131,39.5287 L -5.90317,39.331 L -5.6667,39.1556 L -5.41418,39.0042 L -5.14804,38.8784 L -4.87085,38.7792
|
||||
L -4.58527,38.7076 L -4.29404,38.6644 L -4,38.65 L 4,38.65 L 4.29404,38.6644 L 4.58527,38.7076
|
||||
L 4.87085,38.7792 L 5.14804,38.8784 L 5.41418,39.0042 L 5.6667,39.1556 L 5.90317,39.331 L 6.12131,39.5287
|
||||
L 6.31903,39.7468 L 6.4944,39.9833 L 6.64575,40.2358 L 6.77164,40.502 L 6.87082,40.7791 L 6.94235,41.0647
|
||||
L 6.98555,41.356 L 7,41.65 L 6.98555,41.944 L 6.94235,42.2353 L 6.87082,42.5208 L 6.77164,42.798
|
||||
L 6.64575,43.0642 L 6.4944,43.3167 L 6.31903,43.5532 L 6.12131,43.7713 L 5.90317,43.969 L 5.6667,44.1444
|
||||
L 5.41418,44.2957 L 5.14804,44.4216 L 4.87085,44.5208 L 4.58527,44.5923 L 4.29404,44.6355 L 4,44.65
|
||||
z
|
||||
M -0.131332,49.3335 L -0.261414,49.3142 L -0.388977,49.2823 L -0.512787,49.238 L -0.631668,49.1818 L -0.744461,49.1142
|
||||
L -0.850082,49.0358 L -0.94751,48.9475 L -1.03583,48.8501 L -1.11417,48.7445 L -1.18176,48.6317 L -1.23799,48.5128
|
||||
L -1.28229,48.389 L -1.31424,48.2614 L -1.33354,48.1313 L -1.34,48 L -1.33354,47.8687 L -1.31424,47.7386
|
||||
L -1.28229,47.611 L -1.23799,47.4872 L -1.18176,47.3683 L -1.11417,47.2555 L -1.03583,47.1499 L -0.94751,47.0525
|
||||
L -0.850082,46.9642 L -0.744461,46.8858 L -0.631668,46.8182 L -0.512787,46.762 L -0.388977,46.7177 L -0.261414,46.6857
|
||||
L -0.131332,46.6664 L 0,46.66 L 0.131332,46.6664 L 0.261414,46.6857 L 0.388977,46.7177 L 0.512787,46.762
|
||||
L 0.631668,46.8182 L 0.744461,46.8858 L 0.850082,46.9642 L 0.94751,47.0525 L 1.03583,47.1499 L 1.11417,47.2555
|
||||
L 1.18176,47.3683 L 1.23799,47.4872 L 1.28229,47.611 L 1.31424,47.7386 L 1.33354,47.8687 L 1.34,48
|
||||
L 1.33354,48.1313 L 1.31424,48.2614 L 1.28229,48.389 L 1.23799,48.5128 L 1.18176,48.6317 L 1.11417,48.7445
|
||||
L 1.03583,48.8501 L 0.94751,48.9475 L 0.850082,49.0358 L 0.744461,49.1142 L 0.631668,49.1818 L 0.512787,49.238
|
||||
L 0.388977,49.2823 L 0.261414,49.3142 L 0.131332,49.3335 L 0,49.34 z
|
||||
" stroke="black" fill="none" stroke-width="0.5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.5 KiB |
138
light-switches/gfci-paddle-switch-extended-offset.scad
Normal file
138
light-switches/gfci-paddle-switch-extended-offset.scad
Normal file
@ -0,0 +1,138 @@
|
||||
// GFCI Paddle Switch Plate - Extended Size with X Offset
|
||||
// Custom oversized plate with OFF-CENTER paddle opening
|
||||
// Opening and screw holes at X=0, plate extends asymmetrically
|
||||
|
||||
include <BOSL2/std.scad>
|
||||
|
||||
/* [Plate Dimensions] */
|
||||
// Asymmetric plate: 2.5" left of center, 4.5" right of center
|
||||
plate_left = 63.5; // mm (2.5 inches) - distance from center to left edge
|
||||
plate_right = 114.3; // mm (4.5 inches) - distance from center to right edge
|
||||
plate_width = 177.8; // mm - total X dimension (7 inches)
|
||||
plate_x_offset = 25.4; // mm (1 inch) - plate center offset from opening
|
||||
plate_height = 230.0; // mm - Y dimension (unchanged)
|
||||
plate_thickness = 5.0; // mm - Z dimension
|
||||
|
||||
/* [Bevel Settings] */
|
||||
bevel_inset = 1.82; // mm - how much smaller bottom is per side
|
||||
|
||||
/* [Recess Settings] */
|
||||
recess_enabled = true;
|
||||
recess_depth = 2.0; // mm - depth of recess (from bottom)
|
||||
recess_inset = 8.0; // mm - inset from outer edge
|
||||
|
||||
/* [Paddle Opening] */
|
||||
// Rectangular opening for paddle switch (same as standard plate)
|
||||
opening_width = 34.0; // mm - width of opening
|
||||
opening_height = 67.0; // mm - height of opening
|
||||
|
||||
/* [Corner Rounding] */
|
||||
plate_corner_radius = 3.0; // mm
|
||||
opening_corner_radius = 2.0; // mm
|
||||
|
||||
/* [Screw Holes] */
|
||||
screw_holes_enabled = true;
|
||||
screw_hole_height = 6.0; // mm - vertical dimension (was diameter)
|
||||
screw_hole_width = 14.0; // mm - horizontal dimension (250% of height)
|
||||
screw_hole_spacing = 83.3; // mm - distance between main screw holes
|
||||
|
||||
// Outer screw holes (smaller, beyond the main holes)
|
||||
outer_screw_holes_enabled = true;
|
||||
outer_screw_hole_offset = 6.35; // mm (0.25 inches) beyond main holes
|
||||
outer_screw_hole_diameter = 2.68; // mm (67% of main hole diameter)
|
||||
|
||||
/* [Resolution] */
|
||||
$fn = 64;
|
||||
|
||||
// ============================================
|
||||
// CALCULATED VALUES
|
||||
// ============================================
|
||||
|
||||
bottom_width = plate_width - (bevel_inset * 2);
|
||||
bottom_height = plate_height - (bevel_inset * 2);
|
||||
recess_width = plate_width - (recess_inset * 2);
|
||||
recess_height = plate_height - (recess_inset * 2);
|
||||
|
||||
// ============================================
|
||||
// MODULES
|
||||
// ============================================
|
||||
|
||||
module plate_body() {
|
||||
// Flipped for printing: front face (larger) at Z=0, back (smaller) at Z=5
|
||||
// This eliminates overhang on beveled edges
|
||||
// Offset in X so opening remains at origin
|
||||
translate([plate_x_offset, 0, 0])
|
||||
prismoid(
|
||||
size1 = [plate_width, plate_height], // front face (larger) at bottom
|
||||
size2 = [bottom_width, bottom_height], // back face (smaller) at top
|
||||
h = plate_thickness,
|
||||
rounding = plate_corner_radius,
|
||||
anchor = BOTTOM
|
||||
);
|
||||
}
|
||||
|
||||
module back_recess() {
|
||||
if (recess_enabled) {
|
||||
recess_rounding = max(0.5, plate_corner_radius - recess_inset/4);
|
||||
// Recess now at top (Z=5) since plate is flipped for printing
|
||||
// Offset in X to match plate body
|
||||
translate([plate_x_offset, 0, plate_thickness - recess_depth - 0.01])
|
||||
prismoid(
|
||||
size1 = [recess_width, recess_height],
|
||||
size2 = [recess_width, recess_height],
|
||||
h = recess_depth + 0.02,
|
||||
rounding = recess_rounding,
|
||||
anchor = BOTTOM
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// 2D paddle opening shape (simple rectangle with rounded corners)
|
||||
module paddle_opening_2d() {
|
||||
rect([opening_width, opening_height], rounding=opening_corner_radius);
|
||||
}
|
||||
|
||||
module paddle_opening_3d() {
|
||||
translate([0, 0, -0.1])
|
||||
linear_extrude(height = plate_thickness + 0.2)
|
||||
paddle_opening_2d();
|
||||
}
|
||||
|
||||
module screw_holes() {
|
||||
if (screw_holes_enabled) {
|
||||
// Top main screw hole (pill-shaped, horizontal)
|
||||
translate([0, screw_hole_spacing/2, -0.1])
|
||||
linear_extrude(height = plate_thickness + 0.2)
|
||||
rect([screw_hole_width, screw_hole_height], rounding=screw_hole_height/2);
|
||||
|
||||
// Bottom main screw hole (pill-shaped, horizontal)
|
||||
translate([0, -screw_hole_spacing/2, -0.1])
|
||||
linear_extrude(height = plate_thickness + 0.2)
|
||||
rect([screw_hole_width, screw_hole_height], rounding=screw_hole_height/2);
|
||||
}
|
||||
|
||||
if (outer_screw_holes_enabled) {
|
||||
// Top outer screw hole (above top main hole)
|
||||
translate([0, screw_hole_spacing/2 + outer_screw_hole_offset, -0.1])
|
||||
cylinder(h = plate_thickness + 0.2, d = outer_screw_hole_diameter);
|
||||
|
||||
// Bottom outer screw hole (below bottom main hole)
|
||||
translate([0, -screw_hole_spacing/2 - outer_screw_hole_offset, -0.1])
|
||||
cylinder(h = plate_thickness + 0.2, d = outer_screw_hole_diameter);
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// MAIN ASSEMBLY
|
||||
// ============================================
|
||||
|
||||
module gfci_paddle_plate_extended() {
|
||||
difference() {
|
||||
plate_body();
|
||||
back_recess();
|
||||
paddle_opening_3d();
|
||||
screw_holes();
|
||||
}
|
||||
}
|
||||
|
||||
gfci_paddle_plate_extended();
|
||||
Loading…
Reference in New Issue
Block a user