Additive Blog
3D Data

3D Printing: what you need to know about 3D data – STL file and others

The most commonly used file type for 3D printing is STL (.stl). However, a new file type aims to become the standard for 3D printing. It is called 3MF (.3mf). You can find out more about it at the end of this article. However, I encourage you to read through the basics covering the STL file first. The 3MF file type has some similarities with STL, but the 3MF file is more complex.

STL file is a 3D file format which uses a series of triangles to represent a surface of a 3D model. In the language of 3D graphic designers, the triangles are called polygons. 3D models can also be represented by rectangular polygons or some combination of rectangles and triangles. The 3MF also uses triangulated surface to represent a 3D model.

Scheme showing types of polygon 3D models

How are STL files (3D models) obtained:

1) Created in polygon based 3D modeling software and then exported (Blender, 3ds Max, Maya, Z-Brush, Cinema 4D…)
2) Created in CAD or NURBS-based 3D modeling software, then converted to polygon mesh and exported (SolidWorks, Inventor, Tinkercad, Rhino, Modo…)
3) 3D scanned (by using a 3D scanner, you create a polygon 3D model of an existing physical object)

You can also download a vast amount of ready to print STL files on sites like thingiverse.com. Or you can download CAD models from sites like grabcad.com and convert them to STL – for conversion you can use, for instance, Workbench)

What to double check before 3D printing an STL file:

For checking your STL file, you can use a free version of Autodesk Netfabb. (You will get a 30-day trial version of Netfabb Premium, which then automatically switches to free Netfabb Basic).

1) Scale

Sadly, there is no information about units contained in STL file. You can read from the file that the 3D model is, for instance, 200 x 150 x 8, but there is no additional information. So, you can’t tell if the 3D model was created in mm, inch, etc. When you want someone else to print your STL file, it is wise to specify the correct units/dimensions to them clearly. A common error occurs when you create your 3D model in inches, and the 3D printing studio uses mm as a default. That means your part could get 25.4x smaller. That’s a big error. Imagine you would like to get a prototype of your screwdriver design (in real life dimensions), but instead received a prototype so tiny that even a Lego mini figure would have problems holding it.

Two screwdrivers scaled differently (mm/inch)

Thankfully, most 3D printing services will include the dimensions of your 3D model in a quote for the print, so you can double check if these are correct prior to pushing the “print” button.

.3mf solves this problem – the units are part of the information about the file, so there can be no errors

2) Resolution

You should always double check that your STL model is exported with a sufficient resolution of the polygon mesh (that applies to .3mf also). Too low of a resolution will degrade your design. However, too big resolutions can result in an enormously huge file that will be problematic to handle. When exporting an STL file, you usually have an option to select Binary or ASCII format. Binary format results in a much smaller file size so this option is used primarily.

Comparison of low and high resolution STL file
Comparison of low and high resolution STL file - render

3) Correctly oriented normals

What exactly are normals? Normal is a vector perpendicular to a plane. In a 3D graphic world, there is usually used just one normal for each plane (polygon). This normal orientation determines which side of the plane is visible during rendering. In other words, the normal orientation sets which side of the plane will be perceived as “inner” and which as “outer.”

Normals orientation of a plane
So, we know STL 3D models are made of polygons (planes – either triangular, rectangular, etc.) which together represent a surface of an object. Every plane in 3D space has an outer side and an inner side. Now imagine all the outer sides are gray and the inner sides are red. If you take a look at a correctly modeled 3D object, you should see the whole object as gray. If you were to look at the object from inside, the inner surface would appear red. This way, the slicer (software for print job preparation) can tell what is “mass” and what is “air” in the 3D model. In other words, it can tell 3D printer where to put material when 3D printing a given object.
How slicer process 3D object with correct normals orientation

A problem occurs when a designer does not pay attention to normals orientation during 3D modeling. Misaligned normals confuse the slicer, making the 3D object non-printable.

How slicer process 3D object with incorrect normals orientation

This applies mostly to surface and polygon based 3D modeling software. You may want to adjust your software, so it displays inner sides with a different color, so you can keep normals orientation in check.

Rhino settings tab - display backface color

If you are dealing with STL file created by someone else, you can use Netfabb to automatically correct the normals. It works fine for most models, but with complex shapes, you will probably have to flip the normals manually.

Two 3D models, one with randomly flipped normals

4) Watertight

Not every 3D model can be 3D printed. The first requirement for 3D printing is that the 3D model must be watertight. Imagine you pour water into the 3D object. Does it leak somewhere? If the model has holes, they have to be patched or avoided so the slicer can extract from the 3D model closed contours.

How slicer process watertight 3D model

If the 3D model has holes or missing faces, the slicer cannot define for the 3D printer where to put material.

How slicer process 3D model containing holes

There are auto-repair options but always double check the outcome. You can patch the holes in the STL file using Netfabb. Or use automatic repair of contours in a slicer. It works fine for tiny holes but with complex shapes, there might be several possible options for how to repair the contours. This usually results in unexpected errors.

Multiple (bad) outcomes are possible when slicer automatically repairs 3D models containing holes

5) Manifold

A second requirement is that the 3D model must be manifold. In really simplified terms, it means that the 3D object must be able to physically exist in real world. Keep in mind is that a single surface in virtual 3D space has no thickness, thus it cannot be 3D printed.

Non-manifold and manifold 3D model

An example of a manifold object:

Let us say you want to 3D print a record button (cuboid with a cylinder on top of it). Here is an example of a correct 3D model ready for 3D printing:

Manifold 3D model of a record button

When we take a look at the cross-section of the button, we can clearly see that it is one object – in other terms a single volume. There will be no problems when 3D printing this 3D model.

Manifold but with a caution:

It is usually possible to 3D print two or more overlapping solid objects (resulting in one solid object). But it may cause problems on some 3D printers. It is also difficult to make this kind of 3D model hollow (which comes in handy if you want to cut down costs when using SLS or powder binding 3D printing). So, try to avoid this 3D modeling style:

Manifold 3D model of a record button consisting of two overlapping objects

Here are examples of badly 3D modeled button:

Non- manifold 3D model of a record button v1

The cylinder consists of a top surface with sides of the cylinder going through the cuboid.

Non- manifold 3D model of a record button v2

The cylinder consists of a top surface with sides of the cylinder trimmed, ending at top of the cuboid.

Non- manifold 3D model of a record button v3

The cylinder consists of a top surface with sides of the cylinder going through the cuboid. There is a round hole in the top surface of the cuboid.

Non- manifold 3D model of a record button v4

The cylinder consists of a top surface, sides and a bottom surface. The bottom surface of the cylinder is placed in the same height as the top surface of the cuboid. You can see that the area where they touch, looks like gray and red stripes. That is because the two surfaces share the same position in a 3D space and each of them has opposite normals orientation. So in this area, the 3D viewer tries to show both red and gray.

Full-color 3D models

For 3D printing full-color objects, you will usually need a 3D model in one of these file formats:

a VRML (.wrl) + texture file in .jpg or .png.

an OBJ (.obj) + texture file in .jpg or .png. + Material library file (.mtl)

or you can use 3MF (.3mf) – the texture file is contained inside the .3mf

A textured 3D model imitating diamond plate

All of the file types listed above use polygons to represent objects in 3D space. In addition, they all contain information about UV maps, which is used to properly wrap a JPG/PNG file around the 3D object. The texture file really is just a flat image. If you were to 3D print the object above, the surface would come out as smooth. There are several options for how to achieve the imitation of the diamond plate. One of them is using displacement maps to add detail to your polygon 3D model.

3MF summary

From all the file types suitable for 3D printing, the 3MF is definitely the most versatile and reliable. It contains information about proper dimensions and supports multiple instances of a given object in 3D space. You can create full-color 3D models with complex textures and save it as one .3mf file. The file itself is something like a compressed .zip file (it is possible to actually rewrite the filename extension from .3mf to .zip and take a look at what is inside). The 3MF can also contain specific information about materials (for multi-material 3D printers like Polyjet). In short, 3MF is the way to go when speaking about 3D printing.

Categories
Check out our new Ebook!
Privacy Settings
We use cookies to enhance your experience while using our website. If you are using our Services via a browser you can restrict, block or remove cookies through your web browser settings. We also use content and scripts from third parties that may use tracking technologies. You can selectively provide your consent below to allow such third party embeds. For complete information about the cookies we use, data we collect and how we process them, please check our Privacy Policy
Youtube
Consent to display content from Youtube
Vimeo
Consent to display content from Vimeo
Google Maps
Consent to display content from Google
Spotify
Consent to display content from Spotify
Sound Cloud
Consent to display content from Sound