ocs_doc_api: update docs + fix review-drift findings

- lib.rs: export all 14 facade handles (add ArcCurve/Ellipse/Spline/Ray/XLine/Text/
  MText/Dimension + Circle) — public surface matches collection return types.
- build.rs: fix step-1 comment (enums are hand-maintained, not 'regenerated');
  generic_reference_md: Clone (not Copy) + full 14-handle list (was stale 6).
- ops.rs/query.rs: correct 'hand-maintained' module doc comments (were 'GENERATED').
- layouts.json: extend to all 22 Operation + 12 Query variants (was stale phase-1).
- binding_schema.json regenerated (complete layouts + derived handles).
- generate.py: inject 'id': self.id for SetTextContent/SetAttribute/SetViewportView/
  Transform/Delete/AddVertex (was malformed id-less payloads); _apply_op/_apply_query
  accept want=None; extend PY_TYPES (String/&str/Vec returns/new handles).
- README.md: Clone (not Copy) + full scope (2D curves, annotations, containers,
  viewports, media) replacing stale 'Not yet' list.
- Plan (.kilo): mark implemented & published; pointer to live crate docs.
This commit is contained in:
Sebastian committed 2026-09-06 11:22:01 +02:00
1 parent 8417375e5a
commit a9c278e32a
9 files changed
+90 -32

No files matched your search

+3 -2
View File
@@ -178,8 +178,9 @@ Table (read-only): GetEntity kind; generic delete. No typed create/bounds in v1.
## Generic methods (every handle)
Every typed handle (`Solid`, `Line`, `Circle`, `Polyline`, `Point`, `Entity`) is a
`Copy`, `Send`, `Sync` token `{ ObjectId, session }` and supports:
Every typed handle (`Solid`, `Line`, `Circle`, `Polyline`, `Point`, `ArcCurve`,
`Ellipse`, `Spline`, `Ray`, `XLine`, `Text`, `MText`, `Dimension`, `Entity`) is a
`Clone`, `Send`, `Sync` token `{ ObjectId, session }` and supports:
- **`id()` -> `ObjectId`** — the stable entity identity.
- **`bounds()` -> `Aabb`** — coarse bounding box (solids lift-on-miss; 2D entities
+19 -2
View File
@@ -410,7 +410,18 @@
"Delete { id: ObjectId }",
"CreateMany(Vec<EntitySpec>)",
"TransformMany { ids: Vec<ObjectId>, placement: PlacementSpec }",
"DeleteMany(Vec<ObjectId>)"
"DeleteMany(Vec<ObjectId>)",
"CreateInsert(InsertSpec)",
"CreateViewport(ViewportSpec)",
"CreateText(TextSpec)",
"CreateMText(MTextSpec)",
"SetTextContent { id: ObjectId, value: String }",
"CreateHatch(HatchSpec)",
"CreateDimensionLinear(DimensionSpec)",
"SetAttribute { id: ObjectId, tag: String, value: String }",
"SetViewportView { id: ObjectId, view_target: [f64; 3], view_height: f64 }",
"CreateRasterImage(RasterImageSpec)",
"Loft { profiles: Vec<ObjectId> }"
]
},
"Query": {
@@ -420,7 +431,13 @@
"GetCentroid { id: ObjectId }",
"GetVolume { id: ObjectId }",
"GetIntersects { a: ObjectId, b: ObjectId }",
"GetGeometryRevision"
"GetGeometryRevision",
"GetTextContent { id: ObjectId }",
"GetHatchBoundary { id: ObjectId }",
"GetDimensionMeasurement { id: ObjectId }",
"GetAttributes { id: ObjectId }",
"GetBlockEntities { block_name: String }",
"GetViewportView { id: ObjectId }"
]
}
},
+19 -2
View File
@@ -12,7 +12,18 @@
"Delete { id: ObjectId }",
"CreateMany(Vec<EntitySpec>)",
"TransformMany { ids: Vec<ObjectId>, placement: PlacementSpec }",
"DeleteMany(Vec<ObjectId>)"
"DeleteMany(Vec<ObjectId>)",
"CreateInsert(InsertSpec)",
"CreateViewport(ViewportSpec)",
"CreateText(TextSpec)",
"CreateMText(MTextSpec)",
"SetTextContent { id: ObjectId, value: String }",
"CreateHatch(HatchSpec)",
"CreateDimensionLinear(DimensionSpec)",
"SetAttribute { id: ObjectId, tag: String, value: String }",
"SetViewportView { id: ObjectId, view_target: [f64; 3], view_height: f64 }",
"CreateRasterImage(RasterImageSpec)",
"Loft { profiles: Vec<ObjectId> }"
]
},
"Query": {
@@ -22,7 +33,13 @@
"GetCentroid { id: ObjectId }",
"GetVolume { id: ObjectId }",
"GetIntersects { a: ObjectId, b: ObjectId }",
"GetGeometryRevision"
"GetGeometryRevision",
"GetTextContent { id: ObjectId }",
"GetHatchBoundary { id: ObjectId }",
"GetDimensionMeasurement { id: ObjectId }",
"GetAttributes { id: ObjectId }",
"GetBlockEntities { block_name: String }",
"GetViewportView { id: ObjectId }"
]
}
}