A designer exported a curved impeller housing using SolidWorks' default 0.5 mm chord height tolerance, resulting in a 4.3 MB, 112,000-face STL. When printed with SLS, the leading edges of the blades had 0.6 mm high facets. He reduced the chord height to 0.02 mm, and the same file grew to 210 MB. The slicing software took seven minutes, and the printer buffer even ran into issues. Finally, he found the sweet spot at a 0.05 mm chord height: the facets were reduced to 0.04 mm (below the native SLS resolution), the file was 42 MB, and slicing took two and a half minutes. He didn't change the machine, material, or slicer—he changed the export tolerance.
STL export operates within a very narrow sweet spot: it needs to be coarse enough for quick slicing yet fine enough to preserve geometry. Failing on either side means either printing polygonal surfaces or wasting an hour waiting for a level of detail the printer can't even resolve.
This article treats STL as a deliberately planned export product, not just a pile of random triangles. Every decision at the CAD end (tolerance, units, normals, watertightness) corresponds to a specific result on the print bed, for better or worse.
Comparison of STL with New Generation Formats
By 2025, STL will be 37 years old. It only stores triangle vertices and normals, without units, color, material, lattice, or assembly information. 3MF and AMF fill these gaps; STEP retains precise B-rep but cannot be directly read by slicing software. The choice depends on whether the downstream toolchain supports it.
| Format | Geometry Type | Information Included | Best Use Case | Limitations |
|---|---|---|---|---|
| STL | Triangular Mesh | Vertices, Normals | General Slicer Input | No units, color, metadata |
| 3MF | Triangular Mesh + XML | Units, Color, Material, Supports, Print Parameters | Modern FDM/SLA/MJF with Slicer Support | Requires newer toolchain |
| STEP | B-rep Solid | Precise Surfaces, Assemblies, Tolerances | Design Handover, Reverse Conversion | Slicing software cannot directly read |
| OBJ | Polygon Mesh | Vertices, Normals, Textures, Materials | Full-color Visualization, Color MJF | Larger files, most slicers don't natively support |
| AMF | Triangular Mesh + XML | Units, Materials, Surface Triangles | Research and Lattice Workflows | Ecosystem support still weak by 2026 |
Chord Height Tolerance, Face Count, and File Size
Chord height tolerance (also known as chord height or deviation) refers to the maximum distance between a triangle face and the true CAD surface. Halving the tolerance approximately quadruples the number of faces on the surface. This non-linear cost is what most people don't anticipate when exporting for the first time.
Angular tolerance (the maximum angle between adjacent face normals) is the second knob. 10 degrees is coarse, 5 degrees is normal, and 1 degree is high fidelity. Most CAD software allows setting both parameters simultaneously.
| CAD Software | Parameter Name | Default Chord Height | Recommended Print Value | Notes |
|---|---|---|---|---|
| SolidWorks | Deviation / Angle | Approx. 0.15 mm / 30 degrees | 0.02 mm / 5 degrees | Use binary STL; 'Fine' default is coarse |
| Fusion 360 | Refinement Default | Medium | High or custom 0.05 mm | For parts over 200 mm, use custom settings |
| Creo | Chord height / Angle control | Auto | 0.03 mm / 1 degree | Set "Step size" simultaneously for uniform facets |
| NX | Triangle tolerance / Adjacency | 0.08 mm | 0.02 mm | Enable Auto Normal Gen |
| Inventor | Surface deviation | Medium | High + custom 0.025 mm | Use binary + mm |
Common STL Errors and Corresponding Failures
Slicing software interprets STL as a closed volume. Any flaw that compromises watertightness will cause the slicing software to guess incorrectly, reject the file outright, or silently print hollow areas. These four types of errors account for about 90% of rejections on MJF and SLA online platforms.
| Error | Description | Downstream Consequence | Common CAD Cause |
|---|---|---|---|
| Non-manifold edges | Same edge shared by more than 2 faces | Slicer rejection or garbled print | |
| Flipped normals | Triangles facing inward | Slicer flips inside out | Unrepaired after mirroring, Boolean failure |
| Mesh holes | Missing triangles | Slicer fills with garbage faces | Subdivision failure at sharp fillets |
| Self-intersections | Triangles passing through each other | Double walls or volume errors | Multiple solids not merged |

Units are the most inconspicuous and potentially disastrous trap. STL does not carry unit tags: the number 25.4 could represent 25.4 mm, 25.4 inches, or even 25.4 meters (this has happened). The slicer only sees numbers and can only guess. The easiest error-prevention strategy is to force the entire document to millimeters before saving, rather than relying on "export conversion."
| Source CAD Units | Slicer Units | Result | Avoidance Method |
|---|---|---|---|
| Inches | mm | Dimension magnified 25.4 times | Switch CAD to mm before export |
| Meters | mm | Dimension magnified 1000 times | Change document units, not just view |
| mm | mm | Correct | Orinovate Standard Process |
| cm | mm | Dimension magnified 10 times | Reject cm templates in CAD |
Selecting Export Settings Based on Part Size and Detail

One set of tolerances cannot cover all parts. A 6 mm snap hook requires a finer mesh than a 400 mm housing wall. Tolerances should follow the smallest feature and largest radius on the part, not the bounding box.
| Part Category | Bounding Box | Chord Height Tolerance | Angular Tolerance | Typical Face Count |
|---|---|---|---|---|
| Micro-parts / Jewelry | < 30 mm | 0.005 mm | 1 degree | 80k–300k |
| Functional Prototypes | 30–150 mm | 0.02 mm | 5 degrees | 150k–500k |
| Housings | 150–400 mm | 0.05 mm | 5 degrees | 200k–800k |
| Large / Architectural Parts | > 400 mm | 0.1 mm | 10 degrees | 300k–1.5M |
Use Cases
Ridges on SLS-printed Impeller
An aerospace supplier shipped 18 nylon impellers for flow path testing. The CAD model had intake blades 12 mm wide with a 3 mm chamfer; Creo exported the STL with default "Auto" settings (0.08 mm chord height, 10-degree angle). The printed blades exhibited 0.4 mm high ridges on the leading edges, which directly interfered with the flow field signals on the test stand.
Key design action: Reduced the chord height tolerance to 0.02 mm and angular tolerance to 1 degree, ensuring the ridge height was below the printer's native XY resolution (MJF commonly 80 microns). The file size increased from 6 MB to 41 MB, but the reprinted impeller passed flow path repeatability verification on the first attempt.
Key takeaway: The subdivision precision of aerodynamic surfaces is a functional specification, not an aesthetic preference.
Medical Stent Rejected Due to Non-Manifold Edges
A surgical jig submitted to a Class I printer was automatically rejected three times. The culprit was two zero-thickness auxiliary surfaces left over from an early sweep, which created 14 non-manifold edges along an internal channel. SolidWorks' built-in "Check STL" immediately found all 14. After deleting the phantom surfaces and re-exporting, the file was successfully uploaded.
Consumer Electronics Project Adopts 3MF
A wearable device team produced 40 STL versions weekly. After switching to 3MF in Q1 2026, the average file size dropped from 58 MB to 11 MB (a reduction of approximately 80%). 3MF compresses the mesh and embeds color and print parameters, eliminating the need to save slicing settings for each version.
Do's / Don'ts Checklist
| Do | Don't | Reason |
|---|---|---|
| Use binary STL | Ship with ASCII STL | Binary is 5–8x smaller, loads faster |
| Set document units to mm | Let the slicer guess | STL has no unit tag |
| Run watertightness check before export | Judge by sight only | Gaps below 0.05 mm are not visible on screen |
| Adjust chord height based on smallest feature | Use one tolerance for all parts | Micro-features require micron-level mesh |
| Retain native CAD files | Archive only STL | STL is a lossy format, cannot be reverse-engineered for modification |
| Check normals after mirroring or Boolean operations | Trust CAD to handle automatically | Mirroring often flips half of the shell |
| Label filename with version and units | Use generic "part.stl" | Avoid unit and version confusion |
Common Errors and How to Avoid Them
| Error | Why it Fails | Avoidance Method |
|---|---|---|
| Exporting with defaults | Defaults are for visualization, not printing | Manually change to 0.02 mm chord height / 5 degrees |
| Mixing mm and inches within an assembly | Each part inherits its own units upon export | Force entire assembly to mm before "save-as" |
| Skipping watertightness check | 10-micron gaps can break slicer volume logic | Use Netfabb, Meshmixer, or built-in checks |
| Over-subdividing a 300 mm wall | Flat surfaces only need two triangles | Use adaptive subdivision, not uniform |
| Ignoring flipped normals after mirroring | Inner surfaces are treated as outer surfaces | Check with normal-shaded view first |
| STL without versioning notes | Manufacturer cannot distinguish v3 from v7 | Include version in filename and model notes |
Pre-Export Checklist
Perform these eight checks before exporting any production STL. Each takes less than two minutes but can prevent failure modes that would consume days at the manufacturer's end.
- Set document units to mm and confirm in the title bar
- Delete all auxiliary surfaces, sketches, and zero-thickness solids
- Pass watertightness / non-manifold checks within CAD
- Align chord height to the smallest feature, angle 5 degrees or finer
- Check mirrored and Boolean results with normal shading
- Select binary STL, not ASCII
- Filename includes part number, version, and unit notation
- Archive native CAD files and STL in the same folder
Key Design Takeaways
Good STL output comes from three small habits: deliberately setting units, determining subdivision density based on the smallest feature, and validating watertightness before sending. The format itself is also important; if your slicing chain supports it, 3MF can resolve the unit and metadata issues that STL has carried for 37 years. Treating STL as a specified export product, rather than just a "save" button, will make the entire additive manufacturing process much smoother.
0 comments