Designing with parameters

OpenSCAD is a program that generates 3D models with code rather than traditional 3D modeling methods. I’ve heard people talk about it’s virtues since I picked up my Makerbot but it always seemed like far too much work for something that I could crank out in SketchUp in 20 minutes. The main selling point of OpenSCAD is the fact that you can create parametrically designed models. That is to say, you can change parameters in your code and a new 3D model will pop out of OpenScad, no redesigning required. While I could understand the benefits of this method of design I never found a use for it and never got around to learning it.

Recently Makerbot’s Thingiverse launched their Customizer application. This web app lets you make changes to these OpenSCAD parameters as easily as picking a value from a drop-down box. Essentially giving anyone capable of using a web form the ability to design a model to fit their needs. This is around the time I thought that I had better get around to learning to use OpenScad.

So here it is, my first model designed in OpenSCAD. I found something that would really benefit from being a parametrically designed model: Wall Plates. I’ve created a OpenSCAD model that allows you to pick from a list of 18 types of connector/outlet style which then generates a 3D model correctly oriented and modeled to be immediately 3D printed.

I took measurements available online and from manufacturers to get the openings as close to standard as possible. In theory you could hop on Thingiverse, create a model, print it, and have a totally customized wall plate in under and hour.

So what options did I include in this file? Well I’ve allowed the user to pick any width from 1 to 5 “plates” wide. These were measured off the standard electrical box sizes and should match screw holes in your existing boxes. The list of available plug and outlet styles is listed below:

1. Blank Port
2. Toggle Switch (Takes up entire plate)
3. Duplex Outlet (Takes up entire plate)
4. Rocker/Designer Plate (Takes up entire plate)
5. Keystone Jack
6. VGA Port
7. HDMI Port
8. DVI-I Port
9. Displayport
10. Cat5e/Cat6 Port
11. USB-A Port
12. USB-B Port
13. Firewire IEEE 1394 Port
14. DB-09 Port
15. PS2 Port
16. F-Type/Coaxial Port
17. S-Video Port
18. Stereo Headphone Jack

With the exception of #2-4 all of the plug types are modular and be placed on the top, bottom, or centered on a generated wall plate. All of the ports (excluding the outlets and keystone jacks) are designed to accommodate’s panel-mount cables. While I hold no particular alliance to the site they did provide very useful diagrams for their cables. Additionally I based the keystone jack off of “Mounting plate for keystone jack” designed by Joe Sadusk. I imagine tweaks may need to be made to make all of these connectors fit perfectly but I think my original set of designs should be pretty close to the real thing.

I asked a Mathlete friend of mine if he could calculate the possible number of plug and plate combinations and well, the number is big, real big. He estimates that you can generate a total of 850,789,801,599 possible permutations. Making this possibly one the most customizable object currently on Thingiverse. If you’d like to check his math here’s some nerdy details.

Customized wall plates are nothing new, but ordering them online takes time and can be costly depending on your required configuration.


You can checkout my plate generator on Makerbot’s Thingiverse here. Just click “Open in Customizer” to start making your own customized wall plate!