standard_part_designate
Convert a purchased part into an orderable designation such as "ISO 4762 M4×12 A2" from a handle, raw string, or family spec, and report missing facts instead of guessing.
Instructions
The canonical, orderable designation of a purchased standard part — the string a buyer can actually quote against: "ISO 4762 M4×12 A2", "608-2RS", "AS568-214 NBR70". A BOM row that reads "SocketHeadCapScrew" is not a buyable line; this is what turns it into one.
Three ways in: handle read the designation add_fastener / add_bearing / add_thread stamped on the part when it was built. An object with no stamp reports designation=None plus whether its NAME reads like a purchased part. Nothing is ever inferred from geometry, so a hand-modelled bracket cannot acquire a false designation. designation normalise/parse a string — 'iso4762 m4x12 a2' becomes 'ISO 4762 M4×12 A2', so two spellings of one part can never become two BOM lines. family+spec build one from facts. family is fastener | bearing | oring | threaded_rod, and spec is respectively {kind, size, length, grade} / {designation, seals} / {inner_diameter, cross_section, compound} / {diameter, pitch, length, grade}.
Offline and deterministic — no network, no supplier, no credentials.
Returns the designation card: {ok, family, standard, designation, complete,
reason, purchased, ...family-specific fields}. complete=False means the string is
not yet enough to order against (typically nobody said which material grade),
with reason naming the gap — a missing fact is reported, never defaulted to a
plausible-looking lie.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| spec | No | ||
| family | No | ||
| handle | No | ||
| designation | No |