Add countersinks and recessed screw holes to extended GFCI plates
- Add 5mm diameter, 2mm deep countersinks around outer screw holes (front face) - Make main pill-shaped screw holes recessed from back (3.5mm deep) - Leaves 1.5mm solid wall on front face for clean appearance - Add STL exports for all light switch plate variants 🤖 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
38a723b01b
commit
de88c8b794
BIN
light-switches/blank.stl
Normal file
BIN
light-switches/blank.stl
Normal file
Binary file not shown.
@ -35,12 +35,18 @@ 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
|
||||
main_screw_recess_depth = 3.5; // mm - depth from back face (Z=5), leaves solid wall on front
|
||||
|
||||
// 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)
|
||||
|
||||
// Countersink around outer screw holes (front face)
|
||||
countersink_enabled = true;
|
||||
countersink_diameter = 5.0; // mm - total diameter of recess
|
||||
countersink_depth = 2.0; // mm - depth of recess into front face
|
||||
|
||||
/* [Resolution] */
|
||||
$fn = 64;
|
||||
|
||||
@ -100,25 +106,42 @@ module paddle_opening_3d() {
|
||||
|
||||
module screw_holes() {
|
||||
if (screw_holes_enabled) {
|
||||
// Main screw holes: recessed from back face (positive Z), solid wall on front
|
||||
main_screw_start_z = plate_thickness - main_screw_recess_depth;
|
||||
|
||||
// Top main screw hole (pill-shaped, horizontal)
|
||||
translate([0, screw_hole_spacing/2, -0.1])
|
||||
linear_extrude(height = plate_thickness + 0.2)
|
||||
translate([0, screw_hole_spacing/2, main_screw_start_z])
|
||||
linear_extrude(height = main_screw_recess_depth + 0.1)
|
||||
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)
|
||||
translate([0, -screw_hole_spacing/2, main_screw_start_z])
|
||||
linear_extrude(height = main_screw_recess_depth + 0.1)
|
||||
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])
|
||||
translate([0, screw_hole_spacing/2 + outer_screw_hole_offset, 0]) {
|
||||
// Through-hole
|
||||
translate([0, 0, -0.1])
|
||||
cylinder(h = plate_thickness + 0.2, d = outer_screw_hole_diameter);
|
||||
// Countersink on front face
|
||||
if (countersink_enabled)
|
||||
translate([0, 0, -0.1])
|
||||
cylinder(h = countersink_depth + 0.1, d = countersink_diameter);
|
||||
}
|
||||
|
||||
// Bottom outer screw hole (below bottom main hole)
|
||||
translate([0, -screw_hole_spacing/2 - outer_screw_hole_offset, -0.1])
|
||||
translate([0, -screw_hole_spacing/2 - outer_screw_hole_offset, 0]) {
|
||||
// Through-hole
|
||||
translate([0, 0, -0.1])
|
||||
cylinder(h = plate_thickness + 0.2, d = outer_screw_hole_diameter);
|
||||
// Countersink on front face
|
||||
if (countersink_enabled)
|
||||
translate([0, 0, -0.1])
|
||||
cylinder(h = countersink_depth + 0.1, d = countersink_diameter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -32,11 +32,17 @@ 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
|
||||
main_screw_recess_depth = 3.5; // mm - depth from back face (Z=5), leaves solid wall on front
|
||||
|
||||
// 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)
|
||||
outer_screw_hole_diameter = 3.175; // mm (67% of main hole diameter)
|
||||
|
||||
// Countersink around outer screw holes (front face)
|
||||
countersink_enabled = true;
|
||||
countersink_diameter = 5.0; // mm - total diameter of recess
|
||||
countersink_depth = 2.0; // mm - depth of recess into front face
|
||||
|
||||
/* [Resolution] */
|
||||
$fn = 64;
|
||||
@ -94,25 +100,42 @@ module paddle_opening_3d() {
|
||||
|
||||
module screw_holes() {
|
||||
if (screw_holes_enabled) {
|
||||
// Main screw holes: recessed from back face (positive Z), solid wall on front
|
||||
main_screw_start_z = plate_thickness - main_screw_recess_depth;
|
||||
|
||||
// Top main screw hole (pill-shaped, horizontal)
|
||||
translate([0, screw_hole_spacing/2, -0.1])
|
||||
linear_extrude(height = plate_thickness + 0.2)
|
||||
translate([0, screw_hole_spacing/2, main_screw_start_z])
|
||||
linear_extrude(height = main_screw_recess_depth + 0.1)
|
||||
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)
|
||||
translate([0, -screw_hole_spacing/2, main_screw_start_z])
|
||||
linear_extrude(height = main_screw_recess_depth + 0.1)
|
||||
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])
|
||||
translate([0, screw_hole_spacing/2 + outer_screw_hole_offset, 0]) {
|
||||
// Through-hole
|
||||
translate([0, 0, -0.1])
|
||||
cylinder(h = plate_thickness + 0.2, d = outer_screw_hole_diameter);
|
||||
// Countersink on front face
|
||||
if (countersink_enabled)
|
||||
translate([0, 0, -0.1])
|
||||
cylinder(h = countersink_depth + 0.1, d = countersink_diameter);
|
||||
}
|
||||
|
||||
// Bottom outer screw hole (below bottom main hole)
|
||||
translate([0, -screw_hole_spacing/2 - outer_screw_hole_offset, -0.1])
|
||||
translate([0, -screw_hole_spacing/2 - outer_screw_hole_offset, 0]) {
|
||||
// Through-hole
|
||||
translate([0, 0, -0.1])
|
||||
cylinder(h = plate_thickness + 0.2, d = outer_screw_hole_diameter);
|
||||
// Countersink on front face
|
||||
if (countersink_enabled)
|
||||
translate([0, 0, -0.1])
|
||||
cylinder(h = countersink_depth + 0.1, d = countersink_diameter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BIN
light-switches/gfci-paddle-switch-extended.stl
Normal file
BIN
light-switches/gfci-paddle-switch-extended.stl
Normal file
Binary file not shown.
BIN
light-switches/gfci-paddle-switch.stl
Normal file
BIN
light-switches/gfci-paddle-switch.stl
Normal file
Binary file not shown.
BIN
light-switches/outlet.stl
Normal file
BIN
light-switches/outlet.stl
Normal file
Binary file not shown.
BIN
light-switches/switch-switch.stl
Normal file
BIN
light-switches/switch-switch.stl
Normal file
Binary file not shown.
BIN
light-switches/switch.stl
Normal file
BIN
light-switches/switch.stl
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user