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.
Step 2: Overhangs Part 1: Holes
This presents a problem for holes. In the first image, you can see that the top of the hole is an overhang. If the part is just a block with holes, I could flip it on its back and print it flat, avoiding the overhangs. Part of design is just the way you think.
Assuming I have to print it upright, as shown in the picture, I have to make a call. The images feature three holes, of 3mm, 5mm, and 8mm diameters from left to right. Plastic has some rigidity, so I can print the 3mm hole fine as it is. The 5mm hole would have some drooping plastic, and would need to be drilled out. The 8mm hole would likely print extremely poorly.
For larger holes, you can use a technique called teardropping. This is shown in the second picture. Teardropping limits overhangs to 45 degrees, making larger holes printable. For holes with a loose tolerance, this will solidly hold a bolt or bearing. A tight tolerance hole would need to be drilled.
In the OpenSCAD file, I have provided a module that makes teardrops given a height and radius.
Step 3: Overhangs Part 2: Straight-Up Overhangs
I added small supports to my part, as shown in the second picture. These turn the overhang into a supported gap, which will be printable, albeit somewhat droopy. I can then cut them away when I've finished the print.
Step 4: Set Screws and Threading
Let's say I want to design a collar with a set screw, like in the first picture. I make the collar, and punch a hole in it for the screw. The hole is slightly undersized. Most 3D printed plastics can be tapped, but often the screw will self tap. That works better in ABS than PLA, but ABS will strip out more easily than PLA. A good way to use set screws in printed parts is a captive nut, as shown in the second picture. The nut will take the load of the screw pulling off the plastic, so it won't strip. This isn't needed for low-stress applications, but it is a good safeguard and works well. A good example of a part using this technique is Zaggo's Z-Crank .
The OpenSCAD file is really just for demonstration; the dimensions for the nut are not right. You can use it for reference if you wish, though.