| Part | Gates | Files |
|---|---|---|
| ground four-bar-ground | PASS 11/11 | STEP · STL |
| crank four-bar-crank | PASS 11/11 | STEP · STL |
| coupler four-bar-coupler | PASS 11/11 | STEP · STL |
| rocker four-bar-rocker | PASS 11/11 | STEP · STL |
| File | Kind | Size |
|---|---|---|
| four-bar.step | STEP | 0.1 MB |
| four-bar.stl | STL | 102 KB |
assembly.yaml (design contract)
Planar crank-rocker four-bar linkage from sources/four-bar-spec.md (the only source, authoritative, text): a 160 x 60 x 5 ground plate with Ø6 pivot holes at O2 (0, 0) and O4 (100, 0), and three stadium links 5 thick and 16 wide with R8 ends and Ø6 holes (crank O2-A 40, coupler A-B 100, rocker O4-B 80 between hole centres). Four separate solids, each drafted and modelled in its own frame and stacked in layers (ground z -5..0, crank 0..5, coupler 5..10, rocker 10..15), joined by four revolute pins about +z into one closed loop: O2, A and O4 form the joint tree from the ground and B is the loop's closing joint. Rest is the open configuration (crank 0 deg, coupler 53.130102 deg, rocker 90 deg; A at (40, 0), B at (100, 80)). The crank pin O2 is motor-driven through one full revolution (0 to 360 deg about +z); the evaluator measures the rocker angle about O4 from rest, its total swing, and the x and y of the coupler point P ((50, 30) in the coupler frame, (46, 58) at rest) from the placed geometry.
| Tier | Gate | Result | Evidence |
|---|---|---|---|
| A | parts_pass Every part design passed its own 12 gates and has a handoff STEP | PASS | results/build123d/four-bar/parts.json designs.<design>.gates_ok: four-bar-ground=True, four-bar-crank=True, four-bar-coupler=True, four-bar-rocker=True |
| A | bom_complete Every body of the bill of materials is in the export, once, with a placement | PASS | results/build123d/four-bar/verify.json solid_count = 4 (expected 4); placements.missing = []; unmatched = [] |
| A | joint_fidelity Every joint's child frame lies on its parent frame (axis, offset, rest angle) | PASS | results/build123d/four-bar/verify.json joints.joints.<joint>.checks; failing: none |
| A | clearances Static clearances and seats at rest | PASS | results/build123d/four-bar/verify.json clearances.<name>; failing: none |
| A | motion_clear Every drive moves through its range without interference; gears mesh; ratios match tooth counts | PASS | results/build123d/four-bar/kinematics.json motions.<name>.max_interference: crankTurn=0 |
| A | fluid_domain Each fluid region is one sealed piece within its volume band and agrees with the source's fluid body | n/a | results/build123d/four-bar/domains.json fluids.<name>: |
| B | export_agreement Each exported body equals its part handoff x placement; the assembled envelope matches | PASS | results/build123d/four-bar/verify.json agreement.bodies.<body>.volume_rel/hausdorff_mm; envelope.max_error = 0.0 (tol 0.1) |
| B | performance Every predicted observable meets the requirement the sources state over its numerical band (value +- 2 u_numerical) | n/a | results/build123d/four-bar/simulate.json observables.<id>.requirement: |
| B | conservation Energy, mass and force balances of every analysis close within their tolerance | n/a | results/build123d/four-bar/simulate.json simulations.<id>.conservation: |
| B | refinement Every prediction of a mesh ladder is resolved: all its levels finished and the grid-convergence index is within tolerance | n/a | results/build123d/four-bar/simulate.json simulations.<id>.refinement.observables: |
| C | source_hygiene The assembly source imports only its declared inputs, formats and lints clean | PASS | results/build123d/four-bar/verify.json hygiene: cad_refs=[] truth_refs=[]; ruff format True, ruff check True |
| C | boundaries_complete Every face of a bounded body carries exactly one named boundary | n/a | results/build123d/four-bar/domains.json boundaries.<body>.unassigned/conflicts: none |
| C | provenance Stage JSONs carry provenance stamps; part handoffs are hash-bound; inputs carry provenance | PASS | results/build123d/four-bar/<stage>.json provenance present for ['verify', 'kinematics', 'domains', 'simulate']; parts.json designs.<d>.step_sha256 present: True |
| C | evidence_separation No worker-visible artefact reads truth; the assembly source only places declared inputs | PASS | results/build123d/four-bar/verify.json hygiene.truth_refs = [] |
| Body | Kind | Design | Material |
|---|---|---|---|
| ground | modelled | four-bar-ground | |
| crank | modelled | four-bar-crank | |
| coupler | modelled | four-bar-coupler | |
| rocker | modelled | four-bar-rocker |