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.
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.
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.
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.”
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.
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.
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.
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.
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.
If the 3D model has holes or missing faces, the slicer cannot define for the 3D printer where to put material.
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.
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.
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:
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:
Here are examples of badly 3D modeled button:

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

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.

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
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.