From 30c2e33e7e0da57acca39f9df1efdcd2138e0a6d Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Sat, 20 Dec 2025 17:48:14 -0600 Subject: [PATCH] Add custom screw holes to extended GFCI plate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added outer screw holes: 2.68mm diameter, 0.25" (6.35mm) beyond main holes - Main screw holes enlarged 40% (4.0mm → 5.6mm) - Main screw holes changed to horizontal pill shape (14mm × 5.6mm) - Updated 2D template SVG with matching holes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../gfci-paddle-switch-extended-2d.scad | 21 ++++-- .../gfci-paddle-switch-extended-template.svg | 68 +++++++++++++------ .../gfci-paddle-switch-extended.scad | 30 ++++++-- 3 files changed, 87 insertions(+), 32 deletions(-) diff --git a/light-switches/gfci-paddle-switch-extended-2d.scad b/light-switches/gfci-paddle-switch-extended-2d.scad index ba13bf5..e88a967 100644 --- a/light-switches/gfci-paddle-switch-extended-2d.scad +++ b/light-switches/gfci-paddle-switch-extended-2d.scad @@ -10,17 +10,30 @@ opening_width = 34.0; opening_height = 67.0; opening_corner_radius = 2.0; -// Screw holes - same spacing as original -screw_hole_diameter = 5.0; +// Main screw holes (pill-shaped, horizontal) +screw_hole_height = 5.6; +screw_hole_width = 14.0; // 250% of height screw_hole_spacing = 83.3; +// Outer screw holes (circular, 0.25" beyond main holes) +outer_screw_hole_offset = 6.35; // mm (0.25 inches) +outer_screw_hole_diameter = 2.68; // mm (67% of original 4.0mm) + $fn = 64; difference() { rect([plate_width, plate_height], rounding=plate_corner_radius); rect([opening_width, opening_height], rounding=opening_corner_radius); + + // Main screw holes (pill-shaped) translate([0, screw_hole_spacing/2]) - circle(d=screw_hole_diameter); + rect([screw_hole_width, screw_hole_height], rounding=screw_hole_height/2); translate([0, -screw_hole_spacing/2]) - circle(d=screw_hole_diameter); + rect([screw_hole_width, screw_hole_height], rounding=screw_hole_height/2); + + // Outer screw holes (circular) + 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); } diff --git a/light-switches/gfci-paddle-switch-extended-template.svg b/light-switches/gfci-paddle-switch-extended-template.svg index 7a45e07..1c8057c 100644 --- a/light-switches/gfci-paddle-switch-extended-template.svg +++ b/light-switches/gfci-paddle-switch-extended-template.svg @@ -15,17 +15,29 @@ M 73.794,114.986 L 74.0853,114.942 L 74.3708,114.871 L 74.648,114.772 L 74.9142, L -76.2716,113.148 L -76.1458,113.414 L -75.9944,113.667 L -75.819,113.903 L -75.6213,114.121 L -75.4032,114.319 L -75.1667,114.494 L -74.9142,114.646 L -74.648,114.772 L -74.3708,114.871 L -74.0853,114.942 L -73.794,114.986 L -73.5,115 L 73.5,115 z -M -0.245041,-39.162 L -0.487717,-39.198 L -0.725708,-39.2576 L -0.956696,-39.3403 L -1.17848,-39.4452 L -1.38892,-39.5713 - L -1.58597,-39.7175 L -1.76776,-39.8822 L -1.93253,-40.064 L -2.07866,-40.2611 L -2.20479,-40.4715 L -2.30969,-40.6933 - L -2.39235,-40.9243 L -2.45195,-41.1623 L -2.48796,-41.405 L -2.5,-41.65 L -2.48796,-41.895 L -2.45195,-42.1377 - L -2.39235,-42.3757 L -2.30969,-42.6067 L -2.20479,-42.8285 L -2.07866,-43.0389 L -1.93253,-43.236 L -1.76776,-43.4178 - L -1.58597,-43.5825 L -1.38892,-43.7287 L -1.17848,-43.8548 L -0.956696,-43.9597 L -0.725708,-44.0423 L -0.487717,-44.102 - L -0.245041,-44.138 L 0,-44.15 L 0.245041,-44.138 L 0.487717,-44.102 L 0.725708,-44.0423 L 0.956696,-43.9597 - L 1.17848,-43.8548 L 1.38892,-43.7287 L 1.58597,-43.5825 L 1.76776,-43.4178 L 1.93253,-43.236 L 2.07866,-43.0389 - L 2.20479,-42.8285 L 2.30969,-42.6067 L 2.39235,-42.3757 L 2.45195,-42.1377 L 2.48796,-41.895 L 2.5,-41.65 - L 2.48796,-41.405 L 2.45195,-41.1623 L 2.39235,-40.9243 L 2.30969,-40.6933 L 2.20479,-40.4715 L 2.07866,-40.2611 - L 1.93253,-40.064 L 1.76776,-39.8822 L 1.58597,-39.7175 L 1.38892,-39.5713 L 1.17848,-39.4452 L 0.956696,-39.3403 - L 0.725708,-39.2576 L 0.487717,-39.198 L 0.245041,-39.162 L 0,-39.15 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.2,-38.85 L -4.47444,-38.8635 L -4.74625,-38.9038 L -5.01279,-38.9706 L -5.2715,-39.0631 L -5.5199,-39.1806 + L -5.75558,-39.3219 L -5.97629,-39.4856 L -6.17989,-39.6701 L -6.36443,-39.8737 L -6.52811,-40.0944 L -6.66937,-40.3301 + L -6.78685,-40.5785 L -6.87943,-40.8372 L -6.9462,-41.1037 L -6.98651,-41.3755 L -7,-41.65 L -6.98651,-41.9244 + L -6.9462,-42.1962 L -6.87943,-42.4628 L -6.78685,-42.7215 L -6.66937,-42.9699 L -6.52811,-43.2056 L -6.36443,-43.4263 + L -6.17989,-43.6299 L -5.97629,-43.8144 L -5.75558,-43.9781 L -5.5199,-44.1194 L -5.2715,-44.2368 L -5.01279,-44.3294 + L -4.74625,-44.3962 L -4.47444,-44.4365 L -4.2,-44.45 L 4.2,-44.45 L 4.47444,-44.4365 L 4.74625,-44.3962 + L 5.01279,-44.3294 L 5.2715,-44.2368 L 5.5199,-44.1194 L 5.75558,-43.9781 L 5.97629,-43.8144 L 6.17989,-43.6299 + L 6.36443,-43.4263 L 6.52811,-43.2056 L 6.66937,-42.9699 L 6.78685,-42.7215 L 6.87943,-42.4628 L 6.9462,-42.1962 + L 6.98651,-41.9244 L 7,-41.65 L 6.98651,-41.3755 L 6.9462,-41.1037 L 6.87943,-40.8372 L 6.78685,-40.5785 + L 6.66937,-40.3301 L 6.52811,-40.0944 L 6.36443,-39.8737 L 6.17989,-39.6701 L 5.97629,-39.4856 L 5.75558,-39.3219 + L 5.5199,-39.1806 L 5.2715,-39.0631 L 5.01279,-38.9706 L 4.74625,-38.9038 L 4.47444,-38.8635 L 4.2,-38.85 + 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 @@ -38,16 +50,28 @@ M -15,33.5 L -15.196,33.4904 L -15.3902,33.4616 L -15.5806,33.4139 L -15.7654,33 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 -0.245041,44.138 L -0.487717,44.102 L -0.725708,44.0423 L -0.956696,43.9597 L -1.17848,43.8548 L -1.38892,43.7287 - L -1.58597,43.5825 L -1.76776,43.4178 L -1.93253,43.236 L -2.07866,43.0389 L -2.20479,42.8285 L -2.30969,42.6067 - L -2.39235,42.3757 L -2.45195,42.1377 L -2.48796,41.895 L -2.5,41.65 L -2.48796,41.405 L -2.45195,41.1623 - L -2.39235,40.9243 L -2.30969,40.6933 L -2.20479,40.4715 L -2.07866,40.2611 L -1.93253,40.064 L -1.76776,39.8822 - L -1.58597,39.7175 L -1.38892,39.5713 L -1.17848,39.4452 L -0.956696,39.3403 L -0.725708,39.2576 L -0.487717,39.198 - L -0.245041,39.162 L 0,39.15 L 0.245041,39.162 L 0.487717,39.198 L 0.725708,39.2576 L 0.956696,39.3403 - L 1.17848,39.4452 L 1.38892,39.5713 L 1.58597,39.7175 L 1.76776,39.8822 L 1.93253,40.064 L 2.07866,40.2611 - L 2.20479,40.4715 L 2.30969,40.6933 L 2.39235,40.9243 L 2.45195,41.1623 L 2.48796,41.405 L 2.5,41.65 - L 2.48796,41.895 L 2.45195,42.1377 L 2.39235,42.3757 L 2.30969,42.6067 L 2.20479,42.8285 L 2.07866,43.0389 - L 1.93253,43.236 L 1.76776,43.4178 L 1.58597,43.5825 L 1.38892,43.7287 L 1.17848,43.8548 L 0.956696,43.9597 - L 0.725708,44.0423 L 0.487717,44.102 L 0.245041,44.138 L 0,44.15 z +M -4.2,44.45 L -4.47444,44.4365 L -4.74625,44.3962 L -5.01279,44.3294 L -5.2715,44.2368 L -5.5199,44.1194 + L -5.75558,43.9781 L -5.97629,43.8144 L -6.17989,43.6299 L -6.36443,43.4263 L -6.52811,43.2056 L -6.66937,42.9699 + L -6.78685,42.7215 L -6.87943,42.4628 L -6.9462,42.1962 L -6.98651,41.9244 L -7,41.65 L -6.98651,41.3755 + L -6.9462,41.1037 L -6.87943,40.8372 L -6.78685,40.5785 L -6.66937,40.3301 L -6.52811,40.0944 L -6.36443,39.8737 + L -6.17989,39.6701 L -5.97629,39.4856 L -5.75558,39.3219 L -5.5199,39.1806 L -5.2715,39.0631 L -5.01279,38.9706 + L -4.74625,38.9038 L -4.47444,38.8635 L -4.2,38.85 L 4.2,38.85 L 4.47444,38.8635 L 4.74625,38.9038 + L 5.01279,38.9706 L 5.2715,39.0631 L 5.5199,39.1806 L 5.75558,39.3219 L 5.97629,39.4856 L 6.17989,39.6701 + L 6.36443,39.8737 L 6.52811,40.0944 L 6.66937,40.3301 L 6.78685,40.5785 L 6.87943,40.8372 L 6.9462,41.1037 + L 6.98651,41.3755 L 7,41.65 L 6.98651,41.9244 L 6.9462,42.1962 L 6.87943,42.4628 L 6.78685,42.7215 + L 6.66937,42.9699 L 6.52811,43.2056 L 6.36443,43.4263 L 6.17989,43.6299 L 5.97629,43.8144 L 5.75558,43.9781 + L 5.5199,44.1194 L 5.2715,44.2368 L 5.01279,44.3294 L 4.74625,44.3962 L 4.47444,44.4365 L 4.2,44.45 + 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"/> diff --git a/light-switches/gfci-paddle-switch-extended.scad b/light-switches/gfci-paddle-switch-extended.scad index 1b8e91e..4bb7ae8 100644 --- a/light-switches/gfci-paddle-switch-extended.scad +++ b/light-switches/gfci-paddle-switch-extended.scad @@ -29,8 +29,14 @@ opening_corner_radius = 2.0; // mm /* [Screw Holes] */ screw_holes_enabled = true; -screw_hole_diameter = 4.0; // mm -screw_hole_spacing = 83.3; // mm - distance between screw holes (unchanged) +screw_hole_height = 5.6; // 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; @@ -88,13 +94,25 @@ module paddle_opening_3d() { module screw_holes() { if (screw_holes_enabled) { - // Top screw hole + // Top main screw hole (pill-shaped, horizontal) translate([0, screw_hole_spacing/2, -0.1]) - cylinder(h = plate_thickness + 0.2, d = screw_hole_diameter); + linear_extrude(height = plate_thickness + 0.2) + rect([screw_hole_width, screw_hole_height], rounding=screw_hole_height/2); - // Bottom screw hole + // Bottom main screw hole (pill-shaped, horizontal) translate([0, -screw_hole_spacing/2, -0.1]) - cylinder(h = plate_thickness + 0.2, d = screw_hole_diameter); + 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); } }