OpenSCAD is a 3D design tool that can be used to create solid 3D CAD objects. It is code-based, so those with a software design background will find it the most interesting. Because it is written completely in code, it is easy to parametrize designs. It is also free to use.

An example of a parameterized design can be seen in the microphone adapters that I created. I used a parameter for thread size and thread pitch, and easily modified the design to create one with both a 1/4-20 thread and also one with a 3/8-16 thread. These adapters can be downloaded from my STL Files page.

You can learn more about this program on the OpenSCAD home page.

I also suggest bookmarking the OpenSCAD cheat-sheet page, which is a highly useful tool to have open as you write your OpenSCAD code.