Bringing a 3D printer in an engineering department can be one of the most profound ways to increase both productivity as well as quality of work. Having a printer on site enables rapid iteration, better functional testing, and in some situations even a path to near immediate short run production. Even more impressive is that it provides all this benefit with relatively minimal requirements for physical infrastructure. Entry-level 3D printers require only power and network connectivity. Some larger models also require compressed air or access to a fresh water supply, but that’s it. In fact, all but the largest units will even fit through a standard size door! In addition to the physical infrastructure though, there is also the digital infrastructure that is needed to support a 3D printer. The biggest challenge for this digital infrastructure is keeping track of the STL files that serve as the input to a 3D printer.
An STL file is a type of CAD file that is used almost exclusively by all manufacturers of 3D printing equipment. It does not represent 3D shapes mathematically, but instead works by breaking surfaces down into small triangles. For example, the picture below shows a sphere drawn in SOLIDWORKS and then processed into an STL file.
The STL file itself is simply a list of each of these triangles along with the X,Y,Z coordinates of its three corners. Below is a piece of the STL file from the sphere shown above:
facet normal 2.632147e-002 -9.965051e-001 -7.927606e-002
vertex 5.158957e+000 3.942648e-002 4.393829e+000
vertex 5.235168e+000 3.942648e-002 4.419133e+000
vertex 5.000000e+000 0.000000e+000 5.000000e+000
facet normal -1.119226e-001 9.860424e-001 -1.232625e-001
vertex 4.134954e+000 9.842916e+000 4.106769e+000
vertex 4.564039e+000 9.960574e+000 4.549835e+000
vertex 4.625185e+000 9.960574e+000 4.497781e+000
facet normal 4.996108e-002 9.965051e-001 6.694328e-002
vertex 5.341868e+000 9.960574e+000 5.525202e+000
vertex 5.406223e+000 9.960574e+000 5.477173e+000
vertex 5.000000e+000 1.000000e+001 5.000000e+000
This structure is useful for 3D printing because makes it very easy for the software associated with a printer to read the file and perform the kind of calculations needed to create a toolpath. Unfortunately outside of 3D printing, STL files are not widely used. Because of this, in most other circumstances they are usually poorly handled. Most 3D CAD system can generate STL files, but almost none work with them natively. This means that every time a user wants to print a part they will end up with two files to keep track of: the original CAD file (.sldprt for SOLIDWORKS, .catpart for CATIA, etc.), and the STL file sent to the printer. Most organizations have systems set up to manage their native CAD files, but STL files do not always fit well into these systems. For example, by default Windows will miscategorize STL files as “Certificate Trust Lits” (a type of file related encryption) rather than recognizing them as CAD data. SOLIDWORKS can open STL files through an import process, but it is time consuming for large files, and only provides a graphical preview.
One system that does handle STL files well however is SOLIDWORKS PDM. STL files can easily be captured by a “Hydra” style sorting workflow, given data cards, assigned permissions, and even associated with their respective CAD files using the “paste as reference” feature. The only part of PDM that doesn’t immediately work with STL files is the preview window. Typically it will either show the actual text of the STL file, or simply report “No Preview Available”.
For those unfamiliar with SOLIDWORKS PDM, it has a feature called “preview” that shows a small image of file content that can be accessed without opening the file itself. This can useful in a variety of situations, but getting preview to work with STL’s would solve a major problem with these files: many of the programs that generate STL files have trouble opening them again. Users may easily find themselves in a situation where they are unable to verify that the file they are downloading is correct before sending it to the printer. Most users solve this problem by generating a new STL file every time a file is printed which works, but is time consuming. If preview could be made to work with STL files, then it would provide a way to confirm the geometry in a file, and save valuable time.
It turns out preview DOES work with STL files; the problem is actually a Windows problem, not a limitation of PDM. Because Windows tends to misclassify STL files, preview cannot figure out what program to open the file with. Depending on how a system is configured, it will either default to a text editor, or simply refuse. The solution is to make a small change to the system’s registry. Included with this post is a file that will modify a system’s registry to enable Windows to correctly classify and display STL files. It can be run like a program by anyone with administrator permissions. After a simple restart, the preview window should go from displaying useless text to a rendering of the geometry.
With preview enabled users can actually view the geometry of the file before sending it off to the printer. This provides an opportunity to verify that the STL was made from the right version of the CAD file, both reducing the risk of a mistake, and eliminating the need to create a new STL file for every print job.