Why an STL is the wrong size in the slicer, and how to fix it
The bracket is two inches long and the slicer shows a sliver 2 mm long, or the model you downloaded fills the whole bed and then some. Nothing is wrong with the file. It never said what its numbers were in.
Written · Updated
An STL file has no units. It is a list of triangles, and each corner is three plain numbers; there is no field anywhere in the format for millimetres or inches. Slicers read the numbers as millimetres. So a part designed in inches and exported as it stands arrives 25.4 times too small, and one exported in metres arrives a thousand times too small. Fix it in the slicer by scaling by 2540% (or with PrusaSlicer's own inch conversion), or avoid it next time by exporting 3MF, which states its unit, or by exporting the STL in millimetres from the CAD program.
Why the file cannot tell the slicer
STL comes from 1987 and has two forms, text and binary, and neither has anywhere to put a unit. A binary STL is an 80-byte header, a count, and then fifty bytes per triangle: a normal and three corners, each as three 32-bit numbers. The header is free text that nobody is obliged to read. So when your CAD program exports "in inches", all it can do is write the numbers as they are in inches, and the slicer, having no way to know, reads 2.000 as 2 mm.
That is also why the error is always a round ratio. Work out what the slicer shows divided by what it should be:
| The slicer shows | It was exported in | Scale by |
|---|---|---|
| 25.4 times too small | Inches | 2540% |
| 10 times too small | Centimetres | 1000% |
| 1000 times too small | Metres | 100000% |
| 25.4 times too big | Millimetres, then read as inches somewhere | 3.937% |
Fix it in the slicer
- Any slicer: select the model, open the scale tool, keep uniform scaling on, and enter the percentage from the table. Check one dimension you know afterwards.
- PrusaSlicer: since version 2.3 it notices a model that loads very small and offers to convert it from inches, and the object's right-click menu has Convert from imperial units, which multiplies by 25.4 for you.
Scaling is exact: 25.4 is the definition of an inch, not an approximation, so nothing is lost. What scaling cannot fix is a model that was designed at the wrong size in the first place, and the round-number test in the table tells you which you have.
Stop it happening
- Export 3MF instead. A 3MF file declares its unit in the model itself, and current slicers read it. It is also smaller than an STL and can hold several parts and colours.
- Or export the STL in millimetres, whatever units you design in. Most CAD programs have a unit choice in the STL export dialogue that is separate from the units you draw in.
- Downloading a model? Check its stated size on the listing against what the slicer shows before you print. A large model that fills the build plate was probably drawn in inches and scaled the wrong way by someone along the way.
In the Engineering Suite
The Engineering Suite reads an STL into a solid you can join, cut and measure, so the question of units comes up on the way in. When a mesh is imported, it now says how big the part came in, in millimetres, and if that is under 12 mm in every direction it says the file may have been drawn in inches. The imported mesh has a setting, The file's units, with Millimetres, Inches (× 25.4), Centimetres (× 10) and Metres (× 1000). Choose the one the file was drawn in and the part is rebuilt at its true size.
We checked this with a block two inches by one by a quarter, written as an ASCII STL in inch numbers. It imported as 2 × 1 × 0.25 mm with the warning, and set to Inches it measured 50.8 × 25.4 × 6.35 mm, which is the same block. Its STL export is in millimetres, and its 3MF export states millimetres in the file, so the slicer reads it correctly either way. The suite's own test now checks that an imported mesh read as inches has exactly 25.4 cubed times the volume.
That unit setting was added while writing this page; before it, a mesh came in as millimetres and there was no way to say otherwise. The Engineering Suite is part of OBSCURA Pro. The slicer fix above is free and is all most people need.
Questions people ask about Why an STL is the wrong size in the slicer, and how to fix it
Why is my STL file so small in the slicer?
Because it was exported in inches and the slicer reads STL numbers as millimetres. An STL has no units at all, so a 2-inch part arrives as 2 mm, 25.4 times too small. Scale it by 2540% with uniform scaling on.
Does an STL file have units?
No. It stores each triangle corner as three bare numbers, and there is no field in either the text or the binary form for a unit. Slicers assume millimetres.
What percentage do I scale an STL by to convert inches to millimetres?
2540%, which multiplies every dimension by 25.4. To go the other way, from a model read as inches back to millimetres, scale by 3.937%.
How do I convert an STL from inches in PrusaSlicer?
PrusaSlicer 2.3 and later offers the conversion when a model loads very small, and the object's right-click menu has Convert from imperial units, which scales it by 25.4.
Should I use 3MF instead of STL?
For printing, usually yes. A 3MF file states its unit in the model, so the slicer does not have to guess, and it is smaller and can hold several parts. STL is still the format every slicer and CAM program accepts.
Why is my STL 1000 times too small?
It was exported in metres, so a 150 mm part is written as 0.15 and read as 0.15 mm. Scale by 100000%, or export again in millimetres.
Does scaling an STL by 25.4 lose accuracy?
No. An inch is defined as exactly 25.4 mm, so scaling by it restores the numbers the designer used; the triangles themselves are unchanged.
How can I tell what units an STL was made in?
Compare one dimension the slicer shows with the real size of the part. If the ratio is 25.4 it was inches, 10 centimetres, 1000 metres. Any other ratio means the model itself is at a different scale, not in a different unit.
Related
- Opening a file without the software that made itMost files that will not open are a container your machine has no reader for. HEIC, .msg, winmail.dat, Word, Excel, zips and CSVs, opened in the browser tab.
- Why a print comes out smaller than actual size, and how to prove itFit to page, the wrong paper size, the browser's own scale, and the driver's printable area: four settings that shrink a print by 94 to 97 per cent without saying so.
- How to open a HEIC fileA photograph in a container most software cannot open: what the box is, what is inside it, and how to get a JPEG out without uploading it.
- Open a Word document without Word, without uploading itA .docx is a zip of XML a browser can read. Open it, change it, and save it back as Word or as PDF in the tab; what comes across, and what does not.
- Open an Excel file without Excel, without uploading itAn .xlsx is a zip of XML a browser can read in the tab. What comes across (sheets, values, formulas, formats), what does not (charts, macros, pivot tables), and how to save it back.
- How to open a .msg file without Outlook, and without uploading itA .msg is a small file system, not text, which is why only Outlook opens one. Reading it in a browser tab, saving the attachments, keeping the headers, and why a converter site sees everything on it.
All 14 guides under “A file that will not open, or comes out wrong”.
A letter, now and then
An occasional letter when there is something worth reading: the new guides and what changed in the tools. Never more than once a month and nothing else, and you can leave at any time on the unsubscribe page.