The Origin of STL
The father of 3D Printing, Chuck Hull, originally created the STL file format in 1987 with his company, 3D Systems. There are several theories as to how the acronym originated, but the most likely ones state that STL derives from an abbreviation of STereoLithography, or alternatively, Standard Tessellation Language or Standard Triangle Language. Although there doesn’t seem to be a consensus as to what STL really stands for, it is definitely essential in allowing 3D printers to read the 3D designs created on CAD programs, or Computer-Aided Design programs. Initially only used for Stereolithography, the 3D Printing process where a printer uses lasers to harden liquid resin layer by layer, the STL file format is now widely used in other fields of manufacturing as well, including as Rapid Prototyping (RP), Computer-Aided Manufacturing (CAM) and 3D Printing in general.
Why use the STL format?
Now that we’ve established that the STL file is the de facto format for 3D Printing, it’s time to take a look at some of its technological advantages. However, in reality it isn’t even the most ideal format for 3D Printing as it doesn’t keep color or texture information. So why is it so widely adopted? It really boils down to the fact that it has existed the longest, and as a result it still has the edge over other 3D printing file formats because it is compatible with so many different 3D modeling programs. Gradually, more software programs are starting to offer a wider range of file formats that can be read by your 3D printer, but for now, the STL file is still the king of the heap.
How STL works
Whereas your 3D modeling software typically describes the surface geometry of your model in a mathematical way, an STL file breaks it into a logical series of triangles. So instead of a smooth, organic surface, the STL format breaks up your design into hundreds of triangles. To get slightly technical, each triangle is composed of a normal vector (usually referred to as a “normal”) and three dots that indicate the extremities of each triangle. The normal indicates what the inside of the triangle is (basically the side that faces inward on your design) and the outside (the side you can see on the outside of your model). Each dot, as well as the normal, is defined by three coordinates (called x, y and z), which means that each triangle is defined by 12 coordinates. Those 12 coordinates are all the information your 3D printer needs in order to slice your design, and calculate the path the printer will follow to print out the model layer by layer.
High and Low Resolution
As we saw before, the STL format transforms an organic design into a sharp-edged, triangulated surface. However, the STL file is comparable to the way a photo is made up of many pixels. The more pixels there are, the sharper the image is. It follows that the more triangles there are in your model (in other words, if it has a higher resolution), the smoother the model will be, and the more closely it will resemble your original, organic design.
Why does it matter?
To continue with the pixel metaphor, it is evident that most people prefer a camera that takes high resolution photos, unless they have a predilection for photos covered in big, blurry blocks of color. It’s the same with 3D Printing, because if the triangles in your file are too big (or stated more simply, if the resolution is too low) you will get a blocky print with clearly visible triangles. The more complex your design is, the more triangles you will also need to smooth out the various surfaces. Of course, sometimes prints with blocky triangles can be the aesthetic choice you’re going for, as seen in the wolf ring design underneath.
How to judge what your design needs
If you don’t feel like embracing current trends and would rather avoid geometric shapes in the surface of your design, there is a handy rule-of-thumb to achieve the perfect level of resolution. First of all, it depends what kind of 3D Printing you’ll be using. Some manufacturing processes have an extremely high level of detail (such as Stereolithography) and others have a rougher look (such as Fused Deposition Modeling). The general rule is that you should divide the maximum precision (or “tolerance”) of the manufacturing technique by ten. And how does one calculate the tolerance, you ask? Well, it’s the maximum distance between the original shape of your model and the STL mesh you are exporting. With a detailed process, the printer can produce a tolerance of 0.01mm, so according to the rule-of-thumb, that means your STL file should have a precision of 0.001 or finer.
Are there limits to the resolution you should use?
If you want a really smooth finish, try not to give into temptation and go crazy with the amount of triangles you use. Large STL files can get extremely heavy for your computer to handle, and besides, in most cases the 3D printer won’t even be able to print such a high level of detail. It’s also good to note that the human eye is rarely able to spot the difference! Most designers try to balance accuracy and high resolution with a manageable file size.
Materialise Cloud imposes a limitation of 5 million triangles that are used to describe your model, keeping in mind the manufacturing method, which ensures a more detailed, smooth printed object.
Although information about the scale and distance unit of your model is available in most 3D modeling software, the STL format does not show this information. That’s why Materialise Cloud asks you about the distance unit of your model if you upload an .stl or .obj file. You can choose between inches, mm or cm, and you can always adapt the size of your model later on with the Scaling tool.
File types that need to be converted
The following file types all need to be converted to an STL format to make it possible for the 3D printer to bring your design to life:
- .skp (sketchup)
Materialise Cloud currently converts all of these file formats to STL, and more CAD file formats or 3D printing file formats can be added on request. Once you’ve converted your model to STL, Materialise Cloud can begin automatically preparing it for 3D printing.