Customisable Paintbrush Holder using OpenSCAD

I really like the gear designs designed by Emmett on Thingiverse. When printing the amazing Gear Bearing I had to adjust the tolerances and so got some idea of how OpenSCAD works.

The video is before the bearing was fully worn in – it spins much more freely now

When I first learned 3D CAD in ProEngineer everything started with a sketch that you drew and then extruded into a 3D object. Using this approach there is not much opportunity to customise the design once it is complete. You can make changes to the sketch and they will be reflected in the extrusion but there wasn’t a way (as far as I know) of setting parameters that could be used to customise the whole design.

OpenSCAD is different from ProEngineer in that it feels more like writing code than drawing a sketch. Shapes are defined by commands like this:




cube(size=60, center = true);


The example code above creates a hemisphere by subtracting a cube from a sphere. Once you are done you compile the code, render the resulting object and create a .stl file that you can print.

The half sphere generated by the example OpenSCAD code
The half sphere generated by the example OpenSCAD code

By using variables rather than hardcoding values you can make customisable designs with OpenSCAD. Using this approach lets you create designs you can tweak afterwards.

My first attempt to create something with OpenSCAD was a tool for my wife. Usually when I present some new 3D printed object to her like the Gear Bearing above she quite reasonably asks, “Very nice, but what is it for?” (by this response you can instantly tell she is not an engineer.) She happened to be looking for something to stop her brushes rolling off the table while oil painting. A 3D printed paintbrush holder seemed like a good way of simultaneously playing with OpenSCAD and proving that 3D printing can occasionally be useful as well as interesting.

Here is the resulting paintbrush holder in OpenSCAD and in white PLA

The customisation comes in if you wanted to make a version of this with different dimensions or for a different number of paintbrushes. The number of brushes it can hold is a parameter in the OpenSCAD code so if you wanted to make a thinner paintbrush holder that could take 10 paintbrushes then it’s just a matter of changing that number

OpenSCAD rendering of the same file with different thickness setting and with 10 paintbrushes
OpenSCAD rendering of the same file with different thickness setting and with 10 paintbrushes

You can download the file here if you want to play with it in OpenSCAD. It isn’t very well commented and I have forgotten what some of it does, please don’t judge me too harshly: PaintBrushHolderV7

If you don’t have OpenSCAD then Thingiverse has a cool feature where you can upload the .scad file and then people can customise it using a web interface. You can play with the customiser for the paintbrush holder here.



One thought on “Customisable Paintbrush Holder using OpenSCAD

Leave a Reply

Your email address will not be published. Required fields are marked *