Sorry, the engineer inside couldn't resist

![enter image description here][1]

**Edit**

Here is the code:

    gearCurve[a_, b_, n_, c_, h_] := 
      ParametricPlot[{c + (a + 1/b Tanh[b Sin[n t + h]]) Cos[t + h], 
                          (a + 1/b Tanh[b Sin[n t + h]]) Sin[t + h]}, {t, 0, 2 Pi}, 
       Axes -> False, 
       Method -> {Refinement -> {ControlValue -> 1 Degree}}];
    
    Animate[Show[gearCurve[10, 5, 38, 0, h], gearCurve[10, 5, 38, 20, -h],
                 PlotRange -> {{-10, 30}, {-10, 10}}], {h, 0, 2 Pi, .01}, 
                 DisplayAllSteps -> True]

  [1]: https://i.sstatic.net/03aWj.gif