Cutting gears with a shaper: tool geometry and math

greenail

Registered
Registered
Joined
Aug 31, 2018
Messages
197
I'm not exactly sure why but I've had a bit of a fascination with shapers and gears. I've cut them on a cnc and I've printed them on 3d printers but there is something quite alluring about cutting perfect gears. Buying a set of gear cutters seems like cheating. Until recently the closest I've been to making a perfect gear was watching youtube videos. The theme in them appears to be that no one seems to know how to cut the tool's tip and what the proper depth is (related to the tip width).

Yesterday morning I rewatched someone making gears on a shaper and I got interested again so I poked around with openSCAD to try to simulate the process of shaping gears but I didn't have any luck and I don't think I really understand how it works. Then I looked around for alternatives and found CadQuery which was similarly difficult to learn but I managed to get something working. CadQuery is a python library and it has a GUI viewer called CQ-editor. You can run my script in it and mess with the results.


Here's a sample:
1627740544044.png



I'm wondering if I just keep it as a gist or if it requires it's own repository and any changes/features.

The source is here: https://gist.github.com/jschoch/39b7f7299f9205ce0cada857d0ec7861

Here's an example of using tooltip that is too small.

1627740818550.png


Since there doesn't seem to be a way to measure the model directly you can import it into fusion 360 and measure it there. You can also generate a standard gear and compare the models.

Here is an example: the purple is the simulated gear, the grey is the fusion generated gear. The program has a steps variable that you can set to reduce the sharp corners, this was run with a small number of steps. The steps would be single passes of the tool before the table ratchets over.

1627740946051.png



Hope this helps someone. I don't have a shaper but I could use one of my cnc lathe or mills to make small shaper cuts.
 
I had been thinking about cutting gears without using hobbing cutters. A gear of infinite radius is simply a rack with flank angles equal to the pressure angle and that rack has to be able to mesh with any gear with the same diametral pitch and pressure angle. My thought was to use a cutter shaped like a rack tooth and do the equivalent of rolling it around the perimeter of the gear. For a CNC mill, this would be done with a 4th axis rotating the gear slightly after each successive cutter pass to cut the tooth profile.

The cutter would have to have some additional surface to provide the necessary clearances bu in theory, it should work. On benefit of this tmethod of cutting a gear is that a single cutter would cut all gears with that diametral pitch and pressure angle. If oine weren't particular about overcutting the root of the tooth, several diametral pitches could be cut with the same cutter.
 
I had been thinking about cutting gears without using hobbing cutters. A gear of infinite radius is simply a rack with flank angles equal to the pressure angle and that rack has to be able to mesh with any gear with the same diametral pitch and pressure angle. My thought was to use a cutter shaped like a rack tooth and do the equivalent of rolling it around the perimeter of the gear. For a CNC mill, this would be done with a 4th axis rotating the gear slightly after each successive cutter pass to cut the tooth profile.

The cutter would have to have some additional surface to provide the necessary clearances bu in theory, it should work. On benefit of this tmethod of cutting a gear is that a single cutter would cut all gears with that diametral pitch and pressure angle. If oine weren't particular about overcutting the root of the tooth, several diametral pitches could be cut with the same cutter.

This exactly how the program works.

this bit creates the tool


tool_tip_width=.2
pressure_angle = 20

gear_tool = (
cq.Workplane("front")
.transformed(offset=(10.,old_y_pos, 0.0), rotate=(0, 0, 0))
.vLine(tool_tip_width/2)
.polarLineTo(5,pressure_angle)
.hLineTo(8)
.vLineTo(0.0)
.mirrorX()
.extrude(3)


It draws half a tool shape then mirrors it and then extrudes it. Here's what the tool looks like

1627744780309.png


As the tool moves in X the gear blank rotates. The code/math is:


#this determines how fine the tooth is, keep small to keep fast
steps =30

pitch_diameter = 24
# This ensures the whole tooth is cut and should be adjusted for larger modules
travel_distance_x = 15
old_y_pos = -(travel_distance_x / 2)

#initial position
y_pos = old_y_pos
#distance traveled per step
step_linear = travel_distance_x / steps
tooth_count = 12

This does all the magic
step_degree = (360)/ ((pitch_diameter * math.pi )/step_linear)


So it turns proportional to the pitch diameter. In this case the step in X is 0.5mm and each step the blank rotates 2.3873241463784303 degrees
 
I can't offer any legitimate answers but I did cut a couple of gears on a shaper by clamping up a gear cutter (milling machine) and taking slow bites. It wasn't a satisfactory way to do it, but the idea worked. Just took several days to make a gear. Not something I would want to repeat, I just proved to myself that I could do it.

.
 
Back
Top