STEP vs STL: which file should you send?

A STEP file describes your part exactly. An STL describes an approximation of it. Which one you send decides how much of your design survives the trip to the shop.

The short answer

Send a STEP file. Send an STL as well if something downstream specifically needs a mesh, which usually means 3D printing. If you're not sure which applies, send both. Both are accepted on the upload form and both get an interactive 3D preview.

This isn't a house preference. It's a consequence of what the two formats are. A STEP file carries the exact geometry of your part. An STL carries a triangle-by-triangle approximation of its outer skin, and once you've exported to STL, nobody downstream can get back what the export dropped.

What a STEP file actually is

STEP is the Standard for the Exchange of Product model data, defined by ISO 10303. It's a neutral format, meaning nearly every CAD system can write it and nearly every CAD system can read it without either side owning the other's software.

What's inside it is a boundary representation: the part is stored as mathematically defined surfaces and edges. A cylindrical hole is stored as a cylinder with a diameter and an axis, not as a ring of flat strips pretending to be round. Zoom in as far as you like and the circle is still a circle.

A STEP file also carries things a mesh has nowhere to put:

  • Assembly structure. A ten-part assembly arrives as ten named solids in their correct positions, not as one fused shell.
  • Units. The file records what its numbers mean.
  • Product manufacturing information. Dimensions, tolerances, datums and notes can be attached to the faces of the model itself rather than living only on a separate drawing.

The current converged application protocol is AP242, most recently published as ISO 10303-242:2025. It consolidated the roles of the two older protocols you may still see in your export dialog, AP203 and AP214. If your CAD offers the choice, pick AP242. AP214 is a reasonable fallback if the receiving software is old. Interoperability between CAD systems is tested in public through the CAx Interoperability Forum, run under the MBx Interoperability Forum by AFNeT, PDES Inc. and prostep ivip, which is a large part of why STEP files move between systems as reliably as they do.

One honest limit: STEP is not your native file. It carries the finished shape, not your feature tree. AP242 defines some parametric and constraint data, but in practice the editable history stays in the file your CAD saved. Keep your native file.

What an STL file actually is

An STL is a list of triangles. Each triangle is three corner points plus the direction the surface faces. That is the entire format.

It came from a specification written for 3D Systems around 1988, for early stereolithography machines, and it became the de facto format for rapid prototyping. It does that job well. The trouble is that a printing format ended up being used as an exchange format.

Because everything is flat triangles, every curved surface is an approximation. A cylindrical bore becomes a many-sided prism. More triangles get you closer to the true surface, but never onto it.

Side by side

STEP STL
Exact curves and surfaces Yes, stored mathematically No, flat triangles only
Units Recorded in the file None. The numbers are bare
Tolerances and PMI Yes, in AP242 No
Assembly structure Yes, parts stay separate and named No, one shell or a loose pile of shells
Color and material Yes Not in the standard format
Parametric feature history No, that stays in your native file No
Typical file size Moderate, and roughly fixed by part complexity Anywhere from tiny to enormous, depending on your export settings
What it's genuinely good at Machining, forming, editing, re-dimensioning, quoting Feeding a 3D printer, scan data, organic shapes

Some tools do stuff a color value into a field of the binary STL that was never meant for it. It doesn't travel reliably between programs. Don't count on it.

What gets lost when you export to STL

This is the part that matters, and it's the part most articles skip.

The exact curves go first. A bore that was 12.00 mm becomes a polygon whose faces are all slightly inside the true cylinder. If that part is going to be machined, the CAM system is working from facets. Either the toolpath inherits the faceting, or someone measures the polygon and infers what you meant. Inferring a round number is usually right. On a dimension that controls a fit, "usually right" is not what you wanted.

The tolerances go with them. An STL has nowhere to record that one bore controls a bearing fit and the other six holes are clearance. That information doesn't degrade in the export, it vanishes. So does anything that told the shop which face is the datum.

The assembly structure goes. Parts that were related to each other arrive as unrelated surfaces. Anything that was obvious from how the model was built has to be reconstructed by eye.

Editability goes. Changing a hole diameter in a solid model is a small job. Doing the same thing on a mesh means rebuilding the region and hoping the surrounding triangles behave.

Now the distinction that actually decides your export. If the part is being 3D printed, the geometry ends up as a mesh regardless. The slicer needs one. Nothing was lost that the process was going to use. But if the part is being machined, formed, welded into an assembly, or re-dimensioned by anyone, an STL asks the shop to reconstruct information you already had, from a file that was designed to throw it away.

STL isn't a bad format. It's the last step, not the exchange step. Export it when you're feeding a machine that wants a mesh, not when you're handing your design to a person who has to work on it.

The units problem, which is worse than it sounds

An STL stores bare numbers. Nothing in the file says whether 25.4 means millimeters or inches. There is no field for it.

So the receiving software applies its own default. The same file opened in two programs can be two different sizes, off by a factor of 25.4 in one direction or the other. This is not a rare edge case. It's the single most common way an STL causes a real, physical, wrong-sized part. A bracket modeled in inches, exported to STL and opened somewhere that assumes millimeters, is now roughly the size of a postage stamp.

Two habits fix it permanently:

  1. Put the units in the filename. bracket-rev-c-mm.stl costs nothing and survives every email forward.
  2. State one overall dimension in your message. "The flange is 120 mm across." That one number lets anyone confirm the scale in seconds, before it becomes a part.

STEP files record their units. That's one more reason to send one.

When STL genuinely is the right answer

  • 3D printing where the model is final. FDM, SLA and SLS all consume a mesh. We run all three in-house.
  • Geometry that was never a solid model. 3D scan data, sculpted organic shapes, topology-optimized or lattice output. Forcing that into clean surfaces can be pointless or impossible.
  • A fast visual or fit check, where you want someone to see the shape and nothing depends on the exact numbers.
  • Software that can only produce a mesh. Some tools have no STEP export. Sending what you have beats sending nothing.

Export settings, and why finer isn't automatically better

Whatever your CAD calls them, the two controls that matter are:

  • Deviation, chord height, or linear tolerance. The largest gap allowed between a flat triangle and the true curved surface it's standing in for. Smaller means the triangles hug the surface more closely.
  • Angular tolerance. The largest angle change allowed between neighboring triangles. This is what cleans up small radii and tight curvature, where chord height alone still leaves visible facets.

Dragging both sliders to the finest setting is the standard mistake. Three reasons not to:

  • Triangle count and file size climb fast, and a huge mesh slows down or defeats the software that has to open it. A file nobody can load is worse than a slightly faceted one.
  • Past a point you're describing the surface more precisely than the process can build it. On an FDM part, the layer height dwarfs the difference.
  • The gain is invisible. The faceting you could actually see was on holes, fillets and mating faces, and that's where a modest tightening already fixed it.

Practical approach: start at your CAD's normal or fine preset, look at the preview, and tighten only if you can see facets on features that matter. A small part with tight radii needs a finer setting than a large flat bracket. There's no universal number, because it depends on the size of the part, the size of its smallest feature, and the process. Also pick binary rather than ASCII STL unless you have a specific reason. Same geometry, far smaller file.

3MF and AMF, briefly

Both exist because the industry knows STL's limits.

3MF was built to carry what STL can't: units, color, multiple materials, textures and production data. It's published by the 3MF Consortium free of charge with royalty-free patent commitments, and it's now standardized as ISO/IEC 25422:2025. Most current slicers handle it. Where a mesh is genuinely the right thing to send, 3MF is a better mesh than STL, and the units alone are worth the switch.

AMF, standardized as ISO/ASTM 52915:2020, was designed with the same goal, adding color, texture, material and internal substructure. It's well specified but less widely adopted in practice.

Neither replaces STEP for anything that will be machined, formed or re-dimensioned. They're still meshes. They're just meshes that know what units they're in.

Our upload form takes STEP, STP, STL, DXF, DWG, PDF, JPG, JPEG, PNG and HEIC. If what you have is a 3MF or an AMF, export an STL from it and tell us the units, or send us a message and we'll sort out the route.

What to do if STL is all you have

This is common and it's fine. The original CAD is gone, the file came from a customer, the part was scanned, or a vendor only ever handed over a mesh.

Send the STL. It's accepted and it previews in 3D. Then add the things the format couldn't carry:

  • The units, and one known overall dimension. This is the highest-value sentence in your whole message.
  • Any drawing you have, as a PDF alongside the model, never instead of it. A marked-up sketch or a photo with dimensions written on it counts.
  • Which dimensions control fit or function, and what the part mates with. Mark the few that matter and leave the rest to a general note. That's exactly the information the STL discarded, and it's what determines how the part gets made.
  • The physical part, if you have it. We do 3D scanning, so an existing part is a legitimate starting point when there's no usable file.

If the part needs machining or re-dimensioning, the geometry may need to be rebuilt as a solid model before it can be made properly. Any required design work is reviewed and scoped before manufacturing starts, so you'll know what's involved before anything is committed.

Uploading a file is not a commitment. It starts a review. A person confirms feasibility, pricing, capacity and timing before we commit to anything.

Tolerances are reviewed per project. Tell us what your part has to fit and we'll tell you which path it takes.

Still not sure? Just ask.

Send a file, a sketch, or a photo. A person reviews it and replies the same business day — Monday to Friday, 9am–5pm Eastern.

Upload CAD