3D Printing File Formats: What Each One Actually Stores
Most print failures start in the file, not the machine. This guide explains what STL, STEP, 3MF, OBJ, IGES and AMF actually carry, how mesh and solid data differ, and how to decide which 3D printing file formats to send for a prototype or a machined part.

In this article
- 1
- 2
- 3
- 4
- 5
- 6
- 7
What a 3D Printing File Format Actually Contains
A 3D file is a container. What matters is the kind of data inside it. Mesh formats describe a surface as a set of triangles. Solid formats describe a volume with real faces, edges and a feature tree. Those two families behave very differently once you move from a slicer to a CNC machine or an inspection report.
Mesh formats such as STL and OBJ store coordinates and connectivity, plus a normal direction per triangle. There is no unit declaration and no material definition. A sphere becomes flat facets, and the count of those facets decides how smooth the surface looks. If the exporter used a coarse chord tolerance, the model is already wrong before anyone slices it.
Solid formats such as STEP and IGES store real geometry: analytic surfaces, trimmed edges, and in the case of STEP, a feature history. A Ø10 mm hole stays a cylinder, not a ring of 64 triangles. That matters when you need to change the hole to Ø12 mm or measure it on a CMM.
The practical consequence is simple. Meshes are for printing and visualization. Solids are for editing, measuring and machining. Send the wrong family and the other side spends time rebuilding what you already had.
- 1Mesh fileTriangles only. No units, no material, no feature history.
- 2Solid fileAnalytic surfaces and edges. Editable and measurable.
- 3Slice fileG-code or a project file. Machine-specific, not a design asset.
STL, OBJ and PLY: The Mesh Side of 3D Printing File Formats
STL is the oldest and still the most common of the 3D printing file formats. It stores one triangle at a time: three vertex coordinates and a normal. Binary STL is compact; ASCII STL is readable but roughly five times larger. Neither version records units, so a file exported in inches opens as millimeters in some slicers and the part prints 25.4 times too small.
The triangle count is set at export, not at print. A typical 100 mm bracket exported at 0.05 mm chord tolerance lands around 200,000 to 500,000 triangles. Push the tolerance to 0.005 mm and the file triples in size with almost no visible gain on a 0.4 mm nozzle. Export settings should match the process, not the ego.
OBJ adds texture coordinates and material groups, which is why it shows up in visualization, dental and color-print work. PLY stores per-vertex color and is common in 3D scanning output. Neither one fixes the core limitation: a mesh has no notion of a hole, a fillet or a thread.
Watertightness is the other trap. A mesh with a missing triangle, a flipped normal or a zero-area sliver will slice into a shell with gaps. Most slicers auto-repair, but the repair is a guess. For a functional part, check the mesh before you print.
- 1STLTriangles only. Fast, universal, no units.
- 2OBJTriangles plus UVs and material groups.
- 3PLYTriangles plus per-vertex color, scan friendly.
STEP, IGES and AMF: Where Solid Data Pays Off
STEP is the default exchange format between CAD systems. It carries B-rep geometry, assembly structure, units and metadata. If a part will be machined after printing, or if the print is a fit check for a machined counterpart, send STEP. A machinist can pull dimensions from it, add stock, and program toolpaths without remodeling.
IGES predates STEP and survives in aerospace and older tooling chains. It handles surfaces well but is weaker on solids, assemblies and metadata. Expect more healing work on import. Use it only when the receiving system asks for it.
AMF was written specifically for additive manufacturing. It stores curved triangles and can carry material, color and lattice information in one XML file. Adoption stayed narrow because 3MF arrived with similar goals and stronger software backing. You will still see AMF from 3D scanning and medical modeling tools.
The engineering rule here is about downstream use. If the file only ever feeds a slicer, mesh is fine. If the file will be measured, edited, or used to quote a machined version, use a solid format and keep the mesh as a throwaway export.
- 1STEPB-rep solids, assemblies, units. Best for machining handoff.
- 2IGESSurface-focused legacy format. Expect repair work.
- 3AMFXML additive format with material and lattice data.
Why 3MF Fixes Most STL Problems
3MF is a ZIP container holding XML. It is compact, human-readable when unzipped, and it declares units in the file. A 3MF part cannot silently print at the wrong scale. That single feature removes a whole class of scrap.
It also stores more than geometry. You can put multiple objects, per-object transforms, material assignment, color, and print settings in one file. A build plate with six parts and two materials is one 3MF instead of six STLs plus a spreadsheet.
The file still holds mesh geometry at the core, so it does not replace STEP for CAD editing. But for the print step itself, 3MF is the cleaner container. Most modern slicers, including the ones used in our own shop, read and write it.
If your supplier accepts only STL, sending 3MF is not an option. Ask first. In our experience the conversion path is short: 3MF to STL loses the metadata, not the shape, so nothing about the printed part changes.
- 1Declared unitsNo silent inch-to-millimeter scale errors.
- 2One file, many partsObjects, transforms and materials together.
- 3Still meshNot a replacement for STEP in CAD work.
How Format Choice Shows Up in the Finished Part
A printed part carries two tolerances: the file tolerance and the process tolerance. File tolerance is how closely the mesh follows the true surface. Process tolerance is what the printer can hold. If the mesh deviates 0.08 mm and the printer holds ±0.1 mm, you cannot tell them apart. If the mesh deviates 0.4 mm on a curved face, that error shows up in every copy.
Curved surfaces suffer most. A Ø50 mm cylinder exported at 0.1 mm chord tolerance is visibly faceted under raking light. At 0.02 mm it reads as round. The triangle count difference between those two settings is roughly 25 to 1, and file size tracks it.
For functional fits, the print process usually dominates. FDM holds roughly ±0.3 mm on a well-tuned machine; SLA and similar resin processes do better, around ±0.1 mm on small features. A mesh error below 0.05 mm disappears into that budget. A mesh error above 0.2 mm does not.
This is also where hybrid workflows matter. Print the geometry for a fit check, then machine the final part from 6061-T6 or 17-4PH to ±0.005 mm with a finish of Ra 0.8–1.6 μm. The print tells you the shape is right; the machined part holds the tolerance.
- 1Keep mesh error under 0.05 mmBelow that, it hides inside normal print tolerance.
- 2Watch curved facesFaceting is a mesh setting, not a printer fault.
- 3Separate the two tolerancesFile error and process error add, they do not cancel.
Checking and Converting Before You Send the File
Run three checks before the file leaves your desk. First, confirm the units. Open the file in a viewer and measure one known dimension, such as a mounting hole pitch. Second, check watertightness. Look for open edges, flipped normals and duplicate vertices. Third, confirm the wall thickness against the process: 0.8 mm minimum for FDM, 0.4 mm for resin, and more if the part sees load.
Conversion between formats is mostly one-way. STEP to STL is a clean export that bakes in a chosen tolerance. STL to STEP is a rebuild: the mesh gets wrapped into surfaces, and the result is usually a single lumpy solid with no feature history. It is usable for reference, painful for editing.
If you need both a printed prototype and a machined production part, keep the STEP as the master and export STL or 3MF only for the print. That way the design intent survives, and the machined version starts from real geometry rather than a mesh approximation.
When you send a part to us for a machined prototype, STEP is the preferred input. If only an STL exists, we can still quote it, but we will flag thin walls, sharp internal corners and any feature that cannot be cut as modeled. We return a DFM analysis within 12 hours, and prototypes ship in 3–5 days.
- 1Units checkMeasure a known dimension in the viewer.
- 2Mesh checkOpen edges, flipped normals, sliver triangles.
- 3Master fileKeep STEP as the source of truth.
Choosing Among 3D Printing File Formats
Match the format to what happens after the print.
| Format | Data type | Units stored | Best use |
|---|---|---|---|
| STL | Triangle mesh | No | Slicing, simple one-off prints |
| OBJ | Mesh + UV + material | No | Color prints, visualization, dental |
| PLY | Mesh + vertex color | No | 3D scan cleanup and export |
| 3MF | Mesh in XML container | Yes | Multi-part builds, material data |
| STEP | B-rep solid | Yes | Machining, metrology, CAD edits |
| IGES | Surface B-rep | Yes | Legacy aerospace and tooling chains |
| AMF | Curved mesh, XML | Yes | Scan and medical additive output |
Which Format to Send
If the file only ever goes to a slicer, STL or 3MF is enough, and 3MF is the safer choice because units are declared. If the part will be measured, edited, or machined afterward, send STEP and treat any mesh as a throwaway export.
Common Questions
Can you machine a part from an STL file?
Yes, but the mesh has to be converted into surfaces first, and that rebuild loses feature history. Thin walls and sharp internal corners often need manual cleanup.
If a STEP file exists, send that instead. It quotes faster and cuts closer to the modeled intent. If only an STL exists, we will review it and tell you what needs to change.
Why does my STL print at the wrong size?
STL does not store units. A file exported in inches can open as millimeters, producing a part 25.4 times too small.
Check one known dimension in a viewer before printing, or export to 3MF, which declares units in the file.
Is 3MF better than STL for printing?
For most print jobs, yes. 3MF declares units, holds multiple objects and materials in one file, and is smaller for the same geometry.
It is still mesh data, so it does not replace STEP if you plan to edit the model or machine it later.
How many triangles should an STL have?
Enough to keep the mesh under about 0.05 mm deviation from the true surface. For a 100 mm bracket, that is often 200,000 to 500,000 triangles.
Going finer adds file size without visible gain on a standard nozzle. Match the export tolerance to the process, not to the smallest number available.
Do you accept 3MF, OBJ and PLY as well as STL and STEP?
For printing, yes. We read the common mesh formats and repair open edges where needed.
For machining, STEP is preferred. Other solid formats such as IGES work, but they usually need more healing on import.
What tolerance can you hold on a machined prototype?
Down to ±0.005 mm with a fine finish of Ra 0.2–0.8 μm on suitable features, and Ra 0.8–1.6 μm for general high-finish work.
Every part is inspected before shipment, and inspection reports are available on request.
Send STEP, STL or 3MF and Get a Quote
Upload your model and we return a quotation with free DFM analysis within 12 hours. No minimum order quantity, from one prototype to 10,000+ parts, and uploads stay confidential with an NDA available on request.
12-hour quote±0.005 mm toleranceNo minimum orderNDA on request