Small, machine-readable reference tables for mechanical drawings, in CSV and JSON, with every claim checkable by a script in this repository.
There are a lot of GD&T and surface-finish charts on the web. Most are images, most are transcribed from each other, and almost none tell you where a number came from or which standard revision it belongs to. This repository is the opposite: plain text, one fact per column, and a verifier you can run yourself.
Rendered HTML of the same tables: https://makenexa.github.io/engineering-reference-data/
| File | Rows | Contents |
|---|---|---|
data/gdt-symbols.csv |
14 | Geometric characteristics — symbol, Unicode codepoint, category, whether a datum is required, and status in ASME Y14.5-2018 vs ISO 1101 |
data/gdt-modifiers.csv |
15 | Material-condition and drafting modifiers — MMC, LMC, projected tolerance zone, counterbore, countersink, depth, all-around and the rest |
data/surface-roughness-grades.csv |
12 | ISO 1302 N-grades N1–N12 and their preferred Ra values |
Each file has a .json twin with identical contents. CSV is the source of truth;
the JSON is generated by tools/to-json.py, and tools/verify.py fails if the two
ever disagree. Column definitions are in data/README.md.
Companion article that uses the same 14-row ASME/ISO split: https://makenexa.com/resources/engineering-drawing-checklist/
python tools/verify.pyThe verifier:
- re-derives every glyph and official character name from the Unicode Character Database in your Python install
- rejects a row marked as having a dedicated GD&T codepoint when the character is borrowed, and the reverse
- requires concentricity and symmetry to be
withdrawnin ASME Y14.5-2018 andactivein ISO 1101, and the other twelve to beactivein both - requires form controls to have no datum, profile to be optional, and orientation, location and runout to require a datum
- requires the N-grade Ra series to be the ISO 1302 preferred numbers (N9 = 6.3 µm, not 6.4; N7 = 63 µin, not 64)
- fails if any JSON file has drifted from its CSV
Nothing about the codepoints is transcribed from a chart, so a wrong codepoint cannot survive a run.
Most GD&T symbols do not have their own Unicode character. Unicode encodes
straightness, flatness, cylindricity, symmetry, position, total runout, counterbore,
countersink, conical taper, slope, all-around and dimension origin by name. The rest —
circularity, perpendicularity, parallelism, angularity, both profile symbols,
concentricity, circular runout, and every circled-letter modifier — are geometry or
enclosed-alphanumeric characters that drafting practice borrowed. The
codepoint_dedicated_to_gdt column records which is which, because the borrowed ones
render inconsistently across fonts and are the usual cause of a symbol turning into a
box in a PDF.
Concentricity and symmetry are not interchangeable across standards. ASME
Y14.5-2018 withdrew both; ISO 1101 retains them. A drawing carrying those symbols is
therefore either ISO, or ASME to an earlier revision. The asme_y14_5_2018 and
iso_1101 columns record this per row rather than presenting one merged list.
N-grades are preferred numbers, not binary doubling. ISO 21920-1:2021 replaced ISO 1302 for new surface-texture specifications and does not use N-grades. The series is still on drawings in circulation, which is why it is here.
- Ra ↔ Rz conversion. There is no fixed relationship between them. The ratio depends on the profile the process leaves, so a turned surface and a ground surface at the same Ra have different Rz. Charts that print a single multiplier hide that, and reproducing one here would make an approximation look like a constant.
- ISO 286 IT tolerance tables. Those values are the substance of a copyrighted standard, not free-standing facts.
- Material property tables. Real values move with supplier, temper, section size and heat lot. A single unattributed number is worse than no number, and this repository has no way to attribute one.
This is a convenience copy of well-established reference material, not a standard. The controlling document is always the standard revision your drawing cites — ASME Y14.5, ISO 1101, ISO 21920 (which superseded ISO 4287/4288 for surface texture) or whichever your contract names. Where this data and a standard disagree, the standard is right; please open an issue.
CC0 1.0 — public domain dedication. Use it in anything, no attribution required.
Cite the dataset via CITATION.cff if you want a stable reference.
Maintained by MakeNexa, which does managed sourcing for custom manufactured parts. We kept re-deriving these tables internally, so we published them. Corrections are welcome as issues or pull requests.