Converting a CAD model into an optimized STL file for 3D printing is a bit of an art. By it's very nature, the process (called tessellation or meshing) is lossy - meaning that resolution is lost. I discussed this in a previous post Musings on the impact of STL triangle count on print quality and this post will be a practical guide.
CAD applications have different tools for meshing objects. I use RhinoCAD and came across a great video series that describe the process in Rhino very nicely, but the same concepts can be used with any program. That video series was created by Kyle Houchens and can be found here: Preparing for 3-D Printing with Kyle Houchens. This post doesn't really add anything new to the great information Kyle presents, I'm simply distilling it down to a short list of How Tos to make it easy to remember it all!
Always create the mesh yourself, don't rely on "Save As..." or the default settings. You can expand the Polygon Mesh Options dialog to show all the options (I'm using the Mac OS X version here).
Kyle presents two methods to use this dialog but the second method he learned from Dale Lear (the "mesh guru" Chief Scientist at McNeel) seems easiest.
'0' out all of the field except the Maximum distance, edge to surface field, set that to your file resolution (in my case, 0.01mm). Also uncheck all of the check boxes. The only field you'll use is the Minimum initial grids quads field. Start with a low setting like 100. And look at the mesh and polygon count. Kyle uses a simple concept "blackening up" to describe what a good mesh looks like. Watch the video for details. Most of my parts are about 3" D and 2" tall. I shoot for about 700,000 polygons. Play with the Minimum initial grids quads field until the model is blackened up and you reach your target polygon count.
Once the mesh is created, notice that it is a quad mesh. We want triangle meshes to print. The TriangulateMesh command does that for us, notice the polygon count will increase significantly when you convert to triangles.
Kyle goes on to say that he always checks his meshes for problems. Three simple commands will tell you if you have any issues. Run these to make sure your STL file is good. Thingiverse and the other sharing sites are loaded with bad STL files. The commands are:
_SelOpenMesh - selects any open meshes, which are not good!
_SelBadObjects - selects any bad objects
_ShowEdges - shows bad edges
If your mesh passes all of these, it will be a good mesh that should slice and print on any 3D printer.
Save the file as an STL file in binary format. Binary files are much smaller than their text/ASCII equivalent.
That's it in a nutshell but I highly recommend watching the videos so you understand the details and theory behind the process.