Parametric Wall Plate

A 3D-printable, customizable wall plate for switches and outlets, designed using OpenSCAD. Last modified 2023-10-20.

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:

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.

Gang box installed in lab bench, without cover

I shouldn't have to say this, yet here we are

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

Sample of defined devices

Sample of predefined wall plate sizes

Custom plate padding values can be specified as an array


A wall plate is defined using 3 user-adjustable parameters in the model:


After the constants and adjustable parameters, the remainder of the SCAD code boils down to:

  1. Using the length of the configuration array (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.

  2. Iterate through the configuration array 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.

  3. 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.

Model of duplex outlet plate, diagonal Printed duplex outlet plate, diagonal Printed duplex outlet plate, top

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.

Wall plate, kitchen, original; Wall plate, kitchen, printed;

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

Model of wall plate for lab bench, diagonal Printed switch plate for lab bench, diagonal Printed wall plate for lab bench, top

Installed wall plate for lab bench Installed wall plate for lab bench, lights plugged in


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.

Photo of pack of wall plate screws


TypeFilename + DescriptionDateSizeSHA256
OpenSCAD 3D Model iconOpenSCAD 3D Model
Parametric Wall Plate SCAD file
2021-12-2312.4 KiB


TypeName + Description
Gitlab Project iconGitlab Project
wall-plate Git Repository

Closing Notes

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.

  1. "Switch Plate Size & Reference Information" Kyle Switch Plates. Retrieved 19 June 2021. 

  2. "Are oversized switch plate openings larger or standard?". Kyle Switch Plates. Retrieved 19 June 2021. 

  3. "Switch Plate Screw Size & Spacing Length Options". Kyle Switch Plates. Retrieved 19 June 2021. 

  4. "Odd Sized Light Switch Plates & Outlet Cover Solutions ". Kyle Switch Plates. 25 May 2018. Retrieved 19 June 2021. 

  5. "1-Gang Decora/GFCI Device Decora Wallplate, Standard Size, Aluminum, Device Mount, - Aluminum". Leviton. Retrieved 19 June 2021. 

  6. "1-Gang Non-Magnetic Stainless Steel Duplex Receptacle Wallplate, Midway Size C-Series". Leviton. Retrieved 19 June 2021.