feat: integrate SimpleCADAPI 2.0.2 CAD workflows
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
# Coordinate-free semantic assembly
|
||||
|
||||
This directory defines the LCD25 reducer as a reusable mechanical design rather
|
||||
than a list of STEP filenames and placement matrices.
|
||||
|
||||
## Authority
|
||||
|
||||
`lcd25-harmonic-reducer.assembly-designir.json` is the editable assembly
|
||||
authority. It contains:
|
||||
|
||||
- product parameters and expressions;
|
||||
- replaceable component archetypes;
|
||||
- semantic interfaces constructed from generated geometry;
|
||||
- mating and support relations;
|
||||
- rigid groups, joints and harmonic transmission behavior;
|
||||
- edit operations and interfaces that must remain stable.
|
||||
|
||||
It intentionally contains no XYZ position, rotation, transform matrix, source
|
||||
STEP path, or occurrence coordinate. A backend generates each component,
|
||||
discovers its declared interfaces and solves the constraint graph. Numeric
|
||||
placements are compiler output and may be cached separately, but never become
|
||||
design authority.
|
||||
|
||||
## Generality
|
||||
|
||||
The contract is not specific to LCD25. Component identities describe functional
|
||||
roles such as `fixed_tooth_member`, `combined_load_support`, and
|
||||
`external_output_interface`. Each role selects a replaceable generation family.
|
||||
The same contract can express harmonic, planetary, cycloidal, belt, chain and
|
||||
screw transmissions by changing archetypes, relations and the transmission
|
||||
block.
|
||||
|
||||
## Structural modification
|
||||
|
||||
`variants/add-output-shaft.patch.json` demonstrates a structural edit. It adds:
|
||||
|
||||
- editable shaft diameter and length;
|
||||
- a generated stepped-shaft component;
|
||||
- coaxial, shoulder-mate, insert and torque-lock relations;
|
||||
- output rigid-group membership;
|
||||
- a new public shaft-end interface.
|
||||
|
||||
No coordinate is supplied. The assembly solver must position the shaft from its
|
||||
relations to the output flange.
|
||||
|
||||
## Validation
|
||||
|
||||
Validate the base model:
|
||||
|
||||
```bash
|
||||
python3 models/lcd25-reducer/semantic-assembly/validate_assembly_design.py \
|
||||
models/lcd25-reducer/semantic-assembly/lcd25-harmonic-reducer.assembly-designir.json \
|
||||
--schema designir-pipeline/contracts/assembly-designir-1.0.schema.json
|
||||
```
|
||||
|
||||
Apply and validate the shaft variant:
|
||||
|
||||
```bash
|
||||
python3 models/lcd25-reducer/semantic-assembly/validate_assembly_design.py \
|
||||
models/lcd25-reducer/semantic-assembly/lcd25-harmonic-reducer.assembly-designir.json \
|
||||
--schema designir-pipeline/contracts/assembly-designir-1.0.schema.json \
|
||||
--patch models/lcd25-reducer/semantic-assembly/variants/add-output-shaft.patch.json \
|
||||
--resolved-output models/lcd25-reducer/semantic-assembly/generated/lcd25-with-output-shaft.assembly-designir.json
|
||||
```
|
||||
|
||||
## Compiler boundary
|
||||
|
||||
The next compiler stage must:
|
||||
|
||||
1. generate or select geometry for each component archetype;
|
||||
2. resolve every semantic interface against generated topology;
|
||||
3. solve relations from a scrambled initial state;
|
||||
4. emit STEP occurrence placements only as derived output;
|
||||
5. compile joints and transmissions to URDF/MJCF;
|
||||
6. reject underconstrained, overconstrained or interfering assemblies.
|
||||
|
||||
The current validator proves schema integrity, coordinate independence,
|
||||
reference integrity and graph connectivity. It does not yet solve B-Rep
|
||||
constraints or generate the final reducer STEP.
|
||||
Reference in New Issue
Block a user