forked from 1b-agent/opencadstudio-upstream
- CreateDimensionLinear(DimensionSpec) op + GetDimensionMeasurement query (append-only). - backend add_dimension_linear (Dimension::Linear via DimensionLinear::new) + dimension_measurement (linear/radius/diameter distance). - Dimension bounds from measured + definition points; Dimension handle + measurement(). - spec Dimension family; api_reference + binding_schema regenerated; mocks + baseline. - Test phase2c_dimension_linear_create_measurement_bounds -> 607 host lib + 8 crate + 3 consistency green. Phase 2 (full 2D + annotations) is now complete.
389 lines
8.5 KiB
JSON
389 lines
8.5 KiB
JSON
{
|
|
"envelope_version": 1,
|
|
"families": [
|
|
{
|
|
"acadrust_variant": "Solid3D",
|
|
"collection": "solids",
|
|
"handle": "Solid",
|
|
"methods": [
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "other",
|
|
"ty": "Solid"
|
|
}
|
|
],
|
|
"bulk": false,
|
|
"fixed": {
|
|
"erase_sources": true,
|
|
"op": "Intersection"
|
|
},
|
|
"kind": "op",
|
|
"name": "intersect",
|
|
"op": "SolidBoolean",
|
|
"query": null,
|
|
"read_only": false,
|
|
"returns": "Solid"
|
|
},
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "other",
|
|
"ty": "Solid"
|
|
}
|
|
],
|
|
"bulk": false,
|
|
"fixed": {
|
|
"erase_sources": true,
|
|
"op": "Union"
|
|
},
|
|
"kind": "op",
|
|
"name": "union",
|
|
"op": "SolidBoolean",
|
|
"query": null,
|
|
"read_only": false,
|
|
"returns": "Solid"
|
|
},
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "other",
|
|
"ty": "Solid"
|
|
}
|
|
],
|
|
"bulk": false,
|
|
"fixed": {
|
|
"erase_sources": true,
|
|
"op": "Difference"
|
|
},
|
|
"kind": "op",
|
|
"name": "subtract",
|
|
"op": "SolidBoolean",
|
|
"query": null,
|
|
"read_only": false,
|
|
"returns": "Solid"
|
|
},
|
|
{
|
|
"args": [],
|
|
"bulk": false,
|
|
"fixed": null,
|
|
"kind": "query",
|
|
"name": "volume",
|
|
"op": null,
|
|
"query": "GetVolume",
|
|
"read_only": true,
|
|
"returns": "f64"
|
|
},
|
|
{
|
|
"args": [],
|
|
"bulk": false,
|
|
"fixed": null,
|
|
"kind": "query",
|
|
"name": "centroid",
|
|
"op": null,
|
|
"query": "GetCentroid",
|
|
"read_only": true,
|
|
"returns": "[f64; 3]"
|
|
},
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "other",
|
|
"ty": "Solid"
|
|
}
|
|
],
|
|
"bulk": false,
|
|
"fixed": null,
|
|
"kind": "query",
|
|
"name": "intersects",
|
|
"op": null,
|
|
"query": "GetIntersects",
|
|
"read_only": true,
|
|
"returns": "bool"
|
|
}
|
|
],
|
|
"name": "Solid"
|
|
},
|
|
{
|
|
"acadrust_variant": "Line",
|
|
"collection": "curves",
|
|
"handle": "Line",
|
|
"methods": [],
|
|
"name": "Line"
|
|
},
|
|
{
|
|
"acadrust_variant": "Circle",
|
|
"collection": "curves",
|
|
"handle": "Circle",
|
|
"methods": [],
|
|
"name": "Circle"
|
|
},
|
|
{
|
|
"acadrust_variant": "LwPolyline",
|
|
"collection": "curves",
|
|
"handle": "Polyline",
|
|
"methods": [
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "at",
|
|
"ty": "usize"
|
|
},
|
|
{
|
|
"name": "point",
|
|
"ty": "[f64; 3]"
|
|
}
|
|
],
|
|
"bulk": false,
|
|
"fixed": null,
|
|
"kind": "op",
|
|
"name": "add_vertex",
|
|
"op": "AddVertex",
|
|
"query": null,
|
|
"read_only": false,
|
|
"returns": "()"
|
|
}
|
|
],
|
|
"name": "Polyline"
|
|
},
|
|
{
|
|
"acadrust_variant": "Point",
|
|
"collection": "curves",
|
|
"handle": "Point",
|
|
"methods": [],
|
|
"name": "Point"
|
|
},
|
|
{
|
|
"acadrust_variant": "Arc",
|
|
"collection": "curves",
|
|
"handle": "ArcCurve",
|
|
"methods": [],
|
|
"name": "Arc"
|
|
},
|
|
{
|
|
"acadrust_variant": "Ellipse",
|
|
"collection": "curves",
|
|
"handle": "Ellipse",
|
|
"methods": [],
|
|
"name": "Ellipse"
|
|
},
|
|
{
|
|
"acadrust_variant": "Spline",
|
|
"collection": "curves",
|
|
"handle": "Spline",
|
|
"methods": [],
|
|
"name": "Spline"
|
|
},
|
|
{
|
|
"acadrust_variant": "Ray",
|
|
"collection": "curves",
|
|
"handle": "Ray",
|
|
"methods": [],
|
|
"name": "Ray"
|
|
},
|
|
{
|
|
"acadrust_variant": "XLine",
|
|
"collection": "curves",
|
|
"handle": "XLine",
|
|
"methods": [],
|
|
"name": "XLine"
|
|
},
|
|
{
|
|
"acadrust_variant": "Text",
|
|
"collection": "curves",
|
|
"handle": "Text",
|
|
"methods": [
|
|
{
|
|
"args": [],
|
|
"bulk": false,
|
|
"fixed": null,
|
|
"kind": "query",
|
|
"name": "content",
|
|
"op": null,
|
|
"query": "GetTextContent",
|
|
"read_only": true,
|
|
"returns": "String"
|
|
},
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "value",
|
|
"ty": "&str"
|
|
}
|
|
],
|
|
"bulk": false,
|
|
"fixed": null,
|
|
"kind": "op",
|
|
"name": "set_content",
|
|
"op": "SetTextContent",
|
|
"query": null,
|
|
"read_only": false,
|
|
"returns": "()"
|
|
}
|
|
],
|
|
"name": "Text"
|
|
},
|
|
{
|
|
"acadrust_variant": "MText",
|
|
"collection": "curves",
|
|
"handle": "MText",
|
|
"methods": [
|
|
{
|
|
"args": [],
|
|
"bulk": false,
|
|
"fixed": null,
|
|
"kind": "query",
|
|
"name": "content",
|
|
"op": null,
|
|
"query": "GetTextContent",
|
|
"read_only": true,
|
|
"returns": "String"
|
|
},
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "value",
|
|
"ty": "&str"
|
|
}
|
|
],
|
|
"bulk": false,
|
|
"fixed": null,
|
|
"kind": "op",
|
|
"name": "set_content",
|
|
"op": "SetTextContent",
|
|
"query": null,
|
|
"read_only": false,
|
|
"returns": "()"
|
|
}
|
|
],
|
|
"name": "MText"
|
|
},
|
|
{
|
|
"acadrust_variant": "Hatch",
|
|
"collection": "curves",
|
|
"handle": "Entity",
|
|
"methods": [
|
|
{
|
|
"args": [],
|
|
"bulk": false,
|
|
"fixed": null,
|
|
"kind": "query",
|
|
"name": "boundary",
|
|
"op": null,
|
|
"query": "GetHatchBoundary",
|
|
"read_only": true,
|
|
"returns": "Vec<Vec<[f64; 2]>>"
|
|
}
|
|
],
|
|
"name": "Hatch"
|
|
},
|
|
{
|
|
"acadrust_variant": "Dimension",
|
|
"collection": "curves",
|
|
"handle": "Dimension",
|
|
"methods": [
|
|
{
|
|
"args": [],
|
|
"bulk": false,
|
|
"fixed": null,
|
|
"kind": "query",
|
|
"name": "measurement",
|
|
"op": null,
|
|
"query": "GetDimensionMeasurement",
|
|
"read_only": true,
|
|
"returns": "f64"
|
|
}
|
|
],
|
|
"name": "Dimension"
|
|
},
|
|
{
|
|
"acadrust_variant": "Insert",
|
|
"collection": "entities",
|
|
"handle": "Entity",
|
|
"methods": [],
|
|
"name": "Insert"
|
|
},
|
|
{
|
|
"acadrust_variant": "Viewport",
|
|
"collection": "entities",
|
|
"handle": "Entity",
|
|
"methods": [],
|
|
"name": "Viewport"
|
|
},
|
|
{
|
|
"acadrust_variant": "RasterImage",
|
|
"collection": "entities",
|
|
"handle": "Entity",
|
|
"methods": [],
|
|
"name": "RasterImage"
|
|
},
|
|
{
|
|
"acadrust_variant": "Table",
|
|
"collection": "entities",
|
|
"handle": "Entity",
|
|
"methods": [],
|
|
"name": "Table"
|
|
}
|
|
],
|
|
"layouts": {
|
|
"ObjectId": {
|
|
"struct": [
|
|
{
|
|
"name": "0",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
},
|
|
"Operation": {
|
|
"enum": [
|
|
"CreateSolid(SolidPrimitive)",
|
|
"CreateCurve(Curve2Spec)",
|
|
"Extrude { profile: ObjectId, direction: [f64; 3] }",
|
|
"Revolve { profile: ObjectId, axis: ([f64; 3], [f64; 3]), angle: f64 }",
|
|
"Transform { id: ObjectId, placement: PlacementSpec }",
|
|
"SolidBoolean { op: BoolOp, a: ObjectId, b: ObjectId, erase_sources: bool }",
|
|
"AddVertex { id: ObjectId, at: usize, point: [f64; 3] }",
|
|
"Delete { id: ObjectId }",
|
|
"CreateMany(Vec<EntitySpec>)",
|
|
"TransformMany { ids: Vec<ObjectId>, placement: PlacementSpec }",
|
|
"DeleteMany(Vec<ObjectId>)"
|
|
]
|
|
},
|
|
"Query": {
|
|
"enum": [
|
|
"GetEntity { id: ObjectId }",
|
|
"GetBounds { id: ObjectId }",
|
|
"GetCentroid { id: ObjectId }",
|
|
"GetVolume { id: ObjectId }",
|
|
"GetIntersects { a: ObjectId, b: ObjectId }",
|
|
"GetGeometryRevision"
|
|
]
|
|
}
|
|
},
|
|
"object_model": {
|
|
"collections": [
|
|
"solids",
|
|
"curves",
|
|
"entities"
|
|
],
|
|
"document": "Document",
|
|
"handles": [
|
|
"Entity",
|
|
"Solid",
|
|
"Line",
|
|
"Circle",
|
|
"Polyline",
|
|
"Point",
|
|
"ArcCurve",
|
|
"Ellipse",
|
|
"Spline",
|
|
"Ray",
|
|
"XLine",
|
|
"Text",
|
|
"MText",
|
|
"Dimension"
|
|
],
|
|
"root": "DocApi"
|
|
},
|
|
"schema": "ocs_doc_api/binding_schema"
|
|
} |