3d Calcs
CONFIG:
130 W
$0.15/kWh
$20.00/kg spool
Tolerances & Design•6 min read

Why 3D Printed Holes Are Always Too Small (And How to Fix Hole Tolerances)

The math and physics behind undersized holes: polygon chord errors, hoop stress contraction, nozzle cornering, and exact slicer X-Y hole compensation values for M2 to M6 screws.

1.The Universal Mystery: Why M3 Screws Refuse to Fit

Every maker who has ever opened a CAD program has lived through this exact scenario: You design a functional mounting plate in Fusion 360, carefully specify a 3.0mm hole for an M3 socket head screw, send it to your calibrated printer, and wait three hours.

The print finishes. You grab your digital calipers: the outer dimensions of the plate are dead-on (50.02mm across a 50mm box). You grab your M3 screw to bolt it down... and the screw refuses to enter the hole. When you measure the hole with calipers, it reads 2.72mm!

Your first reaction is to blame printer calibration or grab a cordless drill to bore it out. But this isn't a calibration error. 3D printers systematically shrink internal circular holes due to three intersecting physics and geometric realities.

2.Root Cause 1: The STL Polygon Chord Error

CAD software understands true mathematical circles (x² + y² = r²). But the standard STL file format cannot represent curves. It converts every arc into a series of straight flat line segments (chords) connected by vertices.

Because those straight chords cut across the inside of the true circle, the inscribed diameter of the printed polygon is mathematically smaller than the circle you modeled in CAD!

A 3mm hole sliced with coarse mesh settings might only have 12 to 16 flat segments, instantly shaving 0.15mm off the usable clearance diameter.

The Fix: Export modern boundary representation files like STEP (.step) or 3MF (.3mf). Modern slicers like OrcaSlicer, Bambu Studio, and PrusaSlicer can slice native STEP curves using true circular arc commands (G2/G3) instead of faceted straight lines.

3.Root Cause 2: Polymer Hoop Stress & Thermal Contraction

When your printer lays down a circular perimeter wall, it extrudes a molten bead of plastic in a continuous circle. Because the nozzle is moving, that molten bead gets stretched along the perimeter like a rubber band under tension.

As that circular bead cools down from 220°C to room temperature, it contracts. In physics, this is called hoop stress: a cooling circle contracts inward toward its own center point.

Outer perimeters shrink inward (making outside walls slightly smaller, which we easily compensate with flow rate). But inside hole perimeters ALSO shrink inward toward their center, constricting the hole opening and making it noticeably tighter.

4.Root Cause 3: Slicer Toolpath Centering & Nozzle Cornering

Your slicer calculates the toolpath along the exact centerline of the perimeter bead. On an inside hole, the inner circumference of that bead is physically shorter than the outer circumference. But the nozzle is pumping out a constant volume of plastic!

That excess plastic along the tight inner radius has nowhere to go, so it bunches up and squishes inward into the empty void of the hole.

Furthermore, high print speeds cause viscous molten plastic to cut the corner: surface tension pulls the bead tighter around the inner bend before the cooling fan can solidify it in place.

5.The Slicer Fix: X-Y Hole Compensation (The Magic Setting)

Do NOT scale your entire model up to 101% to fix small holes! Scaling up enlarges outer walls, widens bolt spacing, and ruins fitment with mating parts.

Instead, use your slicer's built-in surgical tool: X-Y Hole Compensation (called 'Hole Horizontal Expansion' in Cura).

This setting tells the slicer to leave all outer walls untouched, while specifically widening only closed internal circular and slot holes.

Tested Baseline Offsets (0.4mm nozzle):

• PLA: Set X-Y Hole Compensation to +0.10mm to +0.15mm.

• PETG: Set to +0.15mm to +0.20mm (PETG has higher die swell).

• ABS / ASA / Nylon: Set to +0.18mm to +0.25mm (higher thermal shrinkage).

Use our Hole Tolerance Calculator to generate exact CAD or slicer offsets for any bolt size and fit class.

💡 Pro-Tip:Where to Find It in Your Slicer

OrcaSlicer & Bambu Studio: Quality tab -> Precision -> X-Y Hole Compensation. Cura: Shell -> Hole Horizontal Expansion. A positive value (+0.15mm) makes holes larger; a negative value makes them smaller.

6.Fastener Engineering: Direct Clearance vs Heat-Set Inserts

If you're assembling parts that need to hold mechanical loads, choose your hole strategy wisely:

1. Close Clearance Holes: Use when a machine screw needs to pass through a part with zero wiggle room to clamp against a nut on the other side.

2. Free Clearance Holes: Use for general assembly where parts need to align easily without binding.

3. Brass Heat-Set Inserts (The Gold Standard): Don't tap threads into soft plastic—they will strip after 3 cycles. Instead, model a tapered cylindrical hole, insert a knurled brass insert with a soldering iron at 240°C, and enjoy metal-on-metal machine threads that last forever.

Screw SizeClose Clearance Hole (mm)Free Clearance Hole (mm)Heat-Set Insert Hole Ø (mm)Insert Pocket Depth (mm)
M22.2 mm2.4 mm3.2 mm4.0 mm
M2.52.7 mm2.9 mm3.6 mm5.0 mm
M33.2 mm3.4 mm4.0 mm - 4.2 mm5.7 mm
M44.3 mm4.5 mm5.6 mm - 5.8 mm8.0 mm
M55.3 mm5.5 mm6.4 mm - 6.6 mm9.5 mm
M66.4 mm6.6 mm8.0 mm - 8.2 mm12.0 mm

Frequently Asked Questions

Why shouldn't I just drill out tight 3D printed holes with a cordless drill?
You can, but drilling generates sudden friction heat that melts thermoplastic quickly. The drill bit grabs the soft plastic, bites hard, and can tear the entire layer seam apart or rip the part out of your hands. If you must drill, run the drill at slow speeds and use a hand spiral reamer or lubricant.
What is the difference between X-Y Hole Compensation and X-Y Contour Compensation?
X-Y Hole Compensation only alters closed internal voids (holes and slots) without changing outer boundaries. X-Y Contour Compensation alters only the outer shell walls of the object. Always adjust Hole Compensation to fix tight bolts.
What temperature should my soldering iron be when installing heat-set brass inserts?
Set the iron just 10°C to 20°C above your filament's print temperature: ~220°C for PLA, ~250°C for PETG, and ~265°C for ABS/ASA. Let the thermal weight of the iron glide the brass into the plastic; pushing too hard will force molten plastic inside the threads and ruin the bolt path.
Does printing holes slower make them more accurate?
Yes, significantly. When the nozzle moves at 200 mm/s around a 3mm circle, centrifugal force and viscous polymer tension pull the molten bead toward the center like a shortcut. Dropping your 'Small Perimeters' speed to 25–40 mm/s in your slicer lets the cooling fan lock the circle into its true CAD position.

Put Theory Into Practice

Use our 100% free, client-side calibration and pricing calculators.

Explore All 22 Tools →