Almost every printed mechanism ends up on a shaft somebody else made: a GT2 pulley on a stepper, a knob on a potentiometer, an encoder wheel, a hub on a gearmotor. This is a different problem from two printed parts mating, and the difference is not small.
When both halves are printed you have two surfaces to trade against each other, and shrinkage largely cancels because both parts shrink. Against a metal shaft, neither is true. The bore is your only degree of freedom, and shrinkage becomes a full error term instead of a cancelling one.
The shafts you are actually printing against
These are ground or drawn metal. They arrive on size, which is the good news, and you cannot change them, which is the rest of it.
| Dia | What it is | Note |
|---|---|---|
| 3.00 | Small gearmotor, N20 output | Often D-shaft |
| 4.00 | DC motor, 28BYJ-48 stepper | Often D-shaft |
| 5.00 | NEMA 17 stepper | Plain or D-shaft |
| 6.35 | NEMA 23 stepper (1/4 in) | Imperial, plain |
| 8.00 | Linear rod, T8 leadscrew, 608 bore | Plain |
| 10.00 | Linear rod, larger idlers | Plain |
One-sided: half the error, half the cure
Take the same 5 mm sliding pair in PETG and compute it both ways. With two printed parts the model shrinks the shaft by 0.086 mm so the pair lands on target. With a metal shaft that correction is zero by definition — the shaft is 5.000 mm.
| Case | Target shaft | Modelled shaft | Correction |
|---|---|---|---|
| Both printed | 4.876 | 4.790 | −0.086 |
| Metal shaft | 4.876 | 4.876 | 0.000 |
Applied process error drops from 0.455 mm spread across two surfaces to 0.345 mm on one. That sounds like good news and is only half of one.
With two printed parts, a bore that comes out tight can be answered by taking material off the peg. Against a purchased shaft there is nothing to trade — a bore that prints wrong is a scrapped part. The calculator says this out loud when only one member is printed: shrinkage no longer cancels between the parts, it is now a full error term. That is the single most common reason a fit which worked print-to-print fails against a bought shaft or bearing.
Which fits you can actually hold
A fit whose design clearance is smaller than the machine's repeatability band is not a fit, it is a lottery. At a 0.2 mm layer the band is ±0.080 mm. Compare that against what each ISO class asks for at motor-shaft diameters, PETG, metal shaft:
| Dia | Transition | Sliding | Running | Free |
|---|---|---|---|---|
| 3.00 | 0.026 | 0.104 | 0.156 | 0.261 |
| 4.00 | 0.029 | 0.115 | 0.172 | 0.287 |
| 5.00 | 0.031 | 0.124 | 0.186 | 0.310 |
| 6.35 | 0.034 | 0.134 | 0.202 | 0.336 |
| 8.00 | 0.036 | 0.145 | 0.218 | 0.363 |
| 10.00 | 0.039 | 0.157 | 0.235 | 0.392 |
The transition column never clears the band. At 5 mm it asks for 0.031 mm of clearance while the machine scatters ±0.080 mm — the tolerance you want is 2.6× smaller than the noise. You cannot hold it with better slicing or a finer nozzle, because the band is machine repeatability, not resolution. Across every size in the table, the tightest class that clears the band is sliding.
This is why the honest default for a hub on a motor shaft is a sliding fit plus a mechanical clamp, not a tighter bore.
The grub screw decides the fit
The usual question is "how tight should the bore be". The better question is what is carrying the torque.
| Joint | Torque path | Class |
|---|---|---|
| Pulley with grub screw | Screw clamps the shaft | Sliding |
| Pulley, no grub screw | Bore friction only | Press |
| D-shaft hub, any screw | The flat, mechanically | Sliding |
| Idler, free-spinning | None, must not bind | Free |
| Bearing seat in printed part | Press ring, permanent | Press |
| Knob on a plain shaft | Friction, hand torque | Transition |
If a grub screw or a D-flat carries the torque, the bore is a locating feature: slip it on, then clamp. Chasing a press fit as well is how bosses split. Note the last row is the one case that genuinely wants a transition fit — and per the table above, that is the fit you cannot hold, which is why plain-shaft friction knobs are unreliable and why they nearly all ship with a screw.
Press fit on a metal shaft: what the model refuses to promise
Ask for a press fit on a 5 mm shaft and the interference is 0.039 mm against a band of ±0.080 mm. The actual interference therefore lands anywhere between −0.041 mm and +0.119 mm. At the low end it spins on the shaft; at the high end it splits the boss.
Press fits load the boss in hoop tension. Keep the wall around the bore at least 0.25 × diameter (1.3 mm on a 5 mm shaft) and add a 0.5 mm lead-in chamfer so the shaft self-aligns instead of shaving the bore. On a metal shaft the printed boss takes all of that stress alone.
This is the one case where printing a test coupon is not optional. The spread is wider than the interference itself, so a published number — including ours — cannot tell you whether your machine will land in the working part of that range.
Material barely moves the bore
Across every common filament, the modelled bore for a 5 mm sliding fit spans 5.353 mm (PLA-CF) to 5.426 mm (PP) — a total spread of 0.073 mm, which is inside the ±0.080 mm band.
| Material | Shrink % | Model this bore |
|---|---|---|
| PLA-CF / PLA-GF | 0.15 | 5.353 |
| PLA | 0.30 | 5.361 |
| PA-CF | 0.40 | 5.366 |
| PETG | 0.50 | 5.372 |
| PC | 0.70 | 5.383 |
| ABS / ASA | 0.80 | 5.388 |
| PA / Nylon | 1.20 | 5.410 |
| PP | 1.50 | 5.426 |
Material is not the lever here. Pick it for what the part must survive — heat next to a stepper, toughness on a load-bearing hub — then compensate the bore for whichever you picked.
D-shafts
A D-shaft transmits torque through the flat, mechanically, and that is strictly better than friction. But the calculator computes a diametral allowance for a round feature: the curvature factor at 5 mm is 1.400, while a flat wall has no curvature and sits at 1.000.
So model the round portion from the tables above. For the flat, the honest statement is directional: leave the flat slightly proud so the screw pulls the shaft against it, rather than trying to make the D a close fit on both faces at once. There is no number to print for the flat — the model has no term for it.
Worked example: GT2 pulley on a 5 mm NEMA 17 shaft
PETG, 0.4 mm nozzle, 0.2 mm layer, grub screw carries the torque so the bore only has to locate.
| Quantity | mm |
|---|---|
| Shaft (metal, fixed) | 5.000 |
| Target bore as printed | 5.000 |
| Model this bore | 5.372 |
| Correction applied | +0.372 |
| Drawn at nominal, prints | 4.630 |
| Repeatability band | ±0.080 |
Draw the bore 5.372 mm, not 5.000. Drawn at nominal it prints 4.630 mm, which is 0.37 mm undersize and will not go on the shaft at all. This single correction is the difference between a part that fits and a part you file for ten minutes.
Run your own numbers Enter the shaft diameter, pick the fit class and material, and set the parts option to a printed hole only — the calculator drops the shaft correction and returns the bore to model, with the repeatability warning if the fit is inside the band.Frequently asked
My pulley bore printed too small even though I added 0.2 mm. Why?
Because the correction at 5 mm is 0.372 mm, not 0.2 mm. The folklore figure is roughly half what a small bore needs, since the loss is nearly constant in absolute terms while the bore is small. A 0.4 mm nozzle simply takes that much out of a 5 mm hole.
Should I ream or drill the bore to size instead?
Reaming works and removes the process error entirely, so if you own the reamer it is the reliable answer for a press fit. Model the bore undersize and ream to final. For a sliding fit with a grub screw it is not worth the step — compensating in CAD gets you inside the band anyway.
Can a finer nozzle hold a transition fit?
No. A finer nozzle reduces the systematic offset, which the calculator already corrects for, but the ±0.080 mm figure is machine repeatability — belt backlash, thermal drift, bed variation. That is what the transition column loses to, and it does not scale with nozzle diameter.
Does this apply to bearings and linear rods too?
Yes, identically — a 608 bearing outer race and an 8 mm rod are both purchased metal, so the bore is again your only degree of freedom. Bearing seats need a press fit, which puts them in the coupon-required category above. See the bearing fit guide for the seat sizes.