The formula
Clearance holes come from tables, not a formula: ISO 273 for metric screws and ASME B18.2.8 for inch screws. Pilot holes and tap drill holes follow a rule:
clearance hole = table value for the screw and fit
pilot hole = k × d
tap drill ≈ D − P (metric coarse threads)
diameter to model = hole + printer undersize
- d is the screw’s nominal diameter: 3 mm for M3, 0.164 in for #8.
- k is the pilot factor for the plastic, 0.7 to 0.85 in the screw makers’ tables.
- D and P are the thread’s major diameter and pitch: 3 mm and 0.5 mm for M3.
- Printer undersize is a test hole’s designed diameter minus its measured diameter.
A clearance hole lets the screw pass through to a nut, an insert or a tapped hole. A pilot hole is for a thread-forming (self-tapping) screw that makes its own thread in the plastic. A tap drill hole gets its thread from a tap.
What size hole do you need for an M3 screw in a 3D print?
Model 3.4 mm for an M3 screw to pass through: the ISO 273 medium clearance hole. Close fit is 3.2 mm and loose fit 3.6 mm. For a self-tapping screw in PLA, PETG or ABS, model a 2.4 mm pilot (0.8 × 3 mm). To tap an M3 thread, model 2.5 mm. Then add your printer’s hole undersize.
| M3 hole | Diameter | Where it comes from |
|---|---|---|
| Clearance, close | 3.2 mm | ISO 273 fine series |
| Clearance, normal | 3.4 mm | ISO 273 medium series |
| Clearance, loose | 3.6 mm | ISO 273 coarse series |
| Self-tapping pilot, PLA or PETG | 2.4 mm | 0.8 × 3 mm, EJOT’s general value |
| Self-tapping pilot, nylon | 2.25 mm | 0.75 × 3 mm, Würth table |
| Self-tapping pilot, polycarbonate | 2.55 mm | 0.85 × 3 mm, Würth table |
| Tap drill, M3 × 0.5 | 2.5 mm | 3 − 0.5 mm |
The same holes fit an M3 bolt: ISO 273 covers clearance holes for bolts and screws alike.
Worked example: an M3 hole on a printer that prints holes small
- Print a 3.4 mm test hole and measure it with calipers. Say it reads 3.2 mm.
- Undersize: 3.4 − 3.2 = 0.2 mm.
- Diameter to model: 3.4 + 0.2 = 3.6 mm.
The printed hole then lands near 3.4 mm and leaves 0.2 mm per side around the screw. The modeled 3.6 mm matches the loose-fit number, but on this printer it prints as a normal fit.
Hole sizes for M2 to M10 screws
| Screw | Close | Normal | Loose | Self-tapping pilot (0.8 × d) | Tap drill |
|---|---|---|---|---|---|
| M2 | 2.2 mm | 2.4 mm | 2.6 mm | 1.6 mm | 1.6 mm |
| M2.5 | 2.7 mm | 2.9 mm | 3.1 mm | 2.0 mm | 2.05 mm |
| M3 | 3.2 mm | 3.4 mm | 3.6 mm | 2.4 mm | 2.5 mm |
| M4 | 4.3 mm | 4.5 mm | 4.8 mm | 3.2 mm | 3.3 mm |
| M5 | 5.3 mm | 5.5 mm | 5.8 mm | 4.0 mm | 4.2 mm |
| M6 | 6.4 mm | 6.6 mm | 7.0 mm | 4.8 mm | 5.0 mm |
| M8 | 8.4 mm | 9.0 mm | 10.0 mm | 6.4 mm | 6.8 mm |
| M10 | 10.5 mm | 11.0 mm | 12.0 mm | 8.0 mm | 8.5 mm |
- Clearance: ISO 273’s fine, medium and coarse series, with tolerance fields H12, H13 and H14. ASME B18.2.8 lists the same metric diameters and calls them close, normal and loose.
- Self-tapping pilot: the 0.8 × d column suits ABS, PLA and PETG. For other plastics, use the factor from the next section.
- Tap drill: the drill for the coarse thread (M3 × 0.5, M4 × 0.7, M5 × 0.8). It is the major diameter minus the pitch, rounded to a standard drill on M8 (8 − 1.25 = 6.75, drilled at 6.8 mm). To print the thread instead of tapping it, use the thread calculator.
What size hole should you print for a self-tapping screw?
Print the pilot at 0.7 to 0.85 times the screw’s diameter, set by the plastic. Würth gives 0.8 × d for ABS, 0.85 × d for polycarbonate, 0.75 × d for nylon and 0.7 × d for polypropylene. PLA and PETG are not listed, so start at EJOT’s general 0.8 × d: 2.4 mm for a 3 mm screw.
| Plastic | Factor k | 3 mm screw | 4 mm screw | Source |
|---|---|---|---|---|
| PLA, PETG (not in the tables) | 0.8 | 2.4 mm | 3.2 mm | EJOT DELTA PT general value |
| ABS | 0.8 | 2.4 mm | 3.2 mm | Würth |
| ASA | 0.78 | 2.34 mm | 3.12 mm | Würth |
| Polycarbonate (PC) | 0.85 | 2.55 mm | 3.4 mm | Würth |
| Nylon (PA 6, PA 6.6) | 0.75 | 2.25 mm | 3.0 mm | Würth |
| Glass-filled nylon (PA 6-GF30) | 0.8 | 2.4 mm | 3.2 mm | Würth |
| Acetal (POM) | 0.75 | 2.25 mm | 3.0 mm | Würth |
| Polypropylene (PP) | 0.7 | 2.1 mm | 2.8 mm | Würth |
| Highly filled or high-strength grades | up to 0.88 | 2.64 mm | 3.52 mm | EJOT DELTA PT upper limit |
EJOT’s PT design guide puts the whole range at 0.7 to 0.8 × d, “material depending”. Its DELTA PT guide says 0.8 × d works in most cases and allows up to 0.88 × d for highly filled or stronger plastics. Treat the PLA and PETG row as a starting value: drive one screw into a test hole before printing the batch.
These factors are for thread-forming screws made for plastic, such as EJOT PT and DELTA PT or Würth WÜPLAST. They have a 30° thread that forms its own thread by pushing plastic aside, which is what a “self-forming thread” means in a print. Würth says the lower flank angle and larger pitch make these joints more reliable than other screw types.
A machine screw belongs in a tapped hole (the tap drill column above) or a threaded insert. For a heat-set insert, take the hole size from the insert maker’s table, not from this calculator.
Boss size and screw depth
EJOT’s PT guide sizes the boss from the screw’s nominal diameter d:
- Boss outer diameter: 2 × d (6 mm for a 3 mm screw).
- Screw engagement: 2 × d (6 mm).
- Counterbore at the top of the hole: 1.05 × d (3.15 mm), which EJOT uses to spread the stress at the hole’s edge.
Würth’s table matches this for ABS (2 × d boss, 2 × d depth). For nylon it gives a 1.85 × d boss and 1.7 × d depth. EJOT notes that a larger hole lowers the load the joint carries, and more engagement depth makes up the difference. If the screw strips, try the next smaller factor. If the boss splits, try the next larger one and lengthen the engagement.
What hole size does a #8 screw need in a 3D print?
Model a 0.196 in hole (#9 drill, 4.98 mm) for a #8 screw (0.164 in, 4.17 mm) to pass through: the ASME B18.2.8 normal fit. Close is 0.180 in (4.57 mm) and loose 0.213 in (5.41 mm). To tap 8-32, model 0.136 in (#29 drill, 3.45 mm). A self-tapping pilot starts near 0.131 in (3.33 mm).
| Screw | Major diameter | Close | Normal | Loose | Tap drill (UNC) |
|---|---|---|---|---|---|
| #2 | 0.086 in | 0.094 in (3/32) | 0.102 in (#38) | 0.116 in (#32) | 0.070 in (#50), 2-56 |
| #4 | 0.112 in | 0.120 in (#31) | 0.128 in (#30) | 0.144 in (#27) | 0.089 in (#43), 4-40 |
| #6 | 0.138 in | 0.154 in (#23) | 0.170 in (#18) | 0.185 in (#13) | 0.1065 in (#36), 6-32 |
| #8 | 0.164 in | 0.180 in (#15) | 0.196 in (#9) | 0.213 in (#3) | 0.136 in (#29), 8-32 |
| #10 | 0.190 in | 0.206 in (#5) | 0.221 in (#2) | 0.238 in (B) | 0.1495 in (#25), 10-24 |
| 1/4 in | 0.250 in | 0.266 in (17/64) | 0.281 in (9/32) | 0.297 in (19/64) | 0.201 in (#7), 1/4-20 |
The normal fit in millimeters: #2 2.59 mm, #4 3.25 mm, #6 4.32 mm, #8 4.98 mm, #10 5.61 mm, 1/4 in 7.14 mm.
- Clearance: ASME B18.2.8 lists a minimum and a maximum hole. The table shows the minimum, which is the drill size; a #8 normal hole may run from 0.196 to 0.203 in.
- Fine threads: an 8-36 screw uses the same clearance holes as 8-32, because clearance depends on the diameter, not the pitch. For 10-32 UNF (Unified National Fine) the tap drill is a #21 (0.159 in, 4.04 mm).
- Self-tapping: the 0.131 in pilot is 0.8 × 0.164 in. The factors come from metric screw makers’ tables. If your inch screw’s data sheet gives a pilot size, use it instead.
Close, normal or loose: which clearance to use
Normal is the general-purpose fit. Close leaves the least play, for parts that must sit in an exact spot. Loose gives extra room for misalignment, for example when several screws must line up through two printed parts.
| Screw | Close, per side | Normal, per side | Loose, per side |
|---|---|---|---|
| M3 | 0.1 mm | 0.2 mm | 0.3 mm |
| M5 | 0.15 mm | 0.25 mm | 0.4 mm |
| #8 | 0.008 in (0.2 mm) | 0.016 in (0.41 mm) | 0.0245 in (0.62 mm) |
These gaps hold only if the hole prints at the modeled size. A printer that makes holes 0.2 mm small closes an M3 close-fit hole down to the screw’s own 3 mm, so measure and correct before you choose close. For fits between two printed parts, such as a pin in a hole, use the tolerance calculator.
Correcting for holes that print small
Bambu Lab’s wiki lists filament shrinking as it cools among the reasons a printed hole measures smaller than designed. In his polyholes article, nophead points to two others: exporting to STL turns a round hole into a polygon whose flat sides sit inside the circle, and the extruded line cuts the corners as the nozzle goes around.
Measure your own printer, then correct in one place only:
- In the model: print a test hole at a known size, measure it and type designed minus measured into the calculator’s “Hole undersize to add” field.
- In the slicer: the hole compensation calculator turns a measured test hole into each slicer’s value.
- Bambu Studio and OrcaSlicer: X-Y hole compensation, under Process > Quality > Precision. Bambu Lab’s wiki says the hole diameter grows by twice the value, so enter half the undersize.
- UltiMaker Cura: Hole Horizontal Expansion, in the Walls settings. It also offsets each wall, so enter half the undersize here too.
- PrusaSlicer 2.9: no hole setting, only XY Size Compensation (Print Settings > Advanced > Slicing, Expert mode). It moves every wall, so a negative value opens holes but also shrinks the outside of the part.
- With a drill: Hubs notes that a hole drilled after printing comes out more accurate than a printed one. Print the hole a little small and drill it to the table size.
If you already scale the part for shrinkage with the shrinkage calculator, measure the test hole on a scaled print so the two corrections do not overlap.
Published · Figures last checked
Sources
- Bureau of Indian Standards, IS 1821:1987 Dimensions for clearance holes for bolts and screws, identical with ISO 273:1979 (Public.Resource.Org copy) (accessed 2026-10-18)
- AmesWeb, Metric clearance hole chart per ASME B18.2.8 (accessed 2026-10-18)
- AmesWeb, Clearance hole chart for inch fasteners per ASME B18.2.8 (accessed 2026-10-18)
- AmesWeb, UNC thread chart per ASME B1.1 (major diameters) (accessed 2026-10-18)
- AmesWeb, Unified tap drill chart (UNC and UNF) (accessed 2026-10-18)
- AmesWeb, Metric tap drill chart (ISO coarse and fine) (accessed 2026-10-18)
- Würth Industrie Service, DINO technical part, chapter 9: Direct screwing into plastics and metal (WÜPLAST boss table) (accessed 2026-10-18)
- EJOT, EJOT PT screw flyer (boss design for thermoplastics) (accessed 2026-10-18)
- EJOT, EJOT DELTA PT flyer (hole diameter for thermoplastics) (accessed 2026-10-18)
- Bambu Lab Wiki, XY Hole / Contour compensation (accessed 2026-10-18)
- OrcaSlicer source, Tab.cpp (X-Y hole compensation under Quality > Precision) (accessed 2026-10-18)
- UltiMaker Cura source, fdmprinter.def.json (Hole Horizontal Expansion) (accessed 2026-10-18)
- PrusaSlicer 2.9.6 source, PrintConfig.cpp (XY Size Compensation) (accessed 2026-10-18)
- PrusaSlicer 2.9.6 source, Tab.cpp (Advanced page, Slicing group) (accessed 2026-10-18)
- nophead, HydraRaptor: Polyholes (why printed holes come out small) (accessed 2026-10-18)
- Hubs, How to assemble 3D printed parts with threaded fasteners (accessed 2026-10-18)