You can machine from an STL file, but only after your CAM system turns the triangle mesh into something it can cut, and only if the part tolerates it. STL works for organic shapes, scan data and artistic forms. It is a poor master file for parts with threads, tight bores, GD&T or mating surfaces, where a STEP solid is the right thing to ask for.
This guide covers what an STL actually contains, which jobs suit it, how to repair and convert one, what chordal deviation does to your finish, and how to check the toolpath before the spindle turns.
TL;DR
- STL stores a surface as triangles, with no features, threads or tolerances, so CAM has to rebuild surfaces before it can cut (source).
- Use STL for organic shapes, topology-optimized parts and scan data. Ask for STEP when the part has GD&T, threads, tight bores or mating assemblies.
- The mesh must be watertight. Holes, flipped normals or self-intersections cause failed conversions and unreliable toolpaths.
- Keep chordal deviation near 10% of the part tolerance, then simulate and prove out the program before cutting good material.
Table of Contents
- What an STL file really is
- Which parts suit STL and which do not
- The accuracy risks of machining a mesh
- How to get from STL to a toolpath
- Choosing mesh resolution and tolerance
- How to check an STL-based toolpath before cutting
- Perspective: our view on STL in a working shop
- Keeping the job together in one place
- Quick decision guide
- FAQ
- Sources
What an STL file really is
An STL file describes a surface as a cloud of flat triangles. Nothing else. There is no hole diameter, no thread callout, no datum, no tolerance, and no idea of what is a face versus an edge. A solid model in STEP carries true analytic geometry: a cylinder is a cylinder, with a radius you can query. In an STL, that cylinder is a ring of flat facets that approximates it.

That difference matters because CNC CAM software generally works on surfaces and solids. When you hand it a mesh, the system has to rebuild surfaces from the triangles before it can generate toolpaths, which can be inefficient and error-prone (GL CNC Machining). Some CAM packages machine meshes directly by working to the triangles themselves. Others require a conversion step first. Either way, the geometry you are cutting is an approximation of the design, and the approximation has an error you control.
If you want the full format comparison, our piece on STL vs STEP as a master file goes deeper. The short version: keep the solid as the master and treat STL as a derived file.
Which parts suit STL and which do not
The research on this is consistent. STL is suitable for organic shapes, artistic forms, topology-optimized parts, and scan data where no parametric CAD exists. It is generally unsuitable for mechanical parts that need tight tolerances, threads, bores or standard GD&T (GL CNC Machining).
Here is how that plays out in a shop:
| Part type | STL a good fit? | Why |
|---|---|---|
| Sculpted relief, signage, art | Yes | Freeform surface, no feature-based tolerances |
| Mold or die cavity from scan data | Often | No original CAD, surface finish matters more than feature size |
| Topology-optimized bracket | Often | Organic geometry that parametric CAD handles poorly |
| Reverse-engineered casting | With care | Scan is the only reference, so inspect against the real part |
| Housing with bored bearing seats | No | Bores need true diameters and tolerances |
| Threaded fittings | No | Threads are features, and a mesh cannot hold a thread callout |
| Assemblies with mating fits | No | Fits depend on exact, toleranced geometry |
The guidance from one machining blog puts it plainly: you can machine an STL, but use STEP for parts with GD&T, threads, tight bores or mating assemblies (GL CNC Machining). Another source says mesh geometry cannot be interpreted by CAM software the way a solid can, and recommends STEP for CNC work (Intec Mold).
If your part has GD&T, you need the model to carry it. Our GD&T symbols reference for machinists shows what gets lost when you strip a model down to a mesh, and the CAD formats that preserve PMI explains which exports keep it.
The accuracy risks of machining a mesh
Faceting and chordal deviation
Because STL approximates curves with triangles, circular and curved surfaces can appear faceted (Additive Manufacturing Media). The gap between a flat facet and the true curve is the chordal deviation. It is a primary factor in STL-based machining error, and smoothing or filter tolerances can reduce roughness in the finished part, though they have to be managed carefully so you do not give up accuracy (Southwestern Industries).
For the shop floor, this shows up as faint flats on a ball-nose finishing pass, or a bore that measures slightly out of round between facet corners. On a decorative surface, nobody cares. On a bearing fit, it is a scrapped part.
Small features get lost
For features smaller than 2 mm, mesh resolution often fails to capture the intended geometry, which makes STL risky for tight-tolerance bores and thin walls (GL CNC Machining). If a customer sends you a mesh with small details, assume those details are suspect until you have measured them against a drawing.
Bad meshes break CAM
A mesh used for machining must be watertight. Gaps or flipped normals can cause unpredictable toolpaths and make collision checking unreliable (GL CNC Machining). Bantam Tools notes that STL files vary a great deal: simple watertight meshes may convert fine, while complex meshes with holes or self-intersections may fail or crash during conversion (Bantam Tools).
The practical rule: do not trust a customer's STL until you have opened it, checked it for holes, and confirmed the units and scale. A part that imports at 25.4 times the wrong size is a classic.
How to get from STL to a toolpath
There are two routes. You either machine the mesh directly in a CAM package that supports it, or you convert it to a solid first. The conversion route is more work but gives you the full set of CAM strategies, because the system sees real faces.
Bantam Tools documents a conversion workflow that treats STL as a fallback input: repair the mesh, convert it to a shape and then to a solid, export it as STEP, import that into Fusion 360, and generate toolpaths if the solid conversion succeeds (Bantam Tools). A solid conversion that fails means you stop and fix the mesh, not push on.
A step-by-step workflow
- Inspect the mesh. Open it in a viewer, confirm units, scale and orientation, and look for holes, flipped normals and stray shells.
- Repair it. Close holes, fix normals and remove self-intersections until the mesh is watertight.
- Decide the route. If the part has features that matter (bores, threads, datums), rebuild those as proper CAD geometry over the scan or mesh, or ask for the original solid.
- Convert or import. Either convert to a solid and export STEP, or import the mesh directly into CAM.
- Set up the job. Define stock, work offset and part zero, then pick the machining operation and tool.
- Set toolpath tolerance. One Fusion 360 workflow has you open the model, configure the setup and part zero, select the model, operation and tool, set the toolpath tolerance and post-process the G-code (drag&bot Help).
- Simulate and prove out. Covered below.
If you are going the other direction, from a solid to a mesh for viewing or printing, see our guide to STEP to STL conversion.
Choosing mesh resolution and tolerance
This is where most STL jobs are won or lost. A common rule is to keep chordal deviation near 10% of the part tolerance. For a part held to ±0.05 mm, that means a chordal deviation around 0.005 mm (GL CNC Machining).
In US shop terms, a ±0.002 in tolerance would call for roughly 0.0002 in of chordal deviation using the same 10% rule. That is our arithmetic applied to the rule above, not a published inch standard, so treat it as a starting point.
There is a trade-off. More and smaller triangles reduce faceting, but they increase file size and can introduce errors into the STL (Additive Manufacturing Media). CAM tolerance and smoothing settings also affect toolpath accuracy, surface finish, file size and processing time (Southwestern Industries).
A workable approach:
- Roughing: loose tolerance. Faceting is irrelevant because you leave stock.
- Semi-finishing: tighten to the level where scallop and mesh error are both under your stock allowance.
- Finishing: tolerance near 10% of the part tolerance, with a mesh dense enough to support it.
Do not set a CAM tolerance tighter than the mesh can support. If the mesh itself has 0.01 mm of chordal error, asking CAM for 0.001 mm gives you huge programs and no better part.
Finishing pass spacing interacts with this too. Our notes on toolpath optimization and scallop tuning and radial engagement at 10% stepover show how stepover and tolerance combine on 3D surfaces.
How to check an STL-based toolpath before cutting
Mesh-based programs deserve more verification than a clean solid job, because the geometry itself can hide faults. Use this order:
- Compare the stock model to the mesh. Confirm the mesh sits inside your stock with margin on every side, and that your part zero matches the physical setup.
- Run a material-removal simulation. Look for gouges, uncut areas and collisions with the holder, fixture and vise. Mesh holes can make collision checking unreliable, so a clean simulation on a bad mesh proves little.
- Read the G-code. Scan for rapid moves near the part, unexpected tool changes, and feed rates that do not match your plan. Our G-code generator and the G-code analysis in the platform help here.
- Check the cutting load. Long tools reaching into deep 3D pockets deflect. Run the numbers in a tool deflection calculator before you trust a finishing pass, and read why deflection scraps parts.
- Prove out on cheap material. Run the first part in foam, wax or plastic, or air-cut above the work with the Z offset raised, and measure what you can.
- Inspect the first article. Measure the critical dimensions against the drawing, not against the mesh. The mesh is not the authority on tolerance.
Perspective: our view on STL in a working shop
We build tools for machinists, and most of the STL trouble we hear about is a handoff problem, not a software problem. Someone exports a mesh because it is easy, the feature data is gone, and the shop is left guessing at a bore size or a thread pitch.

Our position is simple. Keep a solid as the source of truth, and treat STL as a derived file for viewing, printing, scanning workflows and sculpted surfaces. When a customer sends only a mesh for a part with real tolerances, ask for STEP and a drawing before you quote. When the mesh is all there is, say so on the traveler, tighten your inspection plan, and log which file revision you cut from.
That last part is where a shop's records matter. Which file did you program from, which setup, which tool lives in which pocket, and how did the first article measure? A single cloud-synced place for the model, the calculations and the job notes is what keeps those answers from living in someone's head. Our write-up on integrating a CAD/CAM workflow lays out how we think about that handoff, and the benefits of cloud CNC software covers the rest.
— Availzye
Keeping the job together in one place
Mesh jobs create more loose ends than most: the original scan, the repaired file, the converted STEP, the CAM setup, the speeds and feeds and the inspection notes. Availzye Machinist Pro puts the calculators and the shop records in one cloud application. You can view CAD files with the CAD viewer, which includes STEP-to-STL conversion, track the work order in the Job Tracker, and log tools and wear in the Tool Crib.
Plans are Individual at CA$9.99 per month, Small Shop at CA$24.99 per month and Team at CA$49.99 per month, each with a 7-day free trial. See the details on the plans page.

Quick decision guide
Use this when a file lands in your inbox:
- You have a STEP and a drawing. Program from the STEP. Done.
- You have only an STL, and the part is sculpted or organic. Check the mesh, set tolerance near 10% of the part tolerance, and machine it. Verify the first article.
- You have only an STL, and the part has bores, threads or GD&T. Ask for the solid. If none exists, rebuild the critical features in CAD and treat the mesh as a reference only.
- You have a scan of a worn part. Use it as a reference to model the intended geometry, not as the thing to cut, unless the worn shape is the goal.
- The conversion to a solid keeps failing. Go back to mesh repair. Failed conversions usually point to holes or self-intersections.
For tolerance decisions on the rebuilt model, our ISO tolerance table worked example helps you choose fits you can actually hold.
FAQ
Can a CNC machine run an STL file directly?
No. The machine runs G-code. An STL has to pass through CAM software, which generates the toolpaths and posts them as G-code. Some CAM systems work on the mesh directly, others require converting it to a solid first.
Is STL good enough for tight-tolerance parts?
Usually not. STL has no features or tolerances, and small details under about 2 mm can be poorly captured (GL CNC Machining). For bores, threads and GD&T, ask for STEP.
What chordal deviation should I use?
A common starting point is about 10% of the part tolerance, so 0.005 mm for a ±0.05 mm part (GL CNC Machining). Finer settings grow file size and processing time, so tighten only where the surface needs it.
Why does my STL fail to convert to a solid?
Usually because the mesh has holes, flipped normals or self-intersections. Complex meshes with these faults may fail or crash during conversion (Bantam Tools). Repair the mesh until it is watertight, then try again.
Should I send an STL or a STEP to a machine shop?
Send STEP whenever your CAD can export a solid (GL CNC Machining). Send STL only for organic shapes or when a mesh is all you have, and include a drawing for anything toleranced.
Sources
- How to Make an STL File for CNC Machine Work, GL CNC Machining
- Understanding 3D STL Files for CNC Machining, GL CNC Machining
- Converting STL Files to G-code, Bantam Tools
- The STL File Can Produce Surface Defects, Additive Manufacturing Media
- Understanding CAD CAM Generated Meshes, Southwestern Industries
- CNC Machining CAD File Formats, Intec Mold
- Use Autodesk Fusion 360 to generate G-Code, drag&bot Help
