Exporting for print
You've finished modeling. On screen, your part is exact geometry: a cylinder is a cylinder, a fillet is an arc with its precise radius, a curved face is a surface defined by an equation. The slicer understands none of that. What it needs is a mesh of triangles wrapped around your part like a skin, and exporting is just the act of translating that smooth geometry into flat triangles. Do it well and the file slices cleanly; do it badly and you end up with faceted curves, a bloated file tens of megabytes in size, or a mesh the slicer rejects — or, worse, silently repairs in a way you didn't intend.
You export a mesh, not your model
When you export for print, you don't send your part — you send a polygonal approximation of its surface. The process is called tessellation, and it amounts to covering each face with triangles. A flat face is handled by two triangles and comes out perfect because a plane is flat. The trouble is curves: no finite number of flat triangles reproduces a cylinder or a sphere exactly. You can only get close, by chopping the curve into ever-smaller facets.
That means tessellation throws away everything that made your model parametric — the history, the parameters, the equations of the faces — and leaves just one thing behind: a closed surface made of triangles. It's exactly what a slicer knows how to process, which is why STL and 3MF are the universal print formats. But it's also why the quality of the file depends entirely on how you choose to chop those curves.
Tessellation has one knob: chord deviation
The number that governs all of this is chord deviation: how far a flat triangle is allowed to stray from the real curved surface it's standing in for. Picture a chord — the straight line between two points on a curve. The maximum distance between that chord and the curve is the error you tolerate. The smaller you set it, the more triangles it takes to stay within that margin, and the more faithfully the mesh hugs the part.

There's a second common control, angular tolerance, which caps how many degrees the surface normal may turn from one triangle to the next. Chord deviation governs large curves; angular tolerance handles small details, where an absolute deviation of a few hundredths of a millimeter would leave a corner with only two or three facets. In practice you work almost entirely with chord deviation and let angular tolerance act as a safety net.
The trade-off is real, but — and this is the key — the defect a given deviation produces depends on the size of the feature, not just the number you type:
| Chord deviation | What you get | Cost |
|---|---|---|
| Too coarse (≳ 0.1 mm) | Curves that turn into visible polygons: small holes with few faces, stepped fillets | Tiny file, ugly print |
| Balanced (~0.01–0.05 mm) | Smooth curves at print scale | The sweet spot for almost everything |
| Too fine (≲ 0.005 mm) | Smoothness you can no longer see | Tens of MB, slow import and repair, zero visible gain |
Don't overdo tessellation: match deviation to the feature's real size
The temptation is to drop the deviation to the minimum "just in case." It's a mistake that adds cost and buys nothing. Past a certain point, adding triangles changes nothing you can see or print: your printer lays down a bead about 0.4 mm wide and positions itself in micron steps, so a facet whose deviation sits well below the bead and the layer height is invisible on the finished part. The difference is that the fine mesh can multiply the triangle count tenfold, bloat the STL to tens of megabytes, and make the slicer crawl when loading it — and, if it's short on memory, fail to open it at all.
The key is that chord deviation is an absolute error, in millimeters, not a percentage of the part's size. A deviation of 0.02 mm on an 80 mm diameter cylinder is invisible and yields hundreds of facets; that same deviation on a 2 mm hole is a far larger fraction of its radius and gives it about fifteen facets instead of hundreds. Raise the deviation to 0.1 mm and that same 2 mm hole drops to half a dozen faces and looks like a polygon; on the 80 mm cylinder, by contrast, 0.1 mm still yields dozens of sides and is barely noticeable. That's why there's no single good number: match it to the smallest detail that matters. For hand-scale parts, a deviation of 0.01–0.05 mm covers almost everything. If a part has a tiny hole or fine engraving, lower the deviation for that feature, not for the whole geometry.
The deviation has to be smaller than your thinnest wall
There's one case where under-tessellating doesn't just make the part ugly: it breaks it. If the chord deviation is larger than the thickness of a wall or the width of a feature, the triangles on the two opposing faces of that wall are computed so far from the real surface that they cross each other. The mesh self-intersects: the skin of one face passes through the skin of the other, and the slicer can no longer tell inside from outside, exactly where the wall is thin.
This can happen even when your solid is flawless, because the problem is created by the tessellation, not the model. The rule is simple: the deviation must be comfortably smaller than the part's thinnest feature — the wall thickness, the depth of an engraving, the width of a slot — not just smaller than what's visible to the naked eye. In practice, with deviations of 0.01–0.05 mm and reasonable print walls (a couple of beads, ~0.8 mm) you have plenty of margin; the risk shows up when you combine a generous deviation with a single-bead wall.
3MF closes the units gap
STL does its one job well — it describes a skin of triangles — but it carries a legacy shortcoming: it stores no units. An STL is just a list of coordinates; if you modeled in millimeters and the slicer assumes inches, it reads the 40 of your 40 mm part as 40 inches — 1016 mm, over a meter: the part is blown up by a factor of 25.4. The failure isn't always obvious until the print goes wrong or the spool runs dry. Most slicers today assume millimeters by default, so the case is less common than it used to be, but it's still one of the most repeated and most absurd errors in 3D printing, and it's born from a format designed without it in mind.
3MF removes the ambiguity. It's a modern container that holds the same triangle mesh inside, but accompanied by explicit units, scale, and color, plus metadata STL can't carry. The mental model is identical — triangles wrapping a solid — but the file describes itself: there's no ambiguity about how big it is or in what system. If your slicer supports it, export 3MF: you eliminate a whole family of scale and unit errors at the root, and it costs you nothing.
Watertight and manifold, or the slicer rejects it
Having triangles isn't enough. For a slicer to fill a part, it has to know without ambiguity what's "inside" and what's "outside," which requires the mesh to meet two conditions:
- Watertight: no holes in the skin. Every triangle edge is shared with exactly one neighbor, so no gap is left for the interior to "leak" out. A mesh with a hole is like a container with a leak: the slicer doesn't know how far to fill.
- Manifold: the surface bounds a geometrically valid solid. No inverted normals — triangles facing the wrong way — no edges where more than two triangles meet, no self-intersections where the skin passes through itself.
A mesh that fails either one gives the classic symptoms: missing top faces, a part sliced inside out, walls in impossible places, or — if you're lucky — a flat refusal to slice. If you're less lucky, the slicer tries to repair it on its own, and it patches in geometry you never modeled.
Where a clean mesh comes from
The good news, and the reason parametric CAD is worth it, is that a clean solid tessellates into a clean mesh. If your part is a single well-formed body and your deviation is smaller than the thinnest feature, tessellation produces a watertight, manifold surface with nothing for you to watch for. Correct geometry in, correct mesh out.
Problems almost always arise before tessellation, in poorly configured boolean operations. When you union or subtract bodies that share an exactly coincident face, or that overlap by an infinitesimal gap, the result can come out ill-defined — surfaces that almost touch but don't, and that, when tessellated, leave self-intersections or zero-area triangles. The fix isn't in the export, it's in the model: make bodies that should overlap actually overlap, by a real, generous amount — 0.1 mm, not an exact mathematical contact — and the resulting mesh is solid. Keep in mind that this overlap is deliberate and adds material, so place it where it won't interfere with a fit dimension — bury those tenths of a millimeter inside the joint. Those tenths of overlap that look like an oversight are exactly what keep the boolean from producing unusable geometry.
With a clean solid, the deviation matched to the part's thinnest feature, and the right format, the file you hand to your slicer will be one it can rely on.
