Software is important. Your choice of software affects your design process, and to an extent the way you think about design. For this article, I'll only use open-source cross-platform tools.
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.