There may be times where you wish to have a 3D model that you are printing be as smooth as you can possibly get it. For us, this happened when we wanted to take a non-spherical object that has a property where, when laid on the ground, always has the same width from the ground to the top such as the model being used in this tutorial.
Software you'll need:
I. Blender http://www.blender.org/download
1. Open Blender and import your STL file.
2. Go from Object Mode to Edit Mode
3. Subdivide your 3D file multiple times (I subdivided my object three times)
Note: If you'd like to try to get an even subdivision for a non-uniformly subdivided object, you may want to hit 'A' to deselect all points and then hit 'B' to pick the vertices that you wish to add more subdivisions to.
4. Export your subdivided file as an STL.
5. Import your model into Meshlab
6. If your object is black, that means that you have some backward facing normals and will want to Invert Faces Orientation (Filters->Normals, Curvatures and Orientation->Invert Faces Orientation) then click apply.
Note: You may have only specific parts of your object that are black, in which case you will first want to click Filters->Normals, Curvatures and Orientation->Re-Orient all Faces Coherently.
Here is the before:
And here is the after:
Voila, you now have a nice, smooth STL file.