STEP→STL Your file stays in this tab · nothing is uploaded

Does a STEP file look wrong?

This question keeps arriving on 3D printing and CAD forums, so it gets its own page. Every number below was measured on the machine that wrote it and is re-checked by npm test. Nothing here is a rule of thumb.

The short answer

A faceted STEP file is normal, and it is not broken. A STEP file stores geometry as exact mathematical surfaces. It contains no triangles at all. Every flat panel you can see was invented by whichever tool tessellated it, and how many panels it chose is a quality setting, not a fact about your file. That is why the same STEP file can look smooth in one program and visibly faceted in another, and neither one is corrupt.

So there is a real answer to “is this file wrong”, but you cannot get it by looking at the curved surfaces. You get it by looking at the flat ones.

1. Judge the flat parts, not the curved ones

A plane face needs no approximation, so a tessellator reproduces it exactly and always spends the same amount on it: two triangles. If a flat face in your file is showing more than that, or is not flat at all, the file genuinely has something wrong with it. Curved faces tell you nothing about file health, because they have to be approximated by someone.

This is measured on our own test files. The flat cubes — the same solid in STEP, in IGES, and in a simplified variant — return 12 triangles at Draft, Normal and Fine alike. The three settings are indistinguishable on a flat part. That number is the floor for any closed solid: a cube has six faces of two triangles each, and no closed solid can be built from fewer.

A flat face costs two triangles at every quality setting, while a curved face costs hundreds Two rows of bars. The first row is a flat cube measured at 12 triangles under Draft, Normal and Fine, with three identical bars and a ratio of 1.0 times. The second row is a conical surface measured at 286, 516 and 2,142 triangles, a ratio of 7.5 times. Each row is scaled to its own first bar, so the rows are not on a shared axis. Flat stays 12. Curved moves 7.5×. Draft Normal Fine Flat cube 12 12 12 1.0× Cone 286 516 2,142 7.5× Each row is scaled to its own Draft bar. 2,142 and 12 cannot share one axis, so the two rows are never drawn to the same scale — read the ratios. A flat face is stored exactly; only a curved face has to be invented.
One row is a health check, the other is a quality dial. The flat cube reads 12 under all three settings, so the setting cannot change a planar face and any extra geometry on a flat face is a fault in the file. The cone reads 286, 516 and 2,142, a factor of 7.5 from Draft to Fine, so on a curved face the same file legitimately produces very different meshes. Both rows are drawn to their own first bar, which is why their bar lengths are not comparable — the ratios within a row are the measurement.

2. Why the same file looks different in different programs

Nothing is changing between the programs; they are choosing differently. CAD packages routinely tessellate finely for the screen, where shading hides the facets, and more coarsely for export, where triangle count costs money. Some reuse a cached preview mesh. The result is a file that previews smooth and exports visibly faceted, which reads as damage and is not.

The lever is the export tessellation setting. Raising it is the same decision as moving up a quality preset here: the available range on our conical surface is 286 to 2,142 triangles, Draft to Fine. If the exported result looks worse than the preview, that gap is what you are fighting, and closing it means raising the setting rather than repairing the file.

3. What the conversion actually costs you

One thing, and it is worth being exact about. The exact surfaces are replaced by flat facets, so the shape becomes an approximation of itself. Nothing else is lost, and the STEP file you started from is never modified.

How closely the facets follow the real surface is the only question, and it is measurable. On a rounded cube the three settings give 40, 56 and 140 triangles. On a flat cube they give 12, 12 and 12, because a plane face needs no approximation at all. The same pattern holds on the 18-part assemblies, which go from 3,848 to 17,848 triangles on one file and 4,900 to 21,116 on another — both at Normal to Fine.

An exact cylinder and the same cylinder rebuilt from straight segments On the left a smooth cylinder outline labelled exact, stored once as a radius and a height. On the right the same outline drawn as eight straight segments labelled approximated, where each segment is one triangle edge. The two outlines enclose the same area; only the right one is made of flat pieces. The file stores the left shape. You see the right one. radius and height stored once, exactly no triangles in the file at all 8 straight segments how many you get is a quality choice, made at export time — not something the file did Both outlines enclose the same solid. Only the right one is made of flat pieces.
The gap between what is stored and what is drawn. On the left is what a STEP file actually contains: a cylinder held as a radius, a height and a position, with no triangles anywhere in it. On the right is what any viewer or exporter has to draw instead — straight segments, one per triangle edge. They enclose the same solid. The visible faceting is the cost of drawing an exact shape with flat pieces, and it is not a defect in the file you started from.

4. A low triangle count is not itself a warning

Triangle count follows curvature, not file history. A flat cube is 12 triangles however it was exported and at whatever setting, and a curved part can legitimately be a few hundred. So a small number on its own tells you nothing about whether the file was simplified or damaged.

What would matter is a small count on a part that should carry curved detail, or a shell that does not close. Both are checkable without a reference model: the triangle count is recoverable from the output file size alone, because a binary STL is exactly 84 + 50 × triangles, and the edge count tells you whether every edge is shared by exactly two triangles. A 12-triangle cube is 684 bytes and closes with 18 edges.

The whole thing on one screen

What a faceted STEP file means, by observation
Faceted curvesExpected. A STEP file stores no triangles, so the facets were chosen by the tool that drew it. Not damage.
Faceted flat facesA real fault. A plane face needs no approximation and must read 2 triangles per face.
Flat cube, any setting12 triangles. The setting cannot change a planar face, so this number is constant.
Cone, Draft to Fine286, 516 and 2,142 triangles — a factor of 7.5. This is the quality dial working normally.
Preview vs exportDifferent tessellation settings, not damage. Raise the export setting to close the gap.
Open shellThe one thing worth ruling out. Count edges: every edge used exactly twice means closed.

If the flat faces are flat, the shell closes, and the size matches the triangle count, then a faceted STEP file is a normal file that has been drawn with flat pieces — which is the only way any viewer can draw it.

Where these numbers come from

The format comparison covers why the conversion only runs one way, and the verification page has all five checks. The converter reports the bounding box, triangle count and piece count for your own file after every run.