This time we will review a few key concepts which are needed to understand involute gears, and then have a look at a few things we can learn, using our simulator. The code and a 32 bit Windows compiled binary are available at my GitHub page. You will need an OpenGL compatible graphics card with drivers to run this application. Compiling the code on Linux is straightforward, it should also be possible on OSX but I haven't tried that yet.
As I described previously, an involute curve is obtained by unwinding an imaginary string from a circle (well for gears it's a circle). To proceed we need to define the terminology for the parameters that specify a given gear. There is quite a bit of redundancy in the terminology used to specify gears. Lets start with the size of the teeth, this may be specified in terms of the pitch, the diametrical pitch or the module, and each of these three parameters are related to each other by simple equations because they all obtain the same information. A given gear will have N teeth, and the pitch is the distance between neighbouring teeth for a gear with very large N. The diameter of the gear is proportional to the number of teeth and the module is the diameter per tooth while the diametrical pitch is the inverse of the module; diametrical pitch = 1 / module. Now as we are working on a simulation, we don't care about the absolute size of a gear, so long as we draw everything in proper proportion and thus we don't care about the module or the diametrical pitch or the pitch and so we will just work with module = 1, but we do care about the number of teeth N.
Now to proceed imagine we have two wheels, one driving the other using friction, and for the sake of this argument there can be no slip. Each diameter of these two wheels coincides with what is called the pitch diameter in a gear. The involute diameter used to generate the gear teeth is smaller than the pitch diameter. This is illustrated in the diagram, where the involute generating circles are also depicted and if we imagine the smaller gear A is winding the string onto its involute circle which is being unwound from the involute circle of gear B we see the essence of how the involute gear scheme works. Another important parameter is the pressure angle, as shown in the diagram. The pressure angle determines the ratio between the involute diameter and the pitch diameter, which depends upon the pressure angle but not the number of teeth.
Click to enlarge |
We are now in a position to appreciate the magic of involute gears: that being why they don't depend upon the distance between them to maintain constant velocity. Constant velocity refers to the driven gear always rotating at the same speed relative to the driving gear as the teeth move in and out of mesh, as opposed to the driven gear rapidly speeding up and slowing down. The shapes of the involute teeth are solely determined from their involute generating circles and note that if we move the gears further apart these circles don't change. What does change is the pressure angle, because the angle of the string connecting the two circles obviously changes (refer to diagram). But it is clear that the rotation of the two gears determined by the string unwinding from one involute circle and onto the other doesn't change upon altering the distance between the gears. But it is this string that traces out the involute teeth and obviously it also maintains the constant velocity ratio when the separation between the gears is changed, that is how the magic works.
There is one more thing we need to cover here, and it is rather easy. A gear's outside diameter needs to be bigger than its pitch diameter for the teeth of mating gears to engage with each other. The convention with involute gears is to make this outside diameter for a gear equal to the pitch diameter of a gear which has two more teeth. That is a value of twice the module is added to the pitch diameter to obtain the outside diameter. The teeth need some clearance down the bottom, so rather than cutting them to a depth of twice the module a value of 2.157 is used. Side clearance is also needed for the teeth and the standard here is to make the tooth width 0.48 of the pitch leaving 0.52 for the gap between teeth.
So the teeth are always the same depth for a given pitch regardless of N, but the difference between the outside diameter and the involute diameter gets smaller as N is reduced. When N is too small the teeth will penetrate the involute circle. The convention to deal with this is to continue the tooth below the involute circle by using a straight radial line for the rest of the profile. Whether a real gear has this feature or not will depend on how it is manufactured. If it is made using a form cutter it will likely have the feature, but mass produced gears are more often made by a generating method such as hobbing, and then they won't. Regardless: the section of the gear tooth below the involute circle is completely useless, it can't be used for transmission of torque and is only there to provide clearance. But when is there enough clearance and when isn't there? This will depend upon what gear meshes with what and we will learn more about this soon enough.
The standard pressure angle for involute gears used to be 14.5 degrees. Despite being deprecated many decades back these gears are still around (imperial gears, not metric). These days the standard pressure angles are 20 and 25 degrees with the former being far more common. But why where things changed and what are the pros and cons? When the pressure angle is increased the degree to which the teeth slide against each other becomes more pronounced resulting in more friction, but the problems with teeth penetrating inside the involute circle are reduced. With this in mind let us look at a small gear of pressure angle 14.5 degrees running with a larger gear and see what happens
![]() |
Fig. 1. (Click to enlarge) A 16 tooth gear engaged with a 80 tooth gear at the correct depth. The gears have a pressure angle of 14.5 degrees |
![]() |
Fig. 3 (Click to enlarge) same as above except the pinion has been reduced to
8 teeth.
|
This overlap problem gets worse if we make the pinion smaller which we can see in Fig. 3 where the pinion has only 8 teeth. Obviously it gets less if we increase the pinion size and by the time we get to 20 teeth there is very little overlap left.
![]() | |
Fig. 4 (Click to enlarge) same as Fig. 3 except the pressure angle has been increased from 14.5 to 25 degrees |
A way to deal with the overlap problem is to increase the pressure angle. Fig. 4 is the same as Fig. 3 with the pressure angle increased to 25 degrees. The resulting overlap is drastically reduced.
![]() |
Fig. 5. (Click to enlarge) Same as Fig. 3 except the gears are moved a further 0.75 units apart. |
Another way to deal with the overlap problem is to separate the gears further from each other. Doing this results in no lost engagement because a pinion tooth can only engage on its involute section anyway, and we haven't moved it far enough to loose any of the involute. In Fig. 5 this can be seen with the gears moved a further 0.75 units apart. Recall that the pitch diameter is 1 unit per tooth and the depth of tooth engagement is 2 units. Because the involute curve is invariant to the separation distance, this is a really good solution, and if you get this simulation going on your own computer you can see how well it works.
![]() |
Fig. 6. (Click to enlarge) Same as Fig. 5 but using the circle approximation
for the involute
curve.
|
In the final part of this series we will look at an overview of how the some of the more interesting aspects of the code work.
Hey, great job!
ReplyDeleteI can't believe you haven't had a single comment saying this in either part of this series, since you published it.
I wanted to ask, though, because I've been perusing the source code to understand how you did it, that I can't make sense of the `vertx'/`verty' vectors.
If I'm getting it right, these are supossed to hold vertices for both sides of one tooth, but I dumped their contents to stdout, went on to FreeCad to manually plot them, and I can't see anything resembling a gear's tooth.
Can you offer an explanation for this?
Thanks,
Thanks, I haven't looked at this for some time, so don't remember all the details. Having a quick look I would say that vertx/y hold a point on the 2D involute flank profile, then there is an array of these holding a series of points along one flank. So now we have a representation of one side of one flank for one tooth, in 2D.
DeleteI expect that I got the other side (mirrored) by taking the negative of the vertx value. You can then connect the tip with a straight line to obtain a complete tooth in 2D, the front face; copy then shift the whole thing in z to obtain the back face. Now you can connect the verticies with lines to make trinangles and get the 3D profile.
If I felt motivated I'd break the thing down into more objects, and make the code nicer, but I've moved on.
Hey thanks,
ReplyDeleteNo worries. Either, I'm not givin correct interpretation to the points in vertx/verty buffers, or there's some bug that went unnoticed. I have moved to postscript rather than manually placing points in FreeCad, and all I can see is this:
https://ibb.co/zSDCbJp
That's the result for me of the function `sectorVerts', right after the loop. I'll keep investigating anyways, thanks!