OpenSCAD is free software for creating 3D models. OpenSCAD utilizes a parametric representation of the model. That is, rather than using graphic tools to draw the model, OpenSCAD relies on a programming language to describe the model. A strong background in geometry and trigonometry is required in order to use OpenSCAD effectively. The advantage of OpenSCAD's approach is that changes to a model often be made very easily by changing the parameters.

The figure below shows a gear that is used with a timing belt for coupling the lenses of a pair of cameras used for 3D (Stereoscopic) Photography. A pair of gears and the timing belt ensure that the two zoom lenses are always set to the same focal length, in order to ensure that the left and right eye views match.

Changing the parameters makes it easy to change the thickness or the inner or outer diameter of the gear, the number of teeth, or the diameter or thickness of the outer plates. This facilitates changing the gear for different lenses.

Here are the notes for my Getting Started with OpenSCAD class.