How to Correctly Create an STL File for 3D Printing in CAD

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

Leave a comment

Please note, comments need to be approved before they are published.