← Blog
Tolerancing, GD&T and machine elements

Tolerances in CAD: What AI Tools Usually Get Wrong

The specific ways generative CAD tools mishandle tolerance — from silently defaulting to nominal dimensions to ignoring fit relationships between mating parts — and how to catch it before a part reaches the shop.

Author:
Cadagen
Technical review:
CADAGEN Engineering Team · Mechanical Engineer
Last updated:
August 16, 2026
Sources:
3 primary references, listed below

Most AI-generated CAD models carry no tolerance information at all — every dimension is treated as an exact, nominal value with no allowance for real-world manufacturing variation. This isn't a minor omission. A model with only nominal dimensions and no tolerance is not a complete engineering specification; it's a shape. Whether that gap matters depends entirely on what the part is for, but for anything that mates with another part, it matters a lot.

CAD model with missing tolerance callouts highlighted

Why "exact dimensions" isn't actually a complete spec

Every manufacturing process has inherent variation — a CNC-machined hole won't be exactly 10.000 mm every time, it'll be 10.000 mm ± some process capability, typically a few hundredths to a few tenths of a millimeter depending on the process and machine. A model that specifies "10 mm" with no tolerance leaves the actual acceptable range up to whoever inspects the part — which usually means either the shop applies a generic default tolerance (which may be too loose or too tight for your actual need) or nothing gets flagged as out-of-spec until an assembly fails.

Common tolerance mistakes in generative CAD

The specific mistakes generative tools tend to make

1. Treating every dimension as equally important

A real design has a handful of dimensions that are functionally critical (they control fit, alignment, or load path) and many more that are not (they just need to be "close enough" for clearance or aesthetics). A model that can't distinguish between these — and most freeform generation can't, because it isn't reasoning about function, just producing a plausible shape — has no way to tell you where tight tolerance actually matters. This is one of the reasons GD&T exists as a separate discipline; see our GD&T basics guide for how to communicate "this is critical, this is not" explicitly.

2. Ignoring fit relationships between mating parts

A shaft and the bore it sits in aren't two independent dimensions — their relationship (how much clearance or interference exists between them) is the actual functional requirement. A model that generates a shaft and a bore as separate features, each with its own nominal dimension and no explicit fit relationship, can produce a pair that's geometrically "close" but functionally wrong — a running fit that's actually a light interference fit once real tolerances are applied, for example. This is exactly what the ISO 286 fit system exists to formalize: a hole and shaft toleranced as a matched pair (H7/g6, H7/p6, etc.), not two independent numbers. For a concrete Ø25 mm H7/g6 sliding fit, ISO 286-2 tables give roughly 0.007–0.041 mm of clearance — the kind of number that only appears once you treat hole and shaft as a paired fit, not two independent "10 mm" callouts.

Verified ISO 286-2 Cylindrical Fits and Deviations Table

The following reference table lists standardized ISO 286-2 limit deviations (in micrometers, µm) across primary diameter bands used in mechanical engineering:

Nominal Size Range (mm) Hole H7 (µm) Shaft g6 (Sliding, µm) Shaft h6 (Locational, µm) Shaft k6 (Transition, µm) Shaft p6 (Press Fit, µm)
>3 – 6 mm +12 / 0 −4 / −12 0 / −8 +9 / +1 +20 / +12
>6 – 10 mm +15 / 0 −5 / −14 0 / −9 +10 / +1 +24 / +15
>10 – 18 mm +18 / 0 −6 / −17 0 / −11 +12 / +1 +29 / +18
>18 – 30 mm +21 / 0 −7 / −20 0 / −13 +15 / +2 +35 / +22
>30 – 50 mm +25 / 0 −9 / −25 0 / −16 +18 / +2 +42 / +26

Source: ISO 286-2:2010 Geometrical product specifications (GPS) — Tables of standard tolerance classes and limit deviations.

ISO Metric Coarse Thread Pitches and Tap Drill Sizes (ISO 261 / ISO 965)

Standard fasteners require exact pitch and core hole specifications before tapping. Nominal values for metric coarse threads:

Nominal Thread Size Pitch (mm) Tap Drill Diameter (mm) Nut Minor Diameter (mm)
M3 0.50 2.50 2.387
M4 0.70 3.30 3.141
M5 0.80 4.20 4.019
M6 1.00 5.00 4.773
M8 1.25 6.80 6.466
M10 1.50 8.50 8.160
M12 1.75 10.20 9.853
M16 2.00 14.00 13.546
M20 2.50 17.50 16.933

Source: ISO 261:1998 ISO general purpose metric screw threads — General plan; ISO 965-1:2013 Tolerances.

3. Defaulting to unrealistically tight tolerance, or none at all

Two opposite failure modes show up in practice: some generated outputs imply (or a downstream user assumes) unnecessarily tight tolerance on every dimension, which drives up manufacturing cost for no functional benefit; others carry no tolerance information at all, which pushes the decision downstream to whoever manufactures the part — often without the context needed to make it well. Neither is correct. The tolerance should be as loose as function allows and as tight as function requires, dimension by dimension — which requires actually reasoning about what each dimension does, not applying one blanket rule.

Even the "general tolerance" fallback most shops apply when a drawing states none is itself a standard, not a guess — ISO 2768 defines four classes (fine, medium, coarse, very coarse) with published bands per size range, for example ±0.1 mm for a 6–30 mm dimension under the medium class. A generated model that carries no tolerance information forfeits the choice of which class applies, and a shop defaulting to "medium" for a feature that actually needed "fine" precision — or vice versa — is exactly the silent mismatch described above, just with a named standard sitting unused in the background.

4. Not accounting for tolerance stack-up in a chain of dimensions

If several toleranced dimensions are chained together (e.g., a series of features along one axis, each with its own tolerance, where the cumulative position of the last feature depends on all the previous ones), the worst-case total variation is the sum of the individual tolerances — not the tolerance of any single dimension. A generated part that looks fine dimension-by-dimension can still fail an assembly-level requirement once stack-up is considered, and this is very hard to catch by inspecting individual dimensions in isolation.

A worked example: why "10 mm hole, 10 mm shaft" isn't a spec

Consider a shaft meant to rotate freely in a bore. If both are simply specified as "10 mm" with no tolerance:

  • The shop machining the bore might hold it to their default tolerance, say 10.00–10.05 mm.
  • The shop machining the shaft might independently hold their default, say 9.95–10.00 mm.
  • In the worst case, you get a 10.05 mm bore and a 9.95 mm shaft — 0.1 mm clearance, which might be fine for a loose rotating fit, or might be far too much play for a precision application.
  • In the other worst case, you get a 10.00 mm bore and a 10.00 mm shaft — a line-to-line fit with essentially zero clearance, which likely won't rotate freely at all.

Specify it correctly with a matched fit — say H7 hole / g6 shaft — and the acceptable range for both parts together is defined as a pair, guaranteeing a specific clearance range regardless of where each individual part lands within its tolerance. This is the difference between "two numbers that happen to be close" and an actual engineering fit specification.

What a tolerance-aware pipeline should actually do

  1. Flag dimensions with no stated tolerance rather than silently treating them as exact — an unstated tolerance should be a visible gap, not a hidden assumption.
  2. Recognize mating relationships between features (shaft/bore, bolt/clearance hole) and apply fit logic rather than independent nominal dimensions.
  3. Default to standard, proven fit classes (like the ISO 286 preferred fits) rather than inventing a custom tolerance band for every feature — proven fits are proven precisely because they've been used enough to know they work and can be manufactured economically.
  4. Surface tolerance stack-up risk in chained dimension sequences, rather than only validating each dimension in isolation.
  5. Distinguish functionally critical dimensions from non-critical ones, ideally through explicit GD&T callouts rather than uniform ± tolerance across the whole part.

The bottom line

A model without tolerance information isn't wrong, exactly — it's incomplete. The gap between "a shape that looks like the part" and "a manufacturing specification for the part" is precisely the tolerance information, and it's the part of the job that generative tools most often skip because it requires actually reasoning about function and fit, not just producing plausible geometry. Before trusting a generated model for manufacturing, check whether tolerance was considered at all — and if it wasn't, treat that as an open engineering task, not a detail to skip.

Sources: ISO 286-1:2010 · ISO 286-2:2010 — Limit deviation tables · MetricMech — ISO 286 fits chart · ASME Y14.5-2018 · Fictiv — GD&T 101.

Frequently asked questions

Why does an AI-generated CAD model usually have no tolerances?
Because most generation systems reason about shape, not function — they can produce a plausible-looking geometry without knowing which dimensions are load-bearing, which mate with another part, and which are purely cosmetic. Tolerance requires that functional judgment; a system that only produces a shape has no basis for deciding how tight or loose any given dimension needs to be.
What is the difference between a nominal dimension and a toleranced fit?
A nominal dimension is a single number, like 10 mm, with no stated allowance for manufacturing variation. A toleranced fit specifies a matched range for two mating parts together — for example ISO 286's H7/g6 — so that regardless of where each part lands within its own tolerance, the resulting clearance or interference between them stays within a guaranteed range.
Can a part with only nominal dimensions still be manufactured?
Yes, but the tolerance decision doesn't disappear — it just moves downstream to whoever inspects the part, usually without the functional context to make it correctly. The shop applies a generic default tolerance, which may be too loose for a precision fit or unnecessarily tight (and expensive) for a non-critical dimension. Stating the tolerance up front is cheaper than discovering the mismatch during assembly.

References

  1. ISO 286-1:2010 Limits and fits system overview — ISO
  2. ISO 286-2:2010 Limit deviation tables — ISO
  3. ISO 286 Fits Chart: H7/g6, H7/h6, H7/k6 tolerances — MetricMech