AccountTry Pro free

Why your STL is tiny or huge in the slicer, and how to fix it

When a model shows up as a speck or fills the whole build plate, the geometry is fine and the unit assumption is wrong, and the dimensions tell you which factor to apply.

Updated 20 October 2026 · 6 min read

STL stores numbers, not millimetres

An STL file contains triangle corner coordinates as plain floating-point numbers. There is no field for units. A vertex at (2, 0, 1) means 2 and 1 of whatever unit the exporting program was using, and the reading program has to guess. Every mainstream slicer guesses millimetres.

That guess is right most of the time because most CAD and printing tools work in millimetres. It breaks when the model came from:

  • Imperial CAD (inch templates in SolidWorks, Fusion, Onshape or SketchUp): a 4-inch part arrives as 4 mm.
  • Blender and game/3D tools: Blender's default unit is the metre, so a 50 mm figure modelled at real size is 0.05 units and arrives as 0.05 mm, unless it was modelled at 50 units or the exporter's scale was set.
  • glTF/GLB sources: the glTF specification defines one unit as one metre. Converting a GLB to STL without scaling gives numbers in metres, so a 1.8 m character becomes 1.8 mm.
  • FBX: stores its own unit scale (often centimetres), which converters may or may not apply.
  • OBJ and PLY: like STL, they have no units at all.

Formats that do store units, such as 3MF and STEP, rarely have this problem, which is one reason to prefer them when you control the export (see STL vs 3MF).

Diagnose from the dimensions

Do not scale by eye. Read the bounding box dimensions, either in the slicer's object info panel or by opening the file in the STL viewer, which shows size in X, Y and Z. Then ask what the object is and how big it should be. The ratio between expected and reported size is almost always one of a handful of factors.

What you seeLikely causeScale factorAs percentage
About 25 times too smallExported in inches×25.42540 %
About 1000 times too smallExported in metres (Blender, glTF/GLB)×1000100000 %
About 10 times too smallExported in centimetres (some FBX/OBJ pipelines)×101000 %
About 300 times too smallExported in feet×304.830480 %
About 25 times too bigMillimetre model read as inches by an imperial tool×0.039373.937 %
About 1000 times too bigMillimetre model going into a metre-based tool (GLB, game engine)×0.0010.1 %

Worked examples:

  • A phone stand reports 3.15 × 2.36 × 4.0 mm. Multiplying by 25.4 gives 80 × 60 × 101.6 mm, a plausible phone stand. Inches.
  • A miniature reports 0.028 × 0.025 × 0.032 mm. Multiplying by 1000 gives 28 × 25 × 32 mm, typical tabletop scale. Metres.
  • A vase reports 12 × 12 × 20 mm. Could be centimetres (120 × 120 × 200 mm) or simply a small vase. Check the description or a known feature: if the wall is 0.2 mm thick, it is centimetres and the real wall is 2 mm.

Known features are the most reliable check: a screw hole for M3 should be about 3.2–3.4 mm, a 608 bearing seat 22 mm, a USB-C opening roughly 9 × 3.5 mm. Measure one and the factor is obvious.

Y-up versus Z-up: the model is lying on its back

Scale is not the only axis convention that varies. 3D printing and most CAD tools use Z-up: the build plate is the XY plane and Z points to the nozzle. Many animation and real-time formats use Y-up. glTF/GLB is defined as Y-up, Blender's OBJ exporter writes Y-up by default, and FBX files are commonly Y-up. Blender itself is Z-up and converts on export, so the same model can come out either way depending on the exporter settings.

When a Y-up model is read as Z-up, it appears rotated 90° about the X axis: a standing figure lies face-up or face-down, a vase lies on its side. The fix is a single 90° (or −90°) rotation about X. In slicers you can also use "Place on face" / "Lay on face" to drop it onto its base, which handles both the rotation and the contact with the bed.

Fixing it in the slicer

PrusaSlicer

When an imported object is very small, PrusaSlicer may ask whether its dimensions are in inches and offer to convert; accept if the ×25.4 size makes sense. Otherwise select the object and set the scale factors or exact sizes in the object manipulation panel (lock icon keeps scaling uniform). The scale field accepts percentages, so type 2540 for inches or 100000 for metres.

Bambu Studio and OrcaSlicer

Select the object and use the Scale tool (shortcut S) or the object panel to enter a percentage or target size in millimetres, with uniform scaling enabled. Rotate with the rotate tool or use Lay on face (F) to correct a Y-up model.

Cura

Select the model, open the Scale tool, keep "Uniform scaling" ticked and type either the target size in mm or a percentage. Check Cura's preferences: Scale large models and Scale extremely small models rescale imports automatically, which can hide a unit problem by producing a model that fits but is not the size you need. Turn them off if you care about true dimensions.

A note on scaling after import

Scaling in the slicer is exact: a uniform ×25.4 is a linear transform and loses nothing. But it lives in the slicer project, not in the STL. If the file will be reused or shared, fix it at the source or save a corrected copy so the next person does not hit the same problem.

Fixing it in the converter

When converting between formats, the converter is the right place to fix both scale and orientation once. Open the file in any of the converters, for example GLB to STL, and the conversion panel offers:

  • Scale: keep size, metres to millimetres (×1000), centimetres to millimetres (×10), inches to millimetres (×25.4), and the reverse directions for exporting to metre-based or imperial tools.
  • Convert up-axis (Y-up ↔ Z-up): rotates the model between glTF/OBJ/FBX conventions and printing/CAD conventions.

Both are pre-selected when the source and target conventions differ. Converting a GLB whose largest dimension is under 5 units to STL, for instance, proposes ×1000 and the axis change automatically; the note under the button tells you what was adjusted so you can override it. Going the other way, STL to GLB scales millimetres down to metres so the model appears at real size in AR viewers and game engines. The batch converter applies the same unit and axis fixes to every file in a folder.

Preventing it at export

  • Fusion: STL export has a unit setting; choose millimetres even if the design is in inches.
  • SolidWorks: the STL export options include an output unit; set it to millimetres.
  • Onshape: STL export lets you choose units; pick millimetres.
  • Blender: either model at millimetre scale with Unit Scale set to 0.001 and enable "Scene Unit" in the STL exporter, or set the exporter's Scale to 1000 when modelling in metres. Set forward/up axes so Z is up.
  • Any tool that can: export 3MF instead, which records the unit.

Quick reference

  1. Read the bounding box in mm and compare with the expected real size.
  2. Divide expected by reported; match the ratio to 25.4, 1000, 10 or 304.8.
  3. Scale uniformly by that factor; never stretch one axis to "fix" proportions.
  4. If the model lies on its side, rotate 90° about X or use lay-on-face.
  5. Save a corrected file, or better, fix the export settings at the source.