My DXF is the wrong size at the cutter
If the part came out exactly 25.4 times too big or too small, this is not a scaling mistake. It is a units declaration your file never made — and two importers guessing differently.
Start with the ratio
Measure a known dimension on the cut part and divide it by what you designed. The number tells you what happened:
- 25.4 or 1/25.4 — millimetres and inches were confused. This is by far the most common.
- 10 or 1/10 — centimetres and millimetres.
- 304.8 or 1/304.8 — feet and millimetres.
- Anything else, or not a clean ratio — this is a different problem. Look at your export scale setting or at the drawing itself, not at units.
A clean conversion ratio is diagnostic. It means every coordinate in your file was correct and something downstream simply interpreted the numbers in the wrong unit.
What actually went wrong: $INSUNITS
A DXF stores coordinates as bare numbers. A line 100 units long is just 100 — the file has to say separately what a unit means. That declaration is a header variable called $INSUNITS, and it is a single integer:
| Value | Means | What happens next |
|---|---|---|
| 0 | Unitless | The file makes no claim. Every importer decides for itself. |
| 1 | Inches | Unambiguous. |
| 2 | Feet | Unambiguous. |
| 4 | Millimetres | Unambiguous. What most flat-cut work should use. |
| 5 | Centimetres | Unambiguous, and the usual source of a 10× error. |
| 6 | Metres | Unambiguous. |
Zero is the dangerous value, and it is extremely common. A unitless file is not broken — it is silent. It looks completely normal in every viewer, because a viewer just draws the numbers.
It is often not your fault
Your CAD tool can be set to millimetres, your drawing can be dimensioned in millimetres, and the exported DXF can still declare inches. This is a well-documented behaviour in real tools. From the Onshape forum, a user describing it precisely:
“If my model has a dimension of 25.4 mm their software is reading this via my dxf file as 1 — ie the dimension is still correct but in the dxf file it has been converted to inches.”Onshape forum, “DXF file export in wrong units”
The replies identify the cause: the exporter wrote a fixed $INSUNITS value regardless of the document’s units. The geometry is right. The label on it is wrong. The same class of complaint appears for other exporters. This is why checking the file you are about to send matters more than checking the document you drew.
What importers do with a unitless file
They guess — and they do not guess the same way. Xometry publishes its rule: files exceeding 48.5 units are treated as millimetres, files under 1 unit as inches, and anything else is preserved as-is (Xometry DXF guide).
That heuristic is sensible and it is also a trap. A 40 mm bracket is under the 48.5 threshold, so a unitless file describing it does not get read as millimetres. A 2-inch part is above 1, so it is not read as inches either. Small parts land exactly in the ambiguous band — and small parts are most of flat-cut work.
Now send the same unitless file to a second service with a different rule and you get a different part. Neither of them did anything wrong. Your file did not say.
How to check, in about thirty seconds
A DXF is a text file. Open the exported .dxf in any text editor and search for $INSUNITS. You will see something like this:
$INSUNITS
70
4The integer on the third line is the answer — 4 here, so millimetres. If it is 0, or if $INSUNITS does not appear at all, your file is unitless and every downstream tool is guessing.
The extension does exactly this check and refuses to issue a verdict on a unitless file until you declare the units yourself. It will not guess for you, because guessing is the failure mode this whole article is about.
How to fix it
- Set it in the export, if your tool lets you. Look for a units field in the DXF export options and set it explicitly rather than relying on the document setting.
- Edit the header directly. Since DXF is plain text, you can change the integer under
$INSUNITSto 4 for millimetres or 1 for inches. This is a real fix and it is what the Onshape thread’s participants resorted to. Change only that number — do not reformat or re-indent the file. - Tell the recipient. If you cannot change the file, state the units in writing when you send it and ask them to import with those units forced. Do not assume it is obvious from the part.
- Include a reference dimension. Note one known measurement in your message — “the outer plate is 120 mm wide.” It takes the recipient five seconds to verify and catches every scale error before material is committed.
The honest summary: a units declaration is a claim the file makes, and no tool can verify that claim against your intent. What a checker can do is refuse to pretend a silent file said something. That is the whole safeguard, and it is why the extension makes you declare units rather than assuming millimetres.
Reads the DXF header locally and will not issue a verdict on an undeclared file.