# Adjustable inspection fixture

This is actual parametric CAD compiled from a supplied, provider-reviewed mechanical contract. The API models reviewed the contract and plan. Codex authored the separate Python CAD implementation; no claim is made that the models emitted this source.

The assembly contains 20 meaningful component instances and 0 explicitly counted fastener envelopes, representing 10 distinct designs and 4 functional subassemblies. Counts come from the same inventory exported to STEP, GLB and BOM.

- Open assembly.step for named, colored BRep solids and native CAD hierarchy. STEP uses millimetres and Z up.
- Open assembly.glb for the assembled model or exploded.glb for the presentation exploded view. GLB uses metres and Y up; named leaf nodes have identity transforms. Geometry is mapped from CAD (x,y,z) mm to (x,z,-y)/1000 metres.
- parts.json records each node name, design ID, functional group and explosion offset in original CAD XYZ millimetres.
- BOM.csv identifies every instance; parts/ contains its individual STL in global CAD millimetres. STL has no intrinsic unit metadata.
- assembled, exploded and engineering-drawing SVG/PNG files render the actual mesh. detail-sheets/ provides readable subassembly views.
- mechanical-design.json is the actual saved contract; source.py is its editable parametric implementation.
- cad-manifest.json records BRep validity, native STEP round-trip, exact selected clearance/interference checks and file hashes.

Validation covers the static shown pose. Digital checks are not a motion study, tolerance stack, physical prototype, structural assessment or certification. Motors, bearings, optics and connectors are nominal envelopes. Screw threads and internal bearing mechanisms are simplified. Exploded offsets are presentation transforms, not a verified assembly path.

Reproduce from the repository: node scripts/cookbook-mechanical-render.mjs --only=inspection-fixture. It uses the existing offline ce-spec-native:spec-final-2 Docker image with build123d 0.11.1, Python 3 with NumPy/Pillow, and sharp. The container sees only an isolated scratch directory and has no network access. There are no API calls or commissioned specification jobs.

## Builder implementation decisions — not model approvals

- Added explicit through-bores for the rods and screw, replaceable bushing seats, a nominal travel nut and a bored handwheel; these are CAD implementation details, not tested retention interfaces.
- The shown jaw opening is 78 mm. The proposed 60 mm stroke is a closing-direction hypothesis only; opening by 60 mm would collide with the right support. No motion simulation was performed.

## Remaining engineering conflicts

- Guide/screw axial retention, jaw locking, practical travel stops and manufacturing fits remain undefined.

## Actual selected geometry results

5 of 5 selected clearance/interference checks pass in the shown static pose. The separate valid-solid and STEP round-trip checks pass. These are computational results, not physical testing.
