CNC file type explained
Every format in a CNC workflow carries a different kind of information, and a few of them lose data on the way. This page explains what each file type actually holds, where it fails, and which one to send when you request a quote.

In this article
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Why a CNC file type is a link in a chain, not a container
A file type is not a box that holds a part. It is a link in a chain that runs from a designer's screen to a spindle. Each link carries a different kind of information, and every handoff can drop something. A solid model knows the shape. A drawing knows the tolerances. A toolpath knows the cutter. G-code knows the motion. No single format holds all four.
This is why the same part can quote cleanly from one file and come back with questions from another. When a format cannot carry tolerances, an engineer has to infer them, and inference is where surprises start. The GD&T callouts on a print are not decoration. They decide whether a bore is reamed or bored, and whether a face is ground or just milled.
The practical rule is simple. Send the richest format you have for geometry, and send the drawing alongside it for intent. A STEP file plus a PDF print beats any single file. If you only have one, a STEP file is the safer default for 3D parts because it keeps surfaces joined and carries units.
Everything below is about the boundary between those formats: what survives a conversion and what does not.
- 1GeometryShape and nominal size. STEP, IGES, Parasolid, native CAD.
- 2IntentTolerances, datums, finish, material. Drawings and PMI.
- 3MotionToolpaths and feeds. CAM output, then G-code.
Design and geometry formats: native CAD, STEP, IGES, STL
Native CAD files (SLDPRT, CATIA, CREO, IPT) are the most complete records of a part, but they are also the least portable. Opening a native file from a different CAD package usually needs a translator, and the translator can rebuild features in a way the original designer never intended. If your shop runs the same software, native is fine. If not, export.
STEP (AP203, AP214, AP242) is the neutral exchange format for solids and assemblies. It stores analytic surfaces as true cylinders and planes rather than faceted approximations, and it carries units. For machined parts, this matters: a cylindrical bore in STEP arrives as a cylinder, so CAM software can offset it to the true tool radius. AP242 also supports PMI, so tolerances can ride along with geometry when both sides support it.
IGES is the older neutral format, built for surfaces rather than solids. It still appears in aerospace and legacy tooling work. The risk is trimming. An IGES export can leave gaps between adjacent surfaces, and CAM software then has to stitch them. A model that looks closed on screen may not be watertight. If you must send IGES, send it at the highest revision your CAD supports and check for gaps first.
STL is a mesh. It has triangles and no units, no surfaces, no features. It is the right format for 3D printing and the wrong format for CNC turning and milling. A curved surface in STL becomes a stack of flat facets; set the chord tolerance too loose and a Ø25 mm bore arrives 0.05 mm undersize because the polygon sits inside the true circle.
- 1Send STEP for 3D partsSolids, true cylinders, units carried. Best default for milling and turning.
- 2Send IGES only when requiredCheck for surface gaps before sending; legacy aerospace tooling.
- 3Do not send STL for machiningFaceted, unitless, no feature data. Fine for printing, weak for CNC.
2D formats: DXF, DWG, and PDF drawings
DXF and DWG carry 2D geometry: outlines, holes, slots, bend lines. For a flat plate, a bracket, or a sheet metal blank, that is often all the geometry a shop needs. A laser or waterjet cuts from the outline directly. For a milled profile from plate stock, the DXF defines the perimeter and the hole centers, and depth comes from the print.
The trap in DXF is layers. A file can hold the part outline, a construction line, a dimension, and a title block on separate layers, all at 1:1. If the wrong layer is read as the cut path, the machine cuts a dimension line. Clean layers before export. One layer for cut geometry, nothing else.
A PDF drawing is not geometry. It is intent. It carries tolerances, datums, surface finish, material, thread callouts, and notes about deburring or masking. Never send a PDF alone for a 3D part, and never send a 3D model alone when the tight features need GD&T. The pair is what removes ambiguity.
Watch the scale. A PDF exported at 1:1 is still a print, not a model, so nobody should trace it. If a shop has only your PDF, they will redraw the part, and redrawing introduces its own tolerances. Send the DXF with it.
- 1LayersStrip construction and dimension layers before export.
- 2ScaleExport 1:1. Note the scale in the file or the email.
- 3UnitsState mm or inch in the drawing title block.
Manufacturing formats: CAM projects, toolpaths, and G-code
Once geometry is clean, a programmer builds a CAM project. This is where stock, workholding, tool selection, stepover, and toolpath strategy live. A facing pass at 0.5 mm depth, a roughing pass at 60% stepover, a finishing pass with a 6 mm ball nose, a reaming cycle for a H7 bore. None of that exists in the CAD file.
The CAM project itself is rarely exchanged. Shops build their own, because the toolpath depends on the machines and tools on the floor. Sending a CAM file to a shop is like sending a recipe for a kitchen you have never seen.
G-code is the final output: coordinates, feed rates, spindle speeds, tool changes, coolant commands, and canned cycles, in the dialect of a specific controller. Fanuc, Siemens, Heidenhain, and Haas all read similar code with different details. G-code is machine-specific and not portable. It is also not a quoting format. A shop cannot inspect a part from G-code, only run it.
There is one valid use for sending G-code: when you own the process and the shop is running your proven program on a matched machine. Otherwise, send geometry and let the shop post its own code.
- 1CAM carries processTools, depths, stepover, workholding. Not a design format.
- 2G-code is controller-specificFanuc code is not Siemens code. Not a quoting format.
- 3Send geometry, not toolpathsLet the shop match the program to its machines.
What breaks during conversion, and how to catch it
Most file problems are not corruption. They are silent losses. A STEP to STL conversion drops everything except triangles. A solid to IGES conversion can split a closed body into untrimmed surfaces. A DXF round trip through a viewer can flatten arcs into short line segments. The part still looks right until a dimension is checked.
Units are the most common silent failure. A model drawn in millimeters and read as inches comes back 25.4 times too large. The reverse comes back as a part you could hold in a thimble. Always state units in the file name or the drawing, and check the bounding box after import against the print.
Faceting tolerance is the second. STL and some mesh exports use a chord height setting. A 0.1 mm chord height on a Ø50 mm bore leaves visible flats and a bore that measures undersize. For any cylindrical feature that will be measured, use a solid format, not a mesh.
Threads are the third. Cosmetic threads modeled in CAD are pictures, not geometry. A modeled M6 thread often arrives as a plain cylinder. The drawing callout M6 × 1 is what the shop machines, so the thread table belongs on the print even when the model shows threads.
A quick check before sending: open the file in a viewer you did not create it in. Measure two known features. If the bounding box and the bore match the print, the file is probably clean.
- 1Check bounding boxCompare model extents to the print after every conversion.
- 2Keep solids solidAvoid STL for any measured cylindrical feature.
- 3Call out threads on the printModeled threads are cosmetic, not machinable geometry.
Which CNC file type to send, by part and process
For a 3D milled or turned part, send STEP plus a PDF print. STEP keeps the solid watertight and carries units. The print carries the tolerances the model cannot express. This pair covers most work, from a one-off prototype to a 10,000-part run, and it is what we ask for first when a quote request arrives.
For a flat or sheet metal part, send DXF plus a PDF print. The DXF gives the cut outline and hole positions; the print gives thickness, material, bend radii, and finish. If the part has formed features, mark the bend lines on their own layer so they are not confused with cut edges.
For a part with freeform surfaces, like a cover or an impeller, a solid format is required. STL will not hold the surface well enough for a 5-axis finishing pass at Ra 0.8–1.6 μm. On our simultaneous 5-axis centers, the toolpath is generated from the solid, and a faceted mesh forces the programmer to rebuild surfaces first.
For a part where you already own the program, send G-code plus the setup sheet plus the print. That is the only case where G-code is a useful input. It also only works when the receiving machine matches the controller and travel.
When in doubt, send both a solid and a print, name the units in the subject line, and say which features are critical. A two-minute email saves a day of back-and-forth.
- 13D partSTEP + PDF print with GD&T.
- 2Flat or sheet partDXF + PDF print with thickness and bend data.
- 3Freeform surfacesSolid model only. Mesh formats are too coarse.
CNC file type explained: what each format carries
Match the format to the question you need answered.
| Format | Carries | Use it for | Main risk |
|---|---|---|---|
| STEP | Solids, true surfaces, units | 3D machined parts, quoting | PMI often stripped on export |
| IGES | Surfaces, legacy geometry | Aerospace, older tooling | Gaps between trimmed surfaces |
| STL | Triangles only, no units | 3D printing, visual checks | Faceted curves, undersize bores |
| DXF | 2D outlines, holes, bend lines | Plate, sheet, waterjet, laser | Wrong layer read as cut path |
| DWG | 2D and some 3D, native CAD | Shops running the same CAD | Version mismatch on open |
| PDF drawing | Tolerances, GD&T, notes, finish | Intent for every part | No geometry, must be redrawn |
| CAM project | Tools, depths, workholding | Internal shop use | Not portable between shops |
| G-code | Motion, feeds, speeds, cycles | Running a proven program | Controller-specific, no inspection |
The short answer
Send STEP plus a PDF print for 3D parts, DXF plus a print for flat parts, and keep G-code for machines you control. If a format cannot carry units and tolerances, pair it with one that can.
Questions engineers ask about CNC files
Can you machine from an STL file?
We can, but it costs more and it is less accurate. An STL is a mesh with no units and no surfaces. A programmer has to rebuild or fit surfaces before generating toolpaths, and curved features arrive faceted.
If the part has any measured bore or a mating surface, send a STEP file instead. STL is fine for a visual check or a 3D print, not for a tolerance-critical machined part.
Do you need a 2D drawing if I send a 3D model?
For a simple part with generous tolerances, a solid model is often enough. For anything with a fit, a thread, a surface finish callout, or a datum, the drawing is what tells us the intent.
A model shows nominal size only. It cannot say whether a bore is H7 or a clearance hole. Without that, we quote the looser interpretation or ask you first, and asking costs a day.
What does STEP AP242 add over AP203?
AP242 can carry PMI: dimensions, tolerances, and datum information attached to geometry. AP203 carries geometry and assembly structure but not semantic PMI.
In practice, support depends on both CAD systems. Many exports still strip PMI. If the tolerances matter, keep the PDF print in the package even when you send AP242.
Can I send G-code for you to run?
Only if the machine matches. G-code is written for a specific controller and a specific machine envelope. Fanuc code will not run unmodified on a Siemens or Heidenhain control.
Send the G-code together with the setup sheet and the print. We will confirm the controller and travel match before quoting. Otherwise, send the solid model and we post our own program.
How do I avoid unit and scale mistakes?
Put the unit in the file name, for example bracket_rev-C_mm.step, and state it in the drawing title block. After any conversion, reopen the file in a viewer and check the bounding box against the print.
A 25.4× error is the most common file mistake we see. It is also the easiest to catch in ten seconds if someone measures the model before sending it.
Which file type is best for sheet metal parts?
DXF for the flat pattern, plus a PDF print for material, thickness, bend radii, and finish. Put bend lines on a separate layer from cut geometry.
If the part will be formed, tell us the bend direction and whether the flat pattern is already unfolded. A DXF of a folded view cannot be cut directly.
Send the file, get a DFM review
Upload your STEP, DXF, or drawing and we return a quotation with free DFM analysis within 12 hours. Uploads are secure and confidential, and an NDA is available on request.
12-hour quoteFree DFM analysis100% inspection