Scaling and Thickness: Getting Real-World Dimensions in STL
How to set width/height in millimeters, keep aspect ratio correct, pick a print-safe thickness, and validate dimensions before slicing.
Prerequisites
- A 2D asset you want to print (PNG or SVG)
- Omnvert converter
- A slicer (to verify X/Y/Z in mm)
Step-by-step
- 1
Decide the target size (mm)
Start from a real requirement: a 40 mm keychain, a 120 mm sign, etc. Pick width OR height — the other dimension follows the aspect ratio. Measure the object it has to live next to, not the picture on your screen. A keychain that rides on a car key wants 35–45 mm across its widest point; a fridge magnet reads well at 50–70 mm; a desk sign starts to look sparse below 100 mm. Write the number down before you open the converter, because once a model is sitting on the build plate it is far too easy to talk yourself into whatever size it happens to be. Note which dimension is the constrained one too — usually the width of a slot, a lanyard hole, or the free space on a shelf.
- 2
Set width/height in the converter (keep aspect)
Prefer setting real-world size at conversion time so the STL matches mm expectations everywhere. Avoid manually scaling in the slicer unless you have a specific reason. Units are where most bad prints begin. STL carries no unit tag at all: the file stores bare numbers and every slicer decides to read them as millimetres. If a model lands 25.4 times too small, someone authored it in inches — multiply by 25.4 and it snaps into place. A model that arrives 25.4 times too big went the other way. Scale uniformly unless you genuinely want distortion; pushing X to 120% while Y stays at 100% stretches letterforms and turns a circular boss into an ellipse that no longer accepts its pin.
- 3
Pick a thickness that prints reliably
For flat logos, 1.6–3.0 mm is a good range. If you need rigidity, increase thickness or add a backing plate in your design. Thickness is a Z number, but the same logic runs sideways. With a 0.4 mm nozzle a wall drawn at 0.42 mm gets exactly one perimeter and no infill; at 0.85 mm you get two perimeters that fuse into a solid rib. Anything under roughly one line width either vanishes from the sliced result or prints as a wobbly single bead you can snap with a fingernail. Set your minimum feature — the thinnest serif, the narrowest gap between two letters — to at least two line widths, so 0.8–1.0 mm on a standard nozzle, and confirm it in preview instead of assuming.
- 4
Convert and verify dimensions
Generate STL with the PNG / SVG → STL converter. Then check the model’s size in your slicer (X/Y/Z). If it’s off, adjust width/height and reconvert. Read all three axes, not just the one you typed. Cura shows them in the scale panel; PrusaSlicer and Bambu Studio put them in the object manipulation box on the right. A common surprise: the STL is correct but the model sits rotated, so the 120 mm you set as width is reported as depth and the part no longer clears the bed diagonal. Another: the converter honoured the aspect ratio, so a tall crest you sized to 120 mm wide came out 190 mm tall and collides with the gantry on the way up.
- 5
Account for print tolerances (optional)
If the STL needs to fit with other parts, add clearance. FDM often needs extra tolerance due to line width and material shrinkage. Validate with a small test print before producing a large batch. Numbers that hold on most FDM machines: 0.2 mm total clearance for a part that should slide, 0.1 mm for a snug press fit, 0.3–0.4 mm for anything assembled with gloves on or after a coat of paint. Holes come out undersized because the extruded bead pulls inward on inside curves, so a 5.0 mm pin hole usually wants to be drawn at 5.2–5.3 mm. PLA shrinks only a few tenths of a percent, but ABS and ASA can lose 0.5–0.8% along a long dimension, which is 0.6 mm across a 100 mm plate.
- 6
Set emboss and engrave depth in whole layers
Raised or recessed detail should be a multiple of your layer height so the slicer never has to round it. At 0.20 mm layers an emboss of 0.60 mm is exactly three layers and reads cleanly; 0.55 mm gets floored to two layers and half the logo goes flat. Engraved text behaves the same way in reverse — cut 0.4–0.6 mm deep and keep the stroke above 1 mm, otherwise the perimeters on each side of the groove merge and the letter fills itself in. For colour-change lettering, 0.8 mm of relief leaves room to swap filament at a sensible layer instead of mid-character.
- 7
Print a 20 mm coupon before the full plate
Before committing four hours to a 200 mm sign, slice a 20 mm square carrying the thinnest feature, one test hole and a sample of the lettering. It takes eight minutes and tells you more than any preview: whether the 0.8 mm strokes actually bond, whether the hole comes out at nominal, whether the engraved line is deep enough to hold paint. Measure the coupon with calipers in both X and Y — plenty of machines are 0.1–0.2 mm off in one axis from belt tension, and that error grows with the part.
- 8
Lock the size in before you archive the file
Once a print comes out right, re-export the STL at final size and put the dimensions in the filename — sign_120x47x2.4mm.stl. Six months later nobody remembers whether the slicer profile had a 105% scale saved into it, and a project scaled at import is a project that will be wrong the next time somebody opens it on another machine. If you keep a copy inside a slicer project file, reset the scale to 100% first so the geometry carries the truth rather than the session.
Common scaling mistakes
- Setting both width and height manually and accidentally squashing the aspect ratio.
- Using ultra-thin thickness (<1 mm) for FDM prints, causing warping or fragile parts.
- Ignoring Z in preview — thickness is your Z dimension.
Quick verification in the slicer
- Check the imported unit scale (mm) and read X/Y/Z in the object panel.
- Use layer preview to make sure thin features exist on multiple layers.
- If you scale in the slicer, re-check thickness: scaling changes Z too.
If you enter only width (or only height), Omnvert infers the other dimension from the image aspect ratio.
Millimetres, inches, and the 25.4 problem
STL has no header field for units. A cube exported as “1” from a CAD package that thinks in inches and a cube exported as “1” from one that thinks in millimetres produce byte-identical files, and the slicer reads both as 1 mm. That is why models pulled off the internet occasionally land on the plate the size of a grain of rice, or fill the entire build volume. The fix is arithmetic, not repair: multiply by 25.4 or divide by it.
Omnvert writes millimetres, so what you type is what you get. The place to stay alert is the second scaling pass. Set 120 mm at conversion and then hit “scale to fit” in the slicer and the file no longer matches the number you designed around — and neither does the thickness, because a uniform scale takes Z along with it.
target width 120.0 mm
source aspect 1600 x 620 px -> 2.58
derived height 120 / 2.58 = 46.5 mm
thickness (Z) 2.4 mm = 12 layers @ 0.20
emboss depth 0.6 mm = 3 layers @ 0.20
min feature 0.9 mm > 2 x 0.42 line width OK
pin hole drawn 5.25 mm -> measures ~5.0 mm printedMinimum wall thickness versus nozzle width
Slicers do not print what is in the mesh; they print what the perimeters can reach. A 0.3 mm rib on a machine running a 0.42 mm line width is thinner than a single extrusion, so Cura drops it entirely unless thin-wall printing is enabled, and even then it lays down an under-extruded thread. PrusaSlicer and Bambu Studio tend to widen it slightly instead, which means the printed part comes out fatter than the model — awkward if that rib happens to be a tolerance surface.
- 0.4 mm nozzle at 0.42 mm line width: keep vertical walls at 0.85 mm or above.
- Free-standing pins and pegs: 2 mm diameter minimum, 3 mm if they carry any load.
- Text on a flat face: 1.2 mm stroke, 3 mm cap height, and a sans-serif face.
- Gaps between neighbouring shapes: 0.5 mm, or they weld together on the first layer.
- Thin overhanging edges: give them a 0.6 mm chamfer instead of a knife edge.
Clearance, shrinkage, and parts that have to fit
Two printed parts that mate need a gap the mesh does not contain. Elephant’s foot squashes the first two layers outward by 0.1–0.2 mm, so a peg measured at its base reads oversize even when the model is perfect; either chamfer the bottom edge or turn on the slicer’s elephant-foot compensation. Heat matters as well. A 100 mm PLA plate cooling from a 60 °C bed to room temperature moves a couple of tenths, while ABS printed in an open frame can pull in most of a millimetre and lift its corners at the same time.
When a dimension really has to be exact, orient it along X or Y through the middle of the bed rather than diagonally, and print both halves of a mating pair in the same session from the same spool. Filament from a different batch can sit 0.02 mm off on diameter, which is enough to shift a press fit into a hammer fit.
Taking a model to 110% does not only change the outline. Thickness goes to 110% too, the emboss that was exactly three layers becomes 3.3 layers and gets rounded off, and the 0.2 mm clearance you tuned quietly becomes 0.22 mm. If the size is wrong, change it in the converter and re-export rather than nudging it on the plate.