GreatLight CNC Machining Factory logo
CNC Machining
Rapid Prototyping
Materials
Industries
News
About GL

Get Instant Quote

Mesh File Formats

3D printing STL format explained

STL is still the file most engineers send to a print shop, and it is also the one that causes the most avoidable rework. This page covers what the 3D printing STL format actually stores, how a slicer turns those triangles into toolpaths, and when a mesh file is the wrong choice. Written for design engineers and buyers who need to decide what to upload.

Triangles onlyNo units storedBinary vs ASCIISTEP for tolerances
metal-3d-printing-1801
Start here

What the STL file actually carries

One geometry description, three coordinates per vertex, and almost nothing else.

Format basics

STL stores surfaces, not solids

STL stands for stereolithography, named after the process that made it useful in the late 1980s. The format is a list of triangles. Each triangle is defined by three vertices and a normal vector that points outward. That is the whole data model. There is no feature tree, no sketch, no dimension, no material assignment, and no build direction.

Because the file describes a boundary rather than a volume, the slicer has to guess what is inside. It reads the triangle soup, checks that the surface is closed, and then decides which regions are solid. A gap of 0.02 mm between two triangles is enough to break that decision. The part may still look correct on screen while the slicer reports zero shells.

The format also stores no units. A value of 10 in an STL file could mean 10 mm, 10 cm or 10 inches. Most software assumes millimeters, and most exporters write millimeters, but nothing in the file enforces it. When a quote comes back with a part 25.4 times larger than expected, a unit mismatch is usually the cause.

Two encodings exist. ASCII STL is human-readable text, roughly five to ten times larger than the same model in binary. Binary STL packs each triangle into 50 bytes and is the standard for anything beyond a few hundred triangles. Both carry the same geometry, so the choice is about file size, not accuracy.

  • 1
    Vertices and normalsEach triangle carries three points plus one outward normal.
  • 2
    No units fieldScale is an assumption, not data. Confirm mm before export.
  • 3
    No color or materialMulti-material jobs need 3MF or separate bodies.
  • 4
    No build orientationSupport and layer direction are set in the slicer.
From mesh to machine

How a slicer turns triangles into toolpaths

The slicer cuts the mesh into horizontal planes. At each layer height it intersects every triangle with a plane and connects the resulting segments into closed contours. Those contours become the perimeter paths. The interior is filled with a hatch pattern at a chosen density.

Layer height drives the trade-off between surface finish and time. A 0.1 mm layer gives a smoother side wall than 0.3 mm, but it roughly triples the number of layers and the print time. For an FDM part that only needs to fit a bracket, 0.2 mm is usually enough. For a visible enclosure, drop to 0.1 mm and accept the longer run.

Triangle density matters here. A coarse mesh with large flat triangles produces contours that look faceted on curved surfaces. A dense mesh improves the curve, but only up to the point where the chord error falls below the layer resolution. Adding triangles beyond that point increases file size and slice time without changing the printed shape.

Thin features are the other limit. A wall thinner than two extrusion widths may be skipped or printed as a single weak line. In resin printing, a wall under 0.4 mm often warps during post-cure. If a design has a 0.3 mm rib, the printer will tell you about it in the preview, not in the CAD model.

  • 1
    Layer height0.1 mm for visible surfaces, 0.2–0.3 mm for fit checks.
  • 2
    Chord errorExtra triangles help only until faceting drops below layer height.
  • 3
    Minimum wallKeep walls above two extrusion widths where strength matters.
Comparison

STL against the formats engineers ask about

Pick the format based on what the next step needs, not on habit.

FormatStoresBest forMain limitation
STL (binary)Triangles, no unitsSlicing, simple single-material partsNo color, no units, no feature data
STL (ASCII)Same triangles as textDebugging, small test models5–10× larger file size
STEPNURBS solids and featuresCNC machining, tolerance checksNot directly printable without meshing
3MFMesh plus units, color, materialsMulti-color and multi-material printingOlder slicers may not read it
OBJMesh plus UV and material refsVisual models, texture workWeak support in print workflows
STL from scanDense triangle meshReverse engineering, organic shapesNeeds repair before slicing
Choosing a path

When STL is the right file and when it is not

Send STL when the part will be printed as a single material and the geometry is already final. It is the most widely accepted format across FDM, SLA and metal binder jetting workflows. Print shops read it without conversion, and the slicer output is predictable.

Send STEP when the part needs machining, when a critical dimension must hold to ±0.005 mm, or when the receiving shop has to inspect the model. A mesh cannot carry a tolerance callout. A triangle approximation of a Ø20 mm bore is not a Ø20 mm bore, and no amount of triangle density changes that for a CNC programmer.

If the print is multi-color or needs embedded material data, use 3MF. It stores units and material assignments in the file, which removes the scale guesswork. STL has no field for either.

Scanned or topology-optimized parts often arrive as STL because that is what the software exports. Those meshes usually need repair first: flipped normals, self-intersections, open edges. A repair pass in the slicer or a mesh tool takes minutes and prevents a failed print.

For a prototype that will later be machined, the cleanest route is to keep the native CAD and export both. Print from the STL, machine from the STEP. The two files stay in sync because they come from the same source.

  • 1
    Print-only partSTL is fine and universally accepted.
  • 2
    Machined partSend STEP. Mesh files lose dimensional intent.
  • 3
    Multi-materialUse 3MF so units and materials travel with the file.
  • 4
    Scanned meshRepair normals and open edges before slicing.
Practical checks

Checks to run before you send the file

Check that the mesh is watertight. Most slicers flag this automatically, but the check is easy to miss when the model is complex. Look for open edges, non-manifold edges and flipped normals. A single flipped triangle can make the slicer treat solid material as empty space.

Confirm the scale. Measure a known feature in the slicer and compare it against the CAD model. If the part should be 120 mm long and the slicer reports 4.72 mm, the export used inches. Fix the export setting rather than scaling the mesh, because scaling a mesh introduces its own rounding.

Set a sensible triangle budget. A printable mechanical part rarely needs more than 200,000 triangles. Files above a few million triangles slow slicing and add nothing to the printed surface. Export with a chord tolerance around 0.01 mm and an angle tolerance near 15 degrees for most parts.

State the print process and material in the request. The same STL prints differently in PLA, nylon, resin and metal. Wall thickness, draft angles and minimum feature size all shift with the process. A file that prints cleanly in resin may fail in FDM because the overhangs were never designed for support.

For parts heading to CNC afterward, include the STEP file and the critical dimensions. The mesh shows shape. The STEP and the drawing show what must be measured. Both are useful, and the shop can work from whichever fits the operation.

  • 1
    Watertight checkNo open edges, no flipped normals, no self-intersections.
  • 2
    Scale checkMeasure one known dimension in the slicer before uploading.
  • 3
    Triangle budgetChord tolerance 0.01 mm, angle tolerance about 15 degrees.
  • 4
    Process statedName the printer type and material with the file.
FAQs

Common questions

Can I machine a part directly from an STL file?

It is possible but not recommended for anything with a tolerance. A mesh is an approximation of the surface, so a curved bore becomes a set of flat facets. CAM software can toolpath a mesh, and the result will follow those facets.

For critical dimensions, send the STEP file. We can machine from STEP with ±0.005 mm tolerance and inspect the finished part against the model. If only an STL exists, we can rebuild a solid model first, but that adds a step and needs your approval on the critical features.

Why does my STL look fine but the slicer shows holes?

The model likely has open edges or flipped normals. Viewers render triangles without caring about orientation, so a hole is invisible on screen. A slicer needs a closed volume, so the same hole becomes a missing shell.

Run a repair pass. Most slicers include one, and mesh tools handle the rest. If the mesh came from a scan, expect noise and small gaps and budget time for cleanup.

What triangle count should I aim for?

For a mechanical part under 200 mm, 50,000 to 200,000 triangles is plenty. The exact number matters less than the chord tolerance you set at export.

A tolerance of 0.01 mm and an angle tolerance near 15 degrees keeps curves smooth without flooding the file. Very dense meshes slow slicing and can hide problems in the noise.

Does STL support multiple materials or colors?

No. STL stores geometry only. There is no material field and no color field, so a multi-material job cannot be described in a single STL.

Use 3MF for multi-color or multi-material printing. It carries units and material assignments alongside the mesh, which removes the scale guesswork that STL leaves open.

How do I know if my STL is in millimeters?

Open it in the slicer and measure a feature you know. If a 100 mm edge reads as 3.94 in or 3.94 mm, the export used inches or a different base unit.

Fix the exporter settings and re-export rather than scaling the mesh. Scaling a mesh rescales every triangle and introduces rounding that can push tight features out of tolerance.

Can you print from a file I already have and also machine the same part?

Yes. Send the STL for printing and the STEP for machining, and note which dimensions are critical. The print validates the shape, and the machined version holds the tolerance.

If you only have one format, tell us. We review the file, flag what cannot be held, and quote from there. No minimum order quantity, from a single prototype upward.

Send your STL or STEP and get a review

We check the mesh, confirm scale and wall thickness, and return a quotation with free DFM analysis within 12 hours.

12-hour quote100% inspectionNDA on request

Trusted by engineers and manufacturers worldwide

Tesla Ford Motor Company BYD Auto Denso Magna International Boeing Airbus Medtronic KUKA FANUC