Offset crank-slider mechanism of four separate solids in stacked layers, with a full-turn motion sweep.
| Part | Gates | Files |
|---|---|---|
| ground crank-slider-ground | PASS 11/11 | STEP · STL |
| crank crank-slider-crank | PASS 11/11 | STEP · STL |
| rod crank-slider-rod | PASS 11/11 | STEP · STL |
| slider crank-slider-slider | PASS 11/11 | STEP · STL |
| File | Kind | Size |
|---|---|---|
| crank-slider.step | STEP | 101 KB |
| crank-slider.stl | STL | 74 KB |
assembly.yaml (design contract)
Offset crank-slider from sources/crank-slider-spec.md (authoritative, text only): four separate solids in stacked 5 mm layers, a ground plate (z -5..0), a 30 mm crank and a 30 x 16 x 5 slider block (z 0..5) and a 100 mm connecting rod (z 5..10). Three revolute pins (O ground to crank, the motor; A crank to rod; B rod to slider) and a prismatic guide along +x on the line y = 10 (ground to slider) form one closed loop: the joint tree runs from the ground through the crank pivot O, the crank pin A and the guide, and the wrist pin B is the loop's closing joint. Rest: crank at 0 deg (A at (30, 0)), B at (129.498744, 10), rod at 5.739170 deg. The crank turns one full revolution; predict the slider travel along the guide from rest as a series over the revolution and its stroke.
| Tier | Gate | Result | Evidence |
|---|---|---|---|
| A | parts_pass Every part design passed its own 12 gates and has a handoff STEP | PASS | results/build123d/crank-slider/parts.json designs.<design>.gates_ok: crank-slider-ground=True, crank-slider-crank=True, crank-slider-rod=True, crank-slider-slider=True |
| A | bom_complete Every body of the bill of materials is in the export, once, with a placement | PASS | results/build123d/crank-slider/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/crank-slider/verify.json joints.joints.<joint>.checks; failing: none |
| A | clearances Static clearances and seats at rest | PASS | results/build123d/crank-slider/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/crank-slider/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/crank-slider/domains.json fluids.<name>: |
| B | export_agreement Each exported body equals its part handoff x placement; the assembled envelope matches | PASS | results/build123d/crank-slider/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) | PASS | results/build123d/crank-slider/simulate.json observables.<id>.requirement: stroke=60.33 |
| B | conservation Energy, mass and force balances of every analysis close within their tolerance | n/a | results/build123d/crank-slider/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/crank-slider/simulate.json simulations.<id>.refinement.observables: |
| C | source_hygiene The assembly source imports only its declared inputs, formats and lints clean | PASS | results/build123d/crank-slider/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/crank-slider/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/crank-slider/<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/crank-slider/verify.json hygiene.truth_refs = [] |
| Body | Kind | Design | Material |
|---|---|---|---|
| ground | modelled | crank-slider-ground | |
| crank | modelled | crank-slider-crank | |
| rod | modelled | crank-slider-rod | |
| slider | modelled | crank-slider-slider |