M2 to M8 hole size chart
What to model in CAD for each screw size, for a typical printer (0.4 mm nozzle, vertical holes printing 0.2 mm small).
| Screw | Passes through | Threads into plastic | Heat-set insert | Nut trap (flats x depth) | Countersink | Counterbore (dia x depth) |
|---|---|---|---|---|---|---|
| M2 | 2.6 | 1.7 | 3.4 | 4.3 x 1.9 | n/a | 4.6 x 2.3 |
| M2.5 | 3.1 | 2.2 | 4.2 | 5.3 x 2.3 | n/a | 5.3 x 2.8 |
| M3 | 3.6 | 2.6 | 4.2 | 5.8 x 2.7 | 6.3 | 6.3 x 3.3 |
| M4 | 4.7 | 3.5 | 5.9 | 7.4 x 3.5 | 8.4 | 7.9 x 4.3 |
| M5 | 5.7 | 4.4 | 6.7 | 8.4 x 5.0 | 10.4 | 9.4 x 5.3 |
| M6 | 6.8 | 5.3 | 8.3 | 10.4 x 5.5 | 12.4 | 10.9 x 6.3 |
| M8 | 9.2 | 7.1 | 9.9 | 13.4 x 7.1 | 16.4 | 13.9 x 8.3 |
Clearance holes: the screw passes through
ISO 273 gives three clearance hole sizes per screw. They are the sizes of the finished hole, as drilled in metal. A printed vertical hole comes out smaller than drawn, so add your printer's shrink to get the size to model.
| Screw | Thread dia | Close (ISO 273) | Normal (ISO 273) | Loose (ISO 273) | Model for a normal fit |
|---|---|---|---|---|---|
| M2 | 2.0 mm | 2.2 mm | 2.4 mm | 2.6 mm | 2.6 mm |
| M2.5 | 2.5 mm | 2.7 mm | 2.9 mm | 3.1 mm | 3.1 mm |
| M3 | 3.0 mm | 3.2 mm | 3.4 mm | 3.6 mm | 3.6 mm |
| M4 | 4.0 mm | 4.3 mm | 4.5 mm | 4.8 mm | 4.7 mm |
| M5 | 5.0 mm | 5.3 mm | 5.5 mm | 5.8 mm | 5.7 mm |
| M6 | 6.0 mm | 6.4 mm | 6.6 mm | 7.0 mm | 6.8 mm |
| M8 | 8.0 mm | 8.4 mm | 9.0 mm | 10.0 mm | 9.2 mm |
- Close: the screw locates the part with little play (alignment, hinges on a screw). Normal: the default. Loose: room to line up several holes or a part that has to be adjusted.
- Modelled at the ISO normal size as is (3.4 mm for M3), the hole prints near the close size: it still takes the screw on most printers. That is the designer's default when it only has to pass.
- Horizontal holes sag at the top: draw them as a teardrop with a 45 degree point, or add 0.1 to 0.2 mm in Z. The 3D print tolerance guide covers horizontal holes and fits between printed parts.
Screws threaded into the plastic
A metric machine screw cuts its own thread in PLA or PETG when the hole is about 0.85 times its diameter. It is the quickest joint, and it holds well for parts you assemble once. The thread wears each time you take the screw out, so for lids and covers you open often, use a heat-set insert.
| Screw | Pitch | Pilot hole to model (FDM) | Tap drill in metal (for reference) |
|---|---|---|---|
| M2 | 0.4 mm | 1.7 mm | 1.6 mm |
| M2.5 | 0.45 mm | 2.2 mm | 2.05 mm |
| M3 | 0.5 mm | 2.6 mm | 2.5 mm |
| M4 | 0.7 mm | 3.5 mm | 3.3 mm |
| M5 | 0.8 mm | 4.4 mm | 4.2 mm |
| M6 | 1.0 mm | 5.3 mm | 5.0 mm |
| M8 | 1.25 mm | 7.1 mm | 6.8 mm |
Go 0.1 mm smaller for more grip, or 0.1 mm larger if the screw is too hard to drive or the part splits. Screws made for plastic (wide-thread “PT” style) come with their own pilot tables from the maker: use those.
Heat-set insert hole sizes
A heat-set insert is a knurled brass sleeve you press into a slightly smaller hole with a soldering iron: the plastic melts around the knurls and you get a metal thread that survives many assemblies. The hole size comes from the insert maker. The two tables below are CNC Kitchen's and ruthex's, two widely used brands; generic inserts sold on marketplaces vary in diameter, so measure the knurls and check the seller's hole size.
CNC Kitchen inserts
| Insert | Length | Insert diameter | Hole (finished) | Model when printed | Min. depth | Min. wall |
|---|---|---|---|---|---|---|
| M2x3 | 3.0 mm | 3.6 mm | 3.2 mm | 3.4 mm | 4.0 mm | 1.3 mm |
| M2.5x4 | 4.0 mm | 4.6 mm | 4.0 mm | 4.2 mm | 5.0 mm | 1.6 mm |
| M3x5.7 | 5.7 mm | 4.6 mm | 4.0 mm | 4.2 mm | 6.7 mm | 1.6 mm |
| M3x3 | 3.0 mm | 4.6 mm | 4.0 mm | 4.2 mm | 4.0 mm | 1.6 mm |
| M3x5x4 (Voron) | 4.0 mm | 5.0 mm | 4.4 mm | 4.6 mm | 5.0 mm | 1.6 mm |
| M4x8.1 | 8.1 mm | 6.3 mm | 5.7 mm | 5.9 mm | 9.1 mm | 2.1 mm |
| M4x4 | 4.0 mm | 6.3 mm | 5.7 mm | 5.9 mm | 5.0 mm | 2.1 mm |
| M5x9.5 | 9.5 mm | 7.1 mm | 6.5 mm | 6.7 mm | 10.5 mm | 2.6 mm |
| M5x5.8 | 5.8 mm | 7.1 mm | 6.5 mm | 6.7 mm | 6.8 mm | 2.6 mm |
| M6x12.7 | 12.7 mm | 8.7 mm | 8.1 mm | 8.3 mm | 13.7 mm | 3.3 mm |
| M8x12.7 | 12.7 mm | 10.2 mm | 9.7 mm | 9.9 mm | 13.7 mm | 4.5 mm |
ruthex inserts
| Insert | Length | Insert diameter | Hole (finished) | Model when printed | Min. depth | Min. wall |
|---|---|---|---|---|---|---|
| M2x4 | 4.0 mm | 3.6 mm | 3.2 mm | 3.4 mm | 5.0 mm | 1.3 mm |
| M2.5x5.7 | 5.7 mm | 4.6 mm | 3.9 mm | 4.1 mm | 6.7 mm | 1.6 mm |
| M3x5.7 | 5.7 mm | 4.6 mm | 4.0 mm | 4.2 mm | 6.7 mm | 1.6 mm |
| M3x4 | 4.0 mm | 4.6 mm | 4.0 mm | 4.2 mm | 5.0 mm | 1.6 mm |
| M3x5x4 (Voron) | 4.0 mm | 5.0 mm | 4.4 mm | 4.6 mm | 5.0 mm | 1.3 mm |
| M4x8.1 | 8.1 mm | 6.3 mm | 5.6 mm | 5.8 mm | 9.1 mm | 2.1 mm |
| M4x4 | 4.0 mm | 6.3 mm | 5.6 mm | 5.8 mm | 5.0 mm | 2.1 mm |
| M5x9.5 | 9.5 mm | 7.1 mm | 6.4 mm | 6.6 mm | 10.5 mm | 2.6 mm |
| M5x5.8 | 5.8 mm | 7.1 mm | 6.4 mm | 6.6 mm | 6.8 mm | 2.6 mm |
| M6x12.7 | 12.7 mm | 8.7 mm | 8.0 mm | 8.2 mm | 13.7 mm | 3.3 mm |
| M6x6.8 | 6.8 mm | 8.7 mm | 8.0 mm | 8.2 mm | 7.8 mm | 3.3 mm |
| M8x12.7 | 12.7 mm | 10.1 mm | 9.6 mm | 9.8 mm | 13.7 mm | 4.5 mm |
Why model the hole 0.2 mm bigger
The maker's hole is the size the finished hole should have. In a March 2026 test, CNC Kitchen found that its printed holes came out about 0.25 mm smaller than the CAD size, that a 4.0 mm M3 hole (drilled) is a very good fit, and that pull-out strength drops sharply between 4.1 and 4.2 mm. For as-printed M3 holes it recommends modelling 4.2 mm, which still keeps about 90% of the maximum pull-out strength, and it typically adds 0.2 to 0.3 mm for the smaller inserts. The heat-set insert test block settles it for your printer and filament.
- Depth: at least the insert length plus 1 mm, so the displaced plastic has room. A through hole also works.
- Wall: keep at least the minimum wall in the table around the hole, more for parts under load.
- A small chamfer at the top of the hole helps the insert start straight.
Hex nut traps
A nut trap is a hexagonal pocket that holds a nut so you can tighten the screw from the other side. Model the hexagon by its distance across flats, a little bigger than the nut, and a little deeper than the nut is thick.
| Nut | Across flats | Across corners | Thickness | Pocket across flats | Pocket depth |
|---|---|---|---|---|---|
| M2 | 4.0 mm | 4.62 mm | 1.6 mm | 4.3 mm | 1.9 mm |
| M2.5 | 5.0 mm | 5.77 mm | 2.0 mm | 5.3 mm | 2.3 mm |
| M3 | 5.5 mm | 6.35 mm | 2.4 mm | 5.8 mm | 2.7 mm |
| M4 | 7.0 mm | 8.08 mm | 3.2 mm | 7.4 mm | 3.5 mm |
| M5 | 8.0 mm | 9.24 mm | 4.7 mm | 8.4 mm | 5.0 mm |
| M6 | 10.0 mm | 11.55 mm | 5.2 mm | 10.4 mm | 5.5 mm |
| M8 | 13.0 mm | 15.01 mm | 6.8 mm | 13.4 mm | 7.1 mm |
- Pockets that open on a side (a slot the nut slides into) use the same across-flats width.
- A pocket on the underside of a part leaves the screw hole above it in mid-air: print a one-layer cover over the pocket and push the screw through it afterwards, or turn the part over.
- Cheap nuts vary by a few tenths of a millimetre: measure the ones you have.
Countersinks and counterbores
Countersunk screws sit flush in a 90 degree cone; socket head cap screws sit flush in a counterbore. Both pockets go over the screw's clearance hole.
| Screw | Countersunk head | Countersink to model | Socket head (max) | Counterbore to model | Counterbore depth | Button head |
|---|---|---|---|---|---|---|
| M2 | n/a | n/a | 3.98 mm | 4.6 mm | 2.3 mm | n/a |
| M2.5 | n/a | n/a | 4.68 mm | 5.3 mm | 2.8 mm | n/a |
| M3 | 6.0 mm | 6.3 mm | 5.68 mm | 6.3 mm | 3.3 mm | 5.7 x 1.65 mm |
| M4 | 8.0 mm | 8.4 mm | 7.22 mm | 7.9 mm | 4.3 mm | 7.6 x 2.2 mm |
| M5 | 10.0 mm | 10.4 mm | 8.72 mm | 9.4 mm | 5.3 mm | 9.5 x 2.75 mm |
| M6 | 12.0 mm | 12.4 mm | 10.22 mm | 10.9 mm | 6.3 mm | 10.5 x 3.3 mm |
| M8 | 16.0 mm | 16.4 mm | 13.27 mm | 13.9 mm | 8.3 mm | 14.0 x 4.4 mm |
A countersink on the top face prints cleanly. On the bottom face it is a 45 degree overhang, which most printers handle without supports. Button heads sit on top of the part: they only need the clearance hole.
Measure your printer once
The “hole shrink” the calculator asks for is how much smaller your vertical holes print than you draw them. You can find it in one short print:
- Download the test block (7 labelled holes, 3.8 to 4.4 mm by default; the calculator sets it around your size) and print it in the filament you use, with your usual walls.
- Measure the holes with the shank of a drill bit or a gauge pin of known size: the largest shank that slides in is the hole size. Caliper jaws are hard to read in small holes.
- Shrink = modelled size minus measured size. Enter it under “I measured it”. For inserts, simply keep the hole where the insert starts by hand and goes in straight with the iron.
Fits between two printed parts (pins, lids, hinges) are a different measurement: the tolerance test on the 3D print tolerances page measures them, and saves the result as your fit profile for the AI designer. With a fit profile, the calculator offers its clearance as a starting estimate for the shrink.
Sources
- Screw, nut and head sizes: ISO 273, ISO 4032, ISO 4762, ISO 7380-1 and ISO 10642 as tabulated in the bd_warehouse data files.
- CNC Kitchen inserts: the Dimensions & Design Guidelines table and “Are our heat-set insert datasheets wrong?” (March 28, 2026).
- ruthex inserts: bd_warehouse insert data and the ruthex product table on 3DJake.
- Pilot holes, nut trap and counterbore slack: the design rules the BuildCAD AI designer follows (
partsdata.py, checked 2026-10-14).
