So who knows if this is actually the easiest way to generate gears, but it’s the best way I’ve found to do it so far. If you’d like to try these techniques, check out my tutorial on generating Gcode with Inkscape first as we’ll be using it for this exercise. Also, you’ll need a CNC router, which is actually a big detail.
Randomly looking at a CNC links page, I found this gear template generator. I think it’s meant for printing out and using as a template for jigsaw work, but I don’t have one of those. This template, as seen below, has a scale on it. It’s a bit of a pain, but one would do a printscreen with the web page when you’ve got the gear that you wanted. Use Paint or GIMP or whatever you like to crop out some of the unused stuff, but make sure you keep the scale (the thing that says 210mm) and the gear itself. Save this file. Yes, there is a less cumbersome way to do this, keep reading.
Open Inkscape and import your gear file. Using the 210 mm scale on the drawing, match it up with the grid on the Inkscape file (it must be in Millimeters or Centimeters). Make sure the “scale lock” button is on so you don’t skew anything. Once you have the scale of the gear correct, the gear needs to be enlarged by the diameter of your tool to compensate for your toolpath (1/2 the diameter per side). If you choose to do this with the “object select” tool you’ll end up enlarging the middle hole, so keep that in mind when doing this. Depending on your Inkscape skill, it might be best to draw a small circle and drill it later to the diameter you want.
To generate Gcode from this drawing, use the Path –> Trace Bitmap command. This will generate a line tracing everything on this bitmap. Select the nodes that aren’t used and delete them leaving only the gear to cut out. The inside and the outside of the line tracing the gear will be left. The thickness of this line can be edited depending on the diameter of your cutter and how you want to offset it. Use Path –> Break Apart with all of the nodes selected to break it into an inner path and outer path. Move or delete the inner path.
From here, use the Gcodetools extension to generate code for your router. In the video, I was able to take about .020″ off per cut at a maximum rate of 600 Inches per minute. Maybe it could have done a deeper cut per pass, but I’m still experimenting.
If you feel like paying for it, the tools on this site are available as an actual program you can download. It’s $27 as of this writing, but it may save you some time and has some more advanced features (you can get a trial version for free, but it’s limited to useless wavy gears). One really useful feature is that it allows export in several formats, including .dxf for those using a CAD package. For Inkscape, it appears that the .PDF export is very good as the scale is already taken care of. Just export it and import into Inkscape. Trace the “bitmap” and you’re good to go. Also, you can modify the center shaft diameter (on the “spokes and more” page), which should be very useful. Like the free version, cut path still has to be compensated for.
So that’s it for this post. It’s another “machine element” that I can build with my ZTW 12 x 7 router. I have actually done some useful stuff so far, like this bleach T-shirt template or this engraved HDD clock.
Update 12/18/2011: Apparently cnc-club.ru has been busy at work as they now have a “gears” tool for their Inkscape extension. I haven’t tried it, but it might be worth updating things to try out this feature. If they’ve updated this, certainly there have been some bug fixes etcetera.
Update 4/10/2013: After using Ubuntu for well over a year, I tried using the downloadable (pay) version of this gear template generator under WINE. It does work with the WINE update described here. One annoyance is that whenever you change a parameter, it says that it can’t update all display parameters. Most values seem OK, but I’m not sure the shaft diameter updated properly when I tried to modify it. Also, maximizing, minimizing, or other resizing seems to crash the program.
So yes, you can run it under Linux, but it definitely works better under Windows. I guess if that’s too annoying, you can just use it on the web and scale appropriately.