An STL, or Standard Template Library, is a standardized computer exchange file which contains a 3D model. The representation of the surfaces of the objects in the file is in the form of one or more polygon meshes. The meshes in an STL file are entirely composed of triangular facets.
The name STL is taken from its extension, .stl, originally because the files were intended for a rapid prototyping process called Stereolithography. The file format has become a world standard for exchanging 3D mesh type objects between programs, and .stl’s are now used as input for virtually all rapid prototyping processes, as well as some 3D machining. Nearly all 3D programs can export an STL and most can import them.
Mesh representations of objects are faceted, i.e. they are not smooth, but composed of an array of small faces which, if fine enough, can represent smooth surfaces with a given degree of accuracy. This is similar to how what appears to be a smooth 2D image is actually composed of many tiny discreet dots (pixels).
If the individual facets in a mesh model are too coarse or there is too much of an angle between them, the model appearance will be rough, and it will lack precision. The parallel to this in the 2D world is an image whose resolution is not fine enough, resulting in a grainy look. (You can actually distinguish the individual dots.)
If the individual facets in a mesh model are too fine, the surface representation will generally be good, but the model will be data heavy and the file large. This may cause problems with the generating or receiving software, as well as the visual display on the screen. The goal is to create an STL model with enough accuracy and resolution for the final process, without going too far and making the model too fine. The best resolution will depend on what that process is to be.
In one way, mesh precision may be thought of as the greatest difference allowed between the faceted mesh representation of the surfaces and the smooth surfaces themselves. For objects composed of planar surfaces, this is not a problem. The facets will correspond exactly with the surfaces. For curved surfaces, the triangles will not necessarily lie entirely on the surface. So the degree of approximation becomes important.
The prototyping process used to create the final object determines the optimum level of precision and tolerance required for the model. Rougher processes like FDM can successfully use models with lower tolerances (lower precision) than something like a machining process which is capable of very fine detail. In general, the precision target of the model should be around one order of magnitude smaller than (1/10 the size of) the maximum precision of the process. For FDM, which can reproduce about 0.1mm detail, an STL with .01 is good. For machining, which can reproduce .01mm and finer, an STL precision of .001 or finer is necessary.
Since an STL mesh is composed entirely of triangles, it is the simplest form of mesh model format. Each facet is by necessity planar. In principle, rapid prototyping processes require completely closed objects. The mesh completely encloses a volume, with no holes, gaps, or overlaps. We sometimes speak of this as a watertight solid. Also, some processes require that there is only one object (volume) in the file.
In actual practice, some tolerance is allowed. Small errors or gaps may be tolerated by the prototyping software, or can be quickly repaired. Each process and software will work differently. Some are more error-tolerant than others. So, in general it is best to aim for a perfect 100% closed model. Otherwise, depending on who is doing the prototyping and what process is being used, it may be time consuming (read: expensive) to fix.
Rhino models are created with mathematically determined smooth curves and surfaces called NURBs (Non Uniform Rational Basis Splines). These surface models need to be translated into (approximated by) triangular meshes to be exported via STL. The values in Rhino's custom mesh settings box determine the translation's accuracy. The most important setting is the maximum distance edge to surface setting, which determines how close the mesh is drawn over the surface (and how smooth and accurate it will be).
For RP purposes it is very important that the Rhino surface model be a closed volume (closed valid surface or polysurface). Even when it is, under some conditions the mesh translation of the object may be open or have gaps somewhere. In general, these are minor and usually easily repaired, often directly in Rhino. It is a good idea to reimport your STL into Rhino and check for naked edges. If none are found, great! – You’re done.
If there are a few naked edges, you can usually use the V3 bonus mesh tools or V4 mesh tools to fix them. Commands like MatchMeshEdge, AlignMeshVertices and UnifyMeshNormals are useful. You can also go in and create or delete individual mesh faces. Once fixed, you can re-export the mesh as a new STL. Otherwise, you can just mesh your model in Rhino, check and edit it if necessary, and then export the mesh as an STL. The custom settings for Mesh and STL export are the same. See the Mesh FAQ page for more info on meshing.
We recommend that you use the custom/detailed settings to produce your mesh model or export STL. Each process will have a different group of settings. Below is a listing of settings people have found useful for various RP processes:
(Please contribute your settings. We can format them later!)
Polyjet printer (Objet)
Solidscape Wax printer
For FDM use, I have found a reasonable group of settings are:
Max angle: 30
Max dist edge to srf 0.01
Initial grid quads 16
All others 0
All others unchecked.
For Jewelery (rings) printing on a Solidscape t66 I found a simple set of settings. Units are millimeters. (Don't use these settings on big models!):
Min Edge length: 0.02
Max Edge Length: 0.3 to 0.6 (0.3 takes longer, but is worth it)
Max dist edge to srf 0.001 to 0.005 (0.001 takes longer, but is also worth it)
All other settings = 0
All others unchecked