Rules
One rule per hardware type, applied to every head-side and tail-side part of every fastener. A fastener fails if any of its parts fails; it is could-not-check if any part is, and none fails.
| Type | Rule, as the checker states it |
|---|---|
| BLOCK | Block diameter must be greater than the fastener diameter (or no diameter listed) |
| NUT | Nut diameter must be equal to the fastener diameter |
| RING | Ring diameter must be greater than the fastener diameter |
| SPACER | Spacer diameter must be greater than the fastener diameter (or no diameter listed) |
| WASHER | Washer diameter must be greater than the fastener diameter (or no diameter listed) |
Outcomes
| Pass | The hardware meets its rule. |
| Pass · no diameter | BLOCK, SPACER or WASHER with no diameter listed: not measured, passes per the acceptance criteria. |
| Fail | The hardware breaks its rule. Logged against the FAS object at the Log Option level (error by default). |
| Could not check | A number the rule needs is missing: no diameter on a NUT or RING, an unknown fastener diameter, hardware in no library, a part that would not load. Logged as a warning. |
| Not applicable | The hardware type is not one of the five. Reported, not judged. |
What the requirement leaves open, and what the checker does
Each is a default, stated here so it can be changed on purpose rather than discovered later.
Passes. The acceptance criteria say “greater than the fastener or no diameter listed”; the description says only “must be greater”. The acceptance criteria are the testable contract, so they win by default.
Parameter: Washer Must Have a Diameter = true switches to the description reading: a diameterless washer then cannot pass.
Could not check (a Check-Mate warning). The requirement gives no pass for these, and silently passing a nut nobody measured is the failure this check exists to prevent.
The type NX Join stored on the hardware (PointJoinHardware.Type), which the Join dialog copies from the library’s Type / Hardware Type column. When the join has none, the library row is read. Matching is on the whole word, any case: Nutplate, Weld Nut and Rivet Nut are not NUT.
Parameter: Type Aliases maps other types onto the five, e.g. “Collar=NUT; Lock Washer=WASHER”. An alias to anything but the five is refused rather than ignored.
The pin’s row in the hardware library. If the pin has no diameter there, the Diameter of its specification in the Join XML database. If neither has one, every part on that fastener is could not check.
Parameter: Hardware XML Databases lists the hardware.xml files to read; Extra Hardware Library Folders adds folders searched for Hardware.xlsx.
Within 0.0001 in. Exact comparison fails a 6.35 mm nut on a 1/4 in fastener, because 6.35 / 25.4 is not exactly 0.25 in floating point; the verification proves it.
Parameter: Equality Tolerance (in).
Not applicable, reported, never a pass and never a fail. A fastener with no covered hardware at all is not applicable as a whole.
Point joins of the Fastener subtype (Join ID prefix FAS): the “Fastener” option of the Join Fastener command. Rivets and other point-join subtypes are left alone.
Parameter: Join Subtypes to Check, e.g. “Fastener; Rivet”.