When printing in 3D we have to manage 3D models, for which we can use a lot of different formats. Each design program uses one format or another by default, but almost all of them allow us to choose in which one we want to export our models. There are many different formats: STL, OBJ, 3MF…
If you’ve been using STL all your life and don’t know the advantages of each format… keep reading, because this article will interest you.
What do the files for 3D printing consist of?
The models we use for 3D printing are nothing more than a file containing, in one format or another, a definition of the geometry of the part. It’s that simple. Depending on which format we use, the way this geometry is encoded in the file will vary, in addition to other features that we will see later.
STL: the most common format
The STL format is the most popular 3D model format (in the field of 3D printing) and also one of the oldest. It was created by the company 3D Systems for 3D printing using stereolithography. This format contains the coordinates of the triangles that make up the three-dimensional geometry of the object, excluding other properties such as color, scale, or the structure of the model.
There are several STL file types, but the most common are ASCII and binary. There are several nuances in the operation of each, but keep in mind that the binary STLs are somewhat smaller and appeared as a response to the increasing size of the ASCII STLs. In spite of being lighter, binary STLs still are too big if we want to give a lot of resolution to an object, since we will need to include many triangles.
This format is, nowadays, the most used to share models for 3D printing, although it is definitely not the best, since there are more modern formats that use less space and add more information.
The OBJ format, although less known than STL, is also very popular and almost any software related to design or 3D printing supports it. This format is much more complex and has several modes of operation: precise mode and approximate mode:
- An OBJ file that uses precise coding will not tessellate the model into triangles, as an STL does. Instead, it will preserve the original geometry of the model using three-dimensional lines known as NURBS (Non-uniform Rational B-spline). This means that, using an OBJ we can capture the “original” geometry of the model, not an approximation built from triangles.
- An OBJ file that uses approximate coding generates a simplified version of the model’s surface through tessellation, as it happens with a STL. In this case, we are not limited to triangles, but other polygons can be used, so, despite being only an approximation of the original geometry, we can get smoother finishes.
In both cases, in addition to the geometry of the 3D model itself, an OBJ file includes a lot of additional information, the main areas being:
- A texture map: basically, a 2D image that represents the “skin” of the model. This texture map is understood by other programs and so we can recover the original texture and colors of the model.
- Other metadata of the model.
Another problem with STL files is that they are totally unstructured, since they only contain a list of coordinates of the edges of the triangles that make up the surface of the object. Nothing in an STL file prevents an object from having errors in its definition such as:
- Intersecting triangles
- Upside down or inverted triangles
- Non-shared vertices
These problems, resulting from poor modeling or poor export, can be prevented by using the right file format, as is the case with 3MF. The models we export as 3MF will be validated to avoid all these errors, so we can be sure that our file can be printed in 3D.
In addition to preventing errors, a 3MF file includes much more information, as it can compress other files and encapsulate them in a single package, as we do when using a ZIP file:
- Scale information: Models have scale and units so we will always have the same size regardless of the slicer we use.
- Scene composition information: A 3MF file can contain several separate models and save them as different models belonging to the same scene.
- Color and texture information, like OBJ.
- Thumbnail: You can change the thumbnail of the file, using, for example, a render of the model.
- Print settings: Print settings can be included along with the models (using, for example, Prusa Slicer). This way we make sure that we share not only the model but also how we want it to be printed.
In addition, a 3MF file is compressed, and takes up much less space than an STL. As a comparison we leave you an image from the Prusa’s guys blog:
In short, 3MF is one of the most recommended formats for 3D printing. You can read more about the 3MF format for 3D printing on Prusa’s blog.
There are several other formats that we have not mentioned but that are also interesting.
The STP format is the standard format for sharing 3D models according to ISO 10303. This format is very interesting for exchanging models between CAD programs, since a file in this format can be easily edited in conventional CAD software such as Fusion360.
This format is no longer being used, but it was previously used extensively for exchanging files between programs such as 3D Maya or 3DSmax. It can include geometry, color, texture and also information about the kinematics of the models.
The FBX format, widely used in the film industry, includes information about the “skeleton” of the figures, which is important for their animation.
What format do we use in Bitfab?
At Bitfab we know that there is no one format that is suitable for all situations. As they say, each work needs its own tool.
We work with many different technologies and each of them requires the use of a different format: Exchange files from one CAD software to another? STP; Save a model for proper slicing? 3MF; Share a 3D file to be compatible with any program? STL…
We are experts in digital manufacturing, so don’t hesitate to contact us!