Following a move, I used the fresh start with my lab to improve the lighting situation around the workspace. I ended up with 3 different light sources:
- Traditional gooseneck lamps, aimed at the ceiling and walls for diffuse room lighting
- Warm white LED strips mounted underneath bench shelf, to help reduce eyestrain
- Cold white dimmable LED bulbs (fluorescent soffit retrofit) mounted underneath bench shelf, to provide task lighting
I wanted to control all of these lights in one place, and the most straightforward way to accomplish that was by switching mains power to each of them. I obtained some duplex outlets, a duplex switch, and a rocker/dimmer combo and mounted them in a 4-gang box. I stuck this under the workbench's shelf, hidden but easily within reach.
To finish the project I needed a cover for this gang box, but it turned out that they don't make wall plates for boxes with 3 duplex outlets and one rocker switch.
While anything is probably better than leaving an electric gang box wide open for curious fingers or silverware to find their way into, a 3D-printed wall plate is not necessarily fire safe or compliant with building code. In fact, some common printing materials like PLA are highly flammable and can serve as a fuel source for electrical fires.
Ensure you're making an informed decision before using 3D printed parts in place of metal or UL-Listed plastic wall plates.
It was obvious that this was a good application of 3D printing. The modularity required for this project also lent itself well to scripting, and this motivated me to finally learn how to use OpenSCAD effectively.
The bulk of the functionality of this SCAD model come from the predefined device types, which dictate the cutouts in the plate, and plate sizes.
Defined Devices and Sizes
DEVICE_BLANK: Blanking plate
DEVICE_SWITCH: Standard toggle flip switch
DEVICE_ROCKER: Rocker switch, GFCI outlet, block outlet, etc.
DEVICE_OUTLET: Standard duplex outlet, horizontal toggle switch, etc.
DEVICE_ROUND_14: Single round receptacle, 1.4" dia.
DEVICE_ROUND_16: Single round receptacle, 1.63" dia.
DEVICE_DATA: RJ45 or U.S. phone jack
DEVICE_COAX_375: Round cutout, 0.375" dia.
DEVICE_COAX_625: Round cutout, 0.625" dia.
DEVICE_COAX_78: Round cutout, 0.78" dia.
DEVICE_LOUVER: Vent cutout
DEVICE_LOUVER_INT: Vent cutout, with internal blade
SIZE_NARROW: Standard plate, single gang 2.5" x 4.5"
SIZE_STANDARD: Standard plate, single gang 2.75" x 4.5"
SIZE_MIDSIZE: Midsize plate, single gang 3.25" x 4.5"
SIZE_OVERSIZE: Oversize plate, single gang 3.5" x 5.06"
SIZE_JUMBO: Jumbo size plate, single gang 4.5" x 6.38"
SIZE_ULTRA: Ultra size plate, single gang 5.5" x 7.5"
Custom plate padding values can be specified as an array
A wall plate is defined using 3 user-adjustable parameters in the model:
configuration: An order-sensitive array of
DEVICE_items, each member corresponding to one gang of the wall plate.
For my lab bench gang box, the following was used:
configuration = [ DEVICE_OUTLET, DEVICE_OUTLET, DEVICE_OUTLET, DEVICE_ROCKER, ];
size: An array containing length and height padding parameters that are used to determine the overall dimensions of the wall plate. The
SIZE_constants listed above can be used, or an array can be provided directly in the format of
size = SIZE_STANDARD;
plate_t: The desired plate thickness, in mm.
plate_t = 2.0;
After the constants and adjustable parameters, the remainder of the SCAD code boils down to:
Using the length of the
configurationarray (the total number of devices), the user-defined padding values, and the base dimensions of a single gang, create a blank wall plate large enough for all of the specified devices.
Iterate through the
configurationarray while incrementing an X-position counter, starting with the leftmost device. For each device in the array, call a module for that device type, which creates the cutouts and screw holes at the current X-position.
Hollow out the back of the plate and create the angled edges on the front
Thanks to some helpful websites and manufacturers that publish common wall plate dimensions 1 2 3 4 or even full mechanical drawings 5 6, next to no dimensional tweaking was required to match existing wall plates.
I started with a standard duplex outlet plate, as a test.
Not that the goal was to replace existing wall plates in the house, but for the sake of comparison I swapped one out in my kitchen. At a distance, the printed plate doesn't look out of place.
This test and the plates that followed were printed with the front down on the printer's textured steel bed sheet, which resulted in a subtle texture applied to the front of the plates, but a little bit of deformation on the overhangs. This is nothing that can't be fixed with a better-tuned printer, so I called the result good enough for my purposes.
With that a success, I moved onto the specialty plates.
Custom Device Layout
Screws specifically for wall plates can be purchased in packs from hardware stores (probably found near the wall plates themselves). They use a #6-32 thread with a flat blade drive, have a 100° countersink, and are usually painted. I picked up a 20 pack of Leviton #88000 screws for about $3.
|Type||Filename + Description||Date||Size||SHA256|
OpenSCAD 3D Model
Parametric Wall Plate SCAD file
|Type||Name + Description|
wall-plate Git Repository
For now, I'm only covering common American wall plate types. If I were to support common switch/outlet/device types common in other counties, I'd most likely split the device modules into separate files, possibly with a common script to include them.
I've intentionally omitted several switch types from the model, including Despard, data jack variants, push button, and other narrow size variants. These may be added in the future upon request or as the need arises.
"Are oversized switch plate openings larger or standard?". Kyle Switch Plates. Retrieved 19 June 2021. ↩
"Switch Plate Screw Size & Spacing Length Options". Kyle Switch Plates. Retrieved 19 June 2021. ↩
"Odd Sized Light Switch Plates & Outlet Cover Solutions ". Kyle Switch Plates. 25 May 2018. Retrieved 19 June 2021. ↩
"1-Gang Decora/GFCI Device Decora Wallplate, Standard Size, Aluminum, Device Mount, - Aluminum". Leviton. Retrieved 19 June 2021. ↩
"1-Gang Non-Magnetic Stainless Steel Duplex Receptacle Wallplate, Midway Size C-Series". Leviton. Retrieved 19 June 2021. ↩