Units · Scale · Millimetres and inches
Resize a model from millimetres to inches, convert it without changing its real size, or fix a unit label that was written wrong. STL, 3MF, OBJ, PLY, AMF, DXF, SVG and STEP.
Your files are never uploaded, stored, or seen by anyone
Drop a file here, or click to browse
stl · 3mf · obj · ply · amf · dxf · svg · step
Working
Not every 3D format records what its numbers mean, and that single fact decides which of the three actions above will work on your file.
| Format | Stores a unit | Resize | Convert | Relabel |
|---|---|---|---|---|
| STL | No | yes | — | — |
| OBJ | No | yes | — | — |
| PLY | No | yes | — | — |
| 3MF | Yes — model unit attribute | yes | yes | yes |
| AMF | Yes — amf unit attribute | yes | yes | yes |
| DXF | Yes — $INSUNITS | yes | yes | yes |
| SVG | Yes — width and height suffix | yes | yes | yes |
| STEP | Yes — LENGTH_UNIT | yes | yes | metric only |
An STL file is a list of triangles and nothing else. A cube written as 0 to 4 could be four millimetres, four inches or four metres — the file does not say. Every slicer and CAD package simply assumes a unit, and almost all of them assume millimetres. That is why a part modelled in inches lands in your slicer at roughly a twenty-fifth of its intended size.
Because there is no label to correct, the only real fix is to resize the geometry: multiply every coordinate by 25.4 going from inches to millimetres, or divide by it going the other way. OBJ and PLY behave the same way.
3MF, AMF, DXF, SVG and STEP all record their unit. If one of those opens at the wrong size, the coordinates are usually correct and the label is wrong — often because an exporter defaulted to millimetres for a model drawn in inches. Relabelling fixes that in one step and leaves the geometry bit-for-bit identical, which is always safer than multiplying every number in the file.
| Conversion | Multiply by |
|---|---|
| inches → mm | 25.4 |
| mm → inches | 0.0393700787 |
| cm → mm | 10 |
| m → mm | 1000 |
| feet → mm | 304.8 |
| microns → mm | 0.001 |
Normals are never scaled. A uniform positive scale does not rotate a normal, so STL facet normals, OBJ vn lines and AMF normal elements are left exactly as they were. Scaling them would only cost them their unit length.
DXF drawing settings are left alone. Entity coordinates and radii are scaled and $INSUNITS is updated, but $DIMSCALE and the other drawing-level settings that share group code 40 are deliberately untouched — scaling those would resize every dimension style in the drawing.
STEP is best effort. Points, circles and ellipses are scaled, and unit labels can be rewritten between metric units. Imperial STEP units are conversion-based entities that cannot be rewritten safely without rebuilding part of the entity graph, so that case is refused rather than guessed at.
Rounding is optional and one-way. Coordinates are always computed in 64-bit and written once, so repeated conversions do not accumulate error. If you ask for rounding, that precision is gone from the output — keep the original.
STL stores triangle coordinates and no unit at all. Slicers assume millimetres, so a model drawn in inches arrives about 25.4 times too small. Resizing the geometry is the only fix.
Divide every coordinate by 25.4. Drop the file above, choose "resize", set mm to inches, and download the result. Nothing is uploaded.
Resizing multiplies every coordinate. Relabelling changes only the unit recorded inside the file and leaves the geometry untouched. Relabelling is right when a file was exported with the wrong unit tag, because it cannot introduce any rounding at all.
Binary STL and most PLY files store coordinates as 32-bit floats, so a conversion and its reverse can differ in the last decimal — far below any printable or machinable tolerance. All arithmetic is done in 64-bit and written back once, so error does not accumulate.
No. The conversion runs inside this page on your own device, in a background thread. You can confirm it by watching your browser network tab while converting.
If a file will not convert, or the result looks wrong, I would rather hear about it. Include the format and roughly what you were doing — that is usually enough to reproduce it.