For the purpose of this article, I'll be using OpenSCAD, an open-source 3D CAD tool. However, most things covered here can be applied to other programs as well.
The photo is of Erik's label dispenser .
This instructable was produced for Pumping Station: One.
Step 1: A Note On Software
One popular option for 3D work is Blender. Blender is a very powerful modeling and animation tool. Blender is also a mesh modeler , meaning your designs are made of triangle meshes. You can then shape these meshes into your designs. A tool like blender is a good option if you like to sculpt or "feel" out designs as you work.
I use OpenSCAD. OpenSCAD is a CSG (constructive solid geometry) modeler. This means that you make your object by combining primitive forms. OpenSCAD doesn't sculpt. It uses a code-like design process, much like POV-RAY or other ray tracing programs. If you like to design mathematical forms, or really like writing code, OpenSCAD is for you (it has for loops). OpenSCAD has one especially powerful feature: variables. Being able to assign dimensions to a variable and then generate the object from those allows you to make parametric designs.
One important thing to keep in the back of your mind is making sure your designs are manifold. In the interest of time, I refer you to this excellent article on the subject. It's much easier to make non-manifold objects with a mesh modeler than with a CSG modeler.
A final note: Although I will be using OpenSCAD, this is not an OpenSCAD tutorial. There are plenty of good ones out there. I will, however, share my source files for every step. I assume that you have some ability to do basic 3D design, and am only providing tips for optimizing designs for 3D printing.