For a round, consistently undersized bore, a useful first local correction is new CAD diameter = old CAD diameter + target printed diameter − measured printed diameter. Reprint and measure. If only the first layer is tight, or the hole is oval or has a sagging roof, diagnose that shape error before applying one diameter offset.
First identify what is wrong with the hole
The workflow below is for FDM bores printed with their axis vertical unless stated otherwise. A hole can differ from CAD because of extrusion, cooling, mesh resolution, motion, first-layer squish or slicer settings. A nominal 0.4 mm nozzle does not imply a universal hole error.
| What you observe | Useful next step |
|---|---|
| Round hole, similar error at several heights | Measure repeat samples and try a local CAD or hole-only slicer correction. |
| Tight only at the build-plate end | Inspect first-layer settings and elephant-foot compensation. Do not enlarge the whole bore just to fix its entrance. |
| Different X and Y diameters | Check orientation, mechanics, flow and measurement method. One scalar diameter correction cannot make an oval hole round. |
| Horizontal bore has a drooping roof | Test orientation, support/bridging settings or a modified roof shape. A vertical coupon does not capture that defect. |
| Facets visible in CAD export or preview | Increase mesh resolution before tuning the printer to a polygonal approximation. |
Prusa’s elephant-foot documentation explains why the first layer spreads and how its compensation acts on that layer. This is a different adjustment from correcting a bore along its full height.
A correction based on your own print
Print the feature with the final material, orientation, wall count and slicer profile. Let it cool, then measure across X and Y at more than one height. Keep first-layer readings separate. Use an appropriate bore gauge or pin gauges when available; with calipers, repeat the reading and account for jaw access, alignment and surface texture. Record the measurement tool and spread, not just the most convenient reading.
Illustrative arithmetic only: suppose a 5.00 mm CAD hole repeatedly measures 4.78 mm away from the first layer, and the desired printed hole is 5.00 mm:
Next CAD trial = 5.00 + 0.22 = 5.22 mm
That is a diametral change. A CAD operation offsetting a circular wall radially would use half that value, 0.11 mm. Confirm how your particular command defines its distance. This one-step estimate assumes the local process error remains similar; it is not a guarantee that the next print will be exactly 5.00 mm.
- Print at least a few repeat samples so you can see variation.
- Record CAD size, cooled measurements and the required printed size.
- Change one correction, keeping the rest of the profile fixed.
- Reprint and check both dimension and the actual mating part.
- Save the result with the printer, material and profile. Recheck it when those change.
If a 5.00 mm shaft needs clearance, decide that clearance first: a 5.00 mm target hole is not automatically a sliding fit. Use the fit-type guide to separate assembly clearance from manufacturing correction.
Calculated hole-compensation chart: 2–50 mm
This table reproduces this site’s default heuristic. It is a starting point when you have no measurements, not a universal chart for PLA or a statement of achievable accuracy. The small-hole rows are especially sensitive to the actual process.
Assumptions: vertical hole; 0.4 mm nozzle; 0.2 mm layer; 0.45 mm line width; hole coefficient k = 0.5; 0.3% assumed shrinkage; hole-only part; hole datum; zero extra fit clearance. The last column includes both process allowance and shrinkage. All dimensions are mm.
| Target hole D | Process allowance H | Total CAD addition | CAD trial |
|---|---|---|---|
| 2 | 0.3900 | 0.397 | 2.397 |
| 3 | 0.3900 | 0.400 | 3.400 |
| 4 | 0.3675 | 0.381 | 4.381 |
| 5 | 0.3450 | 0.361 | 5.361 |
| 6 | 0.3300 | 0.349 | 6.349 |
| 8 | 0.3113 | 0.336 | 8.336 |
| 10 | 0.3000 | 0.331 | 10.331 |
| 20 | 0.2775 | 0.339 | 20.339 |
| 30 | 0.2700 | 0.361 | 30.361 |
| 50 | 0.2640 | 0.415 | 50.415 |
The formula behind the chart
For the diameters in this table, the calculator uses the following model. D and line width W are in mm, h is layer height, and s is shrinkage as a fraction: 0.3% means 0.003.
H = k × W × C + 0.15 × h
CAD hole = (D + H) / (1 − s)
For a 5 mm target, H = 0.345 mm, so (5 + 0.345) / 0.997 = 5.361 mm. Simply adding 0.345 gives 5.345 mm and omits shrinkage. The 0.3% input is the calculator’s starting assumption, not a measured value for your filament.
The diameter term and coefficients are an engineering approximation in this tool, not an ISO 286 hole-error formula or a complete simulation of extrusion. Our calculations are reproducible; their physical accuracy still needs your coupon measurements.
Open this 5 mm worked example →Loads the exact assumptions above. Change the profile to match your print and use the hole result as a trial dimension.Download a nominal 20 mm calibration coupon
The free coupon contains a 20.00 mm through hole in a 40 mm outer-diameter ring and a separate 20.00 mm peg. Both are 10 mm tall. They have no shared base, so you can measure each and see first-layer effects. The file is uncompensated by design.
Units: millimetres. STL files do not encode units, so check the imported 40 mm ring diameter and 10 mm height in your slicer. The original mesh and source are free to use and modify under CC0. The CSV is blank: enter your own measurements.
Use the coupon with the calculator
- Print the nominal file. For a raw baseline, turn off XY hole/contour compensation and automatic shrink scaling; do not apply the chart to the coupon itself. Record all settings, including first-layer compensation. If you retain compensation, the calibration is specific to that compensated profile.
- Measure cooled parts. Repeat bore and peg measurements across two directions and heights. If readings differ substantially, investigate the shape rather than hiding it in one average.
- Match the profile. Set actual nozzle, layer height and line width. The calibration also needs an assumed shrinkage value; one coupon does not independently identify shrinkage and process error.
- Enter your measurements. Use representative bore and peg readings in the 20 mm calibration form. Keep the coupon nominal at 20 mm. The form can accept one measurement, but an unmeasured member is not thereby validated.
- Apply and check at the working diameter. Enter the target size and print a validation sample. A 20 mm calibration does not establish accuracy for a 3 mm hole or a horizontal bore. Keep a record of the returned coefficients; the page does not save a machine profile for you.
A calibration arithmetic example
Synthetic example, not measured data: with 0.3% assumed shrinkage, 0.45 mm width and 0.2 mm layers, suppose the nominal 20 mm coupon yielded a 19.630 mm hole and a 20.050 mm peg. The model would return approximately holeK = 0.566 and shaftK = 0.200. Those coefficients describe this hypothetical input; they are not recommended settings to copy.
If calibration returns a limiting coefficient or a warning, check inputs, compensation, shrinkage assumptions and measurements. Do not interpret a clamped value or a model uncertainty band as proof of your printer’s repeatability. Establish repeatability with repeat prints and your measurement system.
Should you change CAD or slicer settings?
Use one deliberate correction route and document it. Applying a +0.22 mm CAD diameter correction and another equivalent slicer correction would double the intended adjustment.
| Method | When it helps | What to verify |
|---|---|---|
| Local CAD diameter | One feature needs a specific tested allowance. | Keep nominal design intent documented; verify radius-versus-diameter semantics. |
| XY hole compensation | Several comparable bores share a repeatable profile error. | Check the slicer’s hole detection, sign, units and affected layers in preview. |
| XY contour compensation | Outside dimensions need their own correction. | Do not assume the bore and peg need identical corrections. |
| Elephant-foot compensation | The first layer creates the obstruction. | Check the entrance separately from the rest of the bore. |
OrcaSlicer documents separate XY hole and contour compensation: positive hole compensation enlarges holes, while negative values shrink them. Follow your installed slicer’s definition of the offset; do not assume its value is a diameter change. Its tolerance-calibration workflow is another way to test a profile.
Software-only comparison: what the correction changes
This is a reproducible calculation example, not a printed-part test. No slicer comparison or physical print was performed for this section; the steps below describe a future check. It answers a narrower question: if the same 20 mm bore is modelled at nominal size or with the calculator's correction, what dimensions does the model send to CAD? The result still needs a printer, a cooled part and a measurement tool before it can be called accurate.
PLA, 0.4 mm nozzle, 0.2 mm layer height, 0.45 mm line width, 0.3% assumed shrinkage, default hole calibration coefficient 0.50, and a purchased shaft matching each nominal diameter. The fit class is sliding; values are rounded to 0.001 mm.
| Nominal bore | Calculated target after fit | Predicted bore from nominal CAD | Corrected CAD input |
|---|---|---|---|
| 5.00 mm | 5.124 mm | 4.640 mm | 5.485 mm |
| 10.00 mm | 10.157 mm | 9.670 mm | 10.488 mm |
| 20.00 mm | 20.199 mm | 19.663 mm | 20.538 mm |
The third column is the model's uncorrected forward result: nominal CAD is reduced by the assumed shrinkage and process allowance. The last column inverts those same assumptions so the modelled bore is larger before printing. It is not evidence that a real machine will produce 5.124, 10.157 or 20.199 mm.
How to reproduce the comparison in a slicer
- Download the nominal 20 mm coupon above and import it at 100% scale. Confirm the ring is 40 mm outside diameter, the bore is 20 mm and the height is 10 mm.
- Slice once with XY hole compensation and shrink scaling disabled. Save the profile name, nozzle, layer height, line width and slicer version; the preview is a path inspection, not a measurement.
- Make one CAD copy using the corrected 20.538 mm input, keep every other setting fixed, and slice again. Compare the first layer and upper-wall paths. Do not also apply an equivalent slicer correction.
- If someone later prints both files, add the cooled X/Y measurements and assembly result to this section. Until then, keep the table labelled as calculated.
A preview cannot reveal cooling shrinkage, over- or under-extrusion, oval holes, elephant foot, layer adhesion or whether a purchased shaft actually fits. It also cannot validate the assumed 0.3% material shrinkage or default calibration coefficient. Those require a physical coupon and repeated measurements.
Common questions
How much bigger should I make a 3D printed hole?
Use the error measured on your own representative print. The chart above supplies a clearly defined model estimate when you have no data; neither a fixed 0.2 mm offset nor a nozzle diameter alone determines the correct answer.
Why not scale the whole part?
Scaling changes hole spacing and outside dimensions as well as hole diameter. A local bore error may need a local offset, while actual overall scale error needs a different diagnosis. Check both internal and external features before choosing.
Should I use the same correction for pegs?
No assumption of equality is justified. Measure both. The coupon and calculator keep internal-hole and external-peg process coefficients separate.
Can I compensate tiny or horizontal holes with this table?
Use a representative test. Small features, horizontal roofs, seams and mesh facets can create shape errors that this scalar model does not describe. Changing orientation or finishing the bore may be more appropriate than adding more offset.
Does an M3 heat-set insert need a 3 mm hole?
No. M3 names the internal screw thread. Match the insert body’s installation drawing, then test the printed hole. See the source-checked heat-set insert guide.
Revision note: the table now includes the stated shrinkage assumption, worked examples are labelled as calculated or synthetic, and unsupported universal accuracy and nozzle-limit claims have been removed.