Shrinkage and dimensional compensation calculator

What this is for: you printed a part, measured it with calipers, and the dimension does not match the model. Enter the nominal and the measured dimension, and the calculator gives you the deviation as a percentage plus the scale factor to set in your slicer so the next print comes out on size. Everything is calculated in your browser.

One important caveat straight away, because it defines how this tool works. Porima's official FDM parameter table contains no shrinkage percentages. It has thirty fields for each of twenty-five materials — temperatures, cooling, drying, chamber, nozzle abrasiveness, warping tendency — but it does not state shrinkage. Nor does the manufacturer's website. So you will not find a table here along the lines of "PLA shrinks by 0.3%, ABS by 0.7%". Tables like that circulate online and are usually copied from injection-moulding data sheets, which have little to do with FDM printing.

Beyond that, shrinkage in 3D printing is not a material constant. It depends on bed and chamber temperature, part geometry, infill, cooling rate and how long the part sat cooling on the bed. The same PLA will give a different deviation on a 20 mm cube and on a 200 mm plate. The only method that gives a trustworthy answer is measuring your print on your printer. That is exactly what the calculator is for.

Shrinkage and dimensional compensation calculator

Deviation: 0.380 mm · 0.380% — the print came out smaller than the model

Set the scale to: 100.381%

Factor to multiply the model by in CAD: 1.003814

Absolute compensation for a single dimension: +0.380 mm

Percentage scaling is the right tool for external dimensions and long parts. For holes and fits use absolute compensation — more on that below.

How we calculate it — the formula

Percentage deviation = (nominal dimension - measured dimension) / nominal dimension × 100%. A positive result means the print came out too small, i.e. the material shrank. A negative one means the dimension is too large, which in FDM printing is usually not shrinkage at all but over-extrusion or a squashed first layer.

The scale factor = nominal dimension / measured dimension. Note that this is not the same as "add the shrinkage percentage". If a print shrank by 0.380%, the correct correction is 0.381%, not 0.380%. At 100 mm the difference is cosmetic, but on a 400 mm part it starts to show up on the calipers.

The new scale = the scale used for this print × the correction factor. This field matters when you iterate. If you printed the previous part at a scale of 100.4% already and it still comes out 0.1% too small, the calculator gives you the resulting combined scale rather than another correction reckoned from one hundred percent.

A worked example with real numbers

You print a calibration cube 100.00 mm on a side in PLA, at 100% scale. Once cooled, you measure the X axis with a micrometer and get 99.62 mm.

  • Deviation: 100.00 - 99.62 = 0.38 mm, that is 0.380%
  • Factor: 100.00 / 99.62 = 1.003814
  • New scale in the slicer for the X axis: 100.381%
  • Check: 99.62 × 1.003814 = 100.00 mm

Measure and correct the X, Y and Z axes separately. Z often differs from X and Y, because the vertical dimension is governed mainly by layer height and Z axis calibration rather than by shrinkage of the polymer. In PrusaSlicer and OrcaSlicer you set per-axis scale in the object panel; in Cura, in the Scale field once you unlock the proportions.

When scaling is the wrong tool

This is the most common mistake when fighting dimensions. Scaling multiplies every dimension by the same factor, hole diameters included. But holes in FDM printing come out undersized for a completely different reason than shrinkage: a perimeter laid along a curve is pulled towards the inside of the hole, and the material on the inside of the arc is in excess. That error is roughly constant in millimetres, regardless of hole diameter.

The upshot is that scaling up by 0.4% will fix the external dimensions but will enlarge a 5 mm diameter hole by only 0.02 mm, which is to say barely at all. So:

  • External dimensions and long parts — correct with percentage scale, the value from the "Set the scale to" field.
  • Holes, fits, bearing and nut pockets — correct with a fixed offset: in PrusaSlicer and OrcaSlicer with XY size compensation, in Cura with Horizontal Expansion (and separately Hole Horizontal Expansion). Enter the value from the "Absolute compensation" field there with a negative sign, because that parameter shrinks the outline.
  • A splayed base — if only the first millimetre of height is oversized, that is not shrinkage but elephant's foot. Scaling will not fix it.

What Porima does not state, and what it does

There is no shrinkage percentage in the FDM parameter table and we are not going to invent one. There is, however, a field that genuinely helps predict which materials are worth running this procedure on at all: warping tendency. Materials with a high warping tendency shrink strongly and unevenly, so they demand measurement and an enclosed chamber. Materials in the "none" class usually hit the dimension with no correction at all.

Warping tendency Porima materials Recommended chamber What it means for dimensions
None PLA, Tough PLA, Hyper PLA, Silk PLA, PLA Premium, PLA Army, PLA Stone, PLA Wood, PLA Star, PLA Pastel, Smart PLA, Eco PLA, PETG, PETG Transparent, TPU Flex 98A, Easy Flex open Deviations usually below the threshold that shows up on calipers. Calibrate once, on a cube.
Low HIPS, PLA/CF open Worth measuring, but rarely needs correction.
Medium HT PETG, ASA, PA (nylon) HT PETG open or enclosed; ASA enclosed 50 °C; PA enclosed and heated Measurement is essential on parts longer than a few centimetres.
High ABS, Eco ABS, ABS/CF, PC/ABS enclosed, 50 °C Without an enclosed chamber the dimension will move from print to print and calibration is pointless.

Source: Porima's official FDM parameter table — the "warping tendency" and "chamber" fields. The comment column is our interpretation, not a manufacturer's declaration. The FDM parameter table does not contain a shrinkage field. Full parameter listing: print temperature chart.

A measurement procedure that gives repeatable results

  1. Print a test piece at least 50 mm on a side, ideally 100 mm — the longer the span, the smaller the influence of measurement error.
  2. Print with the same profile, material and bed temperature you will use for the actual part.
  3. Wait until the part has cooled completely to room temperature. A warm print measures larger.
  4. Remove the first-layer bulge with a scraper, or measure above it.
  5. Measure each axis three times in different places and take the average.
  6. Enter the results into the calculator separately for X, Y and Z, set the scales and print the test piece again as a check.

The overriding rule: change one parameter at a time. If you change the temperature or the infill along with the scale, you will not know which one worked.

Frequently asked questions

Why don't you publish a ready-made shrinkage table for PLA, PETG and ABS?

Because no such table exists in the manufacturer's data, and copying figures from injection-moulding sheets or from forums would be guesswork presented as fact. Two minutes of measuring on your printer gives a result no third-party table can replace.

My scale came out at 100.4% — should I apply it to every model?

To models printed in the same material, on the same profile and of a similar size — yes. If the geometry or the material changes substantially, repeat the measurement. If you print commercially, keep a simple scale-per-material table and record the date.

My print comes out too large, not too small. What then?

The calculator handles that case and will give a scale below 100%, but before you apply it, check the other causes. An oversized dimension is usually over-extrusion or a badly set flow rate, not a property of the material. Fixing it at source beats scaling down.

Does wet filament affect dimensions?

Yes, indirectly. Moisture causes uneven flow from the nozzle, and uneven flow means dimensional scatter between prints. There is no point calibrating scale on material that crackles in the nozzle — dry the filament first, then measure.

Related tools and pages

Dimensional calibration only makes sense on filament of stable diameter. Porima filaments are produced to a ±0.03 mm diameter tolerance, and we publish the manufacturer's full official print data — you don't have to guess it. Our warehouse is near Poznań, in Swarzędz.

See Porima filaments · All calculators · 3D printing problems · Print parameters