Skip to content
Creative3DP Tools

3D Print Hole Tolerance Calculator

Get the exact diameter to draw in CAD so a 5mm hole prints as 5mm. Material-aware, nozzle-aware, with calibration override for your specific printer.

1. What are you fitting?

Pick the type of hardware. Each has its own ideal fit.

2. Pick the size

3. Print conditions

4. Calibration override advanced Using formula default

Print the calibration test (5mm hole modeled at exactly 5.0mm in CAD), measure the actual printed diameter with calipers, enter the result here. Saved to your browser.

Your printer's actual output for a 5.00mm modeled hole, in PLA, 0.4mm nozzle.

Tip: Print a tolerance test on Printables first. Or model a 20×20×5mm block with a single 5.0mm hole and measure that.

Why printed holes are always too small

If you've ever printed a part with an M3 bolt hole and found the bolt won't fit, you've discovered the most common dimensional gotcha in FDM 3D printing. A hole modeled at exactly 3mm in your CAD software almost always prints between 2.6mm and 2.8mm. The reasons are physical and predictable, which means they're correctable.

1. Material shrinkage

Hot plastic shrinks as it cools. The shrinkage is proportional to the dimension — a 10mm feature shrinks 10× as much as a 1mm feature. Different polymers have very different shrinkage rates:

  • PLA: 0.3% — almost negligible for hardware fits
  • PETG: 0.4%
  • ABS / ASA: 0.7% — noticeable on parts >20mm
  • Nylon (PA): 1.5% — dramatic, needs aggressive compensation
  • Carbon fiber composites (PLA-CF, PA-CF): 0.2–0.4% — CF restrains the polymer, dramatically reducing shrinkage

For a 5mm hole, PLA shrinks 0.015mm — invisible. Nylon shrinks 0.075mm — meaningful. Pick the right material in the calculator and shrinkage drops out automatically.

2. Slicer polygon approximation

Slicers convert "circles" into n-sided polygons before generating g-code. With a typical chord error of 0.04mm, a 5mm hole becomes a 32-sided polygon whose effective inner diameter is slightly smaller than the original circle. The error grows fast as holes shrink: a 2mm hole might end up with only 16 segments and visible flat sides.

3. Extrusion overshoot on inside curves

This is the dominant effect for small holes. When the extruder traces the inside of a circle, it has to slow down at every direction change but can't slow down infinitely fast. The result: a tiny pile-up of material on the inside surface, narrowing the hole by 0.1–0.2mm regardless of size or material. This is also why circles printed sideways (vertical-axis holes) come out oval — the bridging at the top compounds the effect.

How the calculator handles all three

The compensation formula sums each contributor independently:

modelDiameter = targetDiameter
              + targetDiameter × shrinkagePct       (material-dependent)
              + slicerComp(targetDiameter, nozzle)  (empirical, formula above)
              + orientationComp                     (+0.1mm for vertical holes)
              + toleranceAdj                        (per-fit slip vs press)

The "without compensation" line in the results panel shows what you'd get if you skipped this — that's the hole you'd find when you tried to insert your bolt. The bigger "model diameter" number is what to draw in CAD.

Calibrating for your specific printer

Every printer has slight differences — flow rate calibration, hotend temperature, fan speed, all influence how much extrusion overshoots inside curves. The formula in this calculator is anchored to a well-tuned 0.4mm-nozzle PLA print on a typical mid-tier printer (Bambu P1S, Prusa MK4, Creality K1). If your printer differs, calibrate it.

One-time calibration procedure:

  1. In your CAD tool, model a 20mm × 20mm × 5mm block with a single hole through it. Set the hole diameter to exactly 5.00mm.
  2. Slice and print in PLA at standard settings (0.4mm nozzle, 0.2mm layer height, 100% flow).
  3. Once cool, measure the actual diameter with digital calipers. Use the average of 3 readings at different points around the hole.
  4. Open the calculator, expand "Calibration override," enter the measured value (e.g. 4.78), click Save.

From this point on, every recommendation in the calculator scales to your printer's actual behavior. The calibration is saved in your browser's localStorage; clear it when you change printers.

Common fits, decoded

Heat-set threaded inserts

These are brass cylinders with knurled outer surfaces and pre-cut threads inside. You install them with a soldering iron — the heat melts the surrounding plastic, the knurls grip as it cools, and you have a permanent metal-threaded hole that handles 1000+ insert/remove cycles.

The standard for the Voron 3D printer family and most quality builds is the Ruthex (formerly Trifusion) line: M3 inserts with a 4.0mm outer diameter. The CAD hole should match the OD exactly; the calculator just adds the compensation. If your printer over-compensates, the insert will be loose and pull out under load. Calibrate first.

Bolt clearance holes

ISO 273 defines three clearance grades: fine, medium, and loose. For most 3D-printed enclosures, "medium" is the right call — enough clearance for the bolt to slide through smoothly but not so much that the part rattles. M3 medium clearance = 3.4mm. M5 = 5.5mm. The calculator stocks these standards and adds compensation on top.

Press-fit bearings

608 skateboard bearings (22mm OD) are the workhorse of DIY mechanisms — used in fidget spinners, lazy susans, the gantry of every Voron printer, every wheel of every printer-bot ever made. Print the pocket at exactly 22.0mm + compensation, add a 0.5mm × 45° lead-in chamfer on the entry face, and press the bearing in slowly with even force. Never hammer — the cage will deform and the bearing will bind.

Self-tapping screws

For prototypes or one-off parts, you can drive a metal machine screw directly into a smaller plastic hole. The screw cuts its own threads as it goes. Hole sizes are roughly bolt OD minus 0.5mm: M3 self-tap = 2.5mm, M4 = 3.3mm. Self-tap is fine for parts you'll assemble once or twice; for production parts use heat-set inserts.

What this calculator can't do (yet)

  • Z-axis precision for tall vertical holes — wall draft and thermal effects accumulate
  • Slot fits — slots stretch differently along their long axis
  • Threaded inserts smaller than M2 — too sensitive to printer-specific calibration
  • Modular MMU multi-material parts where layer-to-layer expansion differs

For these cases, calibrate aggressively, print a test, and adjust until it fits. There's no formula that beats a test print.

Frequently asked questions

Why do 3D printed holes always come out smaller than modeled?

Three reasons. Filament shrinks as it cools (proportional to material — Nylon shrinks 5× more than PLA). The slicer approximates circles as polygons, which sit inside the true circle. And the extruder over-deposits material on inside curves where it can't slow down fast enough. Combined, a 5mm modeled hole prints around 4.7–4.8mm in PLA. The fix is to oversize the hole in CAD by a calculated amount.

How much should I oversize a hole for an M3 heat-set insert?

For Ruthex / CNC Kitchen M3 inserts (4.0mm OD spec), in PLA on a 0.4mm nozzle, model the hole at ~4.24mm. The calculator above gives the exact value for your specific material and nozzle combo. After install the brass insert grips properly and threads cleanly.

How do I calibrate this for my specific printer?

Print a 20×20×5mm block with a 5.00mm hole through it. Measure the actual printed hole with calipers. Open the calculator, expand "Calibration override," type the measured value, click Save. The calculator now scales every recommendation to match your printer's actual behavior.

Are vertical and horizontal holes different?

Yes. A horizontal hole (axis perpendicular to the bed) prints accurately because each layer is a discrete circle. A vertical hole (axis parallel to the bed) sags at the top from bridging — the unsupported plastic droops, making the hole oval. Add 0.1mm extra compensation for vertical holes, or model them as a teardrop shape with a 45° peak so the top self-supports.

Do carbon-fiber filaments need different compensation?

Yes — CF dramatically reduces shrinkage. PLA-CF is ~0.2% shrinkage vs 0.3% for plain PLA. Nylon-CF is 0.4% vs 1.5% for plain Nylon. Pick the right material in the calculator and the math adjusts.

What's the difference between heat-set inserts and self-tapping screws?

Heat-set inserts (brass, melted in with a soldering iron) provide reusable metal threads that hold up to repeated assembly. Self-tap means you drive a metal screw directly into a smaller plastic hole — the screw cuts threads in the plastic. Self-tap is fine for 1–5 install/remove cycles; beyond that the plastic strips. Use heat-set inserts for production parts and anything that needs servicing.

How tight should a press-fit hole be?

For standard skateboard 608 bearings (22mm OD), model the pocket at exactly 22.0mm + your printer's compensation. The press fit comes from material flexibility — a slightly oversized printed hole that tightens around the bearing. If it's loose, your printer is over-compensating; recalibrate. If it's impossible to press in, your slicer flow rate may be too high — reduce by 2–3%.

Why does the calculator show a "without compensation" value?

To make the math visible. If you skipped compensation entirely, that's what you'd get out of your printer — a hole noticeably smaller than the part you're trying to fit. Seeing the gap helps you trust the bigger model-diameter recommendation.