Testing 3D Printing of Gears

Kythera is a product sold by Glenview Software for $10 which allows you to string together complex mechanisms using spur gears. It helps you design complex mechanisms quickly on your computer and export .STL files for printing on a 3D printer.

And today we’ll use it to build a test mechanism, in order to test how well we can manipulate the gears to create a simple example mechanism; in this case, a gear train which translates the motion of a minute hand to an hour hand.

Such motion works are used in clock making and watch making. And we can very quickly build the chain of gears, to see the whole thing in action.

First, fire up Kythera. Since we’re just creating a naked motion work, we can create a new document and delete the gear that is automatically created for us. Switch to the layer menu and add a new layer, since our gear system will require two layers of gears.

Next under the “Gears” menu, select “Create Motion Work”. Create a new motion work with a 12 to 1 ratio, and for our system, we’ll select the first proposed option labeled 8:32 10:30. This will create a simple four-gear system:

Kythera Motion Work

Switch to the Document tab and verify a few settings: our axle radius should be 1.1mm; this will fit a 2mm pin. The screw radius should be set at 2.1mm; this will fit an M4 screw. Let’s bump up the “shrinkage” value to 0.625mm; this will reduce our gears by 0.625mm radius per gear, so the gears “rattles.” Remember, if it rattles, it runs; objects printed on a 3D printer are slightly larger.

(Note that I’m doing this on a FormLabs Form 2 printer; you may need to fiddle with these settings depending on the technology you’re using to print your mechanism, including fiddling with the size settings for your gears.)

Now we want to export our gear train; call it “MotionWork.gbom”. This will also design a basic frame for us.

Open the layout.scad file with OpenSCAD that is generated in the MotionWork.gbom directory. In order to make our mechanism work we’ll need to make a few adjustments.

First, we’ll want to add cylinders to our first and fourth gear; this allows us to create axles on which we could in theory attach arms. We also want to join the second and third gear so they are printed as a single gear. We need to modify the top plate so our cylinders attached to our first and fourth gears pass through the top.

In OpenSCAD the results of all this editing looks like:


Now we need to generate the STL files for our mechanism. As we’re printing everything as separate components, we need to selectively comment out all of the pieces, only leaving uncommented the top plate, bottom plate, support cylinders, the first gear, the second and third gear fused together, and the fourth gear.

We then print each of the parts out, and assemble using 2 25mm x 2mm pins, and four 30mm long M4 screws and M4 nuts.

This is another test print, but one of the nice elements of Kythera’s “shrinkage” feature is that we know the gears should mesh and freely spin in a 3D printed mechanism without a lot of fussing around.

Of course the actual values you want to use for your gear size and shrinkage will depend on the printing technology. But the results (printed so that spurs are not inserted between the gear teeth, which in the FormLab’s PreForm application requires a lot of fiddling with the spur locations) does spin freely, and would make a good starting point for a gear train for an hour hand and minute hand on a clock.

All the files used in this model, including generated .stl files and OpenSCAD files, can be downloaded here: MotionWork.zip

Published by

William Woody

I'm a software developer who has been writing code for over 30 years in everything from mobile to embedded to client/server. Now I tinker with stuff and occasionally help out someone with their startup.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s