Open CASCADE is an open source C++ library for 3D solid modeling.
Creating a sprocket using Open CASCADE.
Generating a solid consisting of simple primitives.