forked from 1b-agent/opencadstudio-upstream
Add kernel solid operations and complete Solid3D (create and rigid move)
An additive HostApi::solid_operation builds cadkernel primitives and applies rigid transforms, verifying each result lifts back losslessly and refusing a payload it cannot lift. Exposed as doc.solids in Python; Solid3D, Body and Region are mapped read-only with the opaque payload preserved. The lifecycle test passes through the real runner with analytic volumes and exact extents as oracles, DWG and DXF reopen with re-edit, and undo restores exactly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
07fe739571
commit
04cd9e462d
18 files changed
+717
-13
No files matched your search
@@ -37,7 +37,10 @@
|
||||
"Viewport",
|
||||
"ViewBorder",
|
||||
"Light",
|
||||
"Ole2Frame"
|
||||
"Ole2Frame",
|
||||
"Solid3D",
|
||||
"Body",
|
||||
"Region"
|
||||
],
|
||||
"manual_kinds": [
|
||||
"Dimension"
|
||||
@@ -807,6 +810,87 @@
|
||||
"read_only": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"Solid3D": {
|
||||
"update_only": true,
|
||||
"update_only_message": "Solid3D is built and edited by the geometry kernel: use doc.solids to create solids and move them; a script never writes the ACIS payload",
|
||||
"fields": {
|
||||
"acis_data": {
|
||||
"exclude": true,
|
||||
"_comment": "Opaque ACIS payload; snapshot-readable and never rewritten by a script."
|
||||
},
|
||||
"wires": {
|
||||
"exclude": true,
|
||||
"_comment": "Derived edge wires; regenerated by the host."
|
||||
},
|
||||
"silhouettes": {
|
||||
"exclude": true,
|
||||
"_comment": "Derived; regenerated by the host."
|
||||
},
|
||||
"uid": {
|
||||
"read_only": true
|
||||
},
|
||||
"point_of_reference": {
|
||||
"read_only": true
|
||||
},
|
||||
"history_handle": {
|
||||
"read_only": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"Body": {
|
||||
"update_only": true,
|
||||
"update_only_message": "Body is built and edited by the geometry kernel: use doc.solids to create solids and move them; a script never writes the ACIS payload",
|
||||
"fields": {
|
||||
"acis_data": {
|
||||
"exclude": true,
|
||||
"_comment": "Opaque ACIS payload; snapshot-readable and never rewritten by a script."
|
||||
},
|
||||
"wires": {
|
||||
"exclude": true,
|
||||
"_comment": "Derived edge wires; regenerated by the host."
|
||||
},
|
||||
"silhouettes": {
|
||||
"exclude": true,
|
||||
"_comment": "Derived; regenerated by the host."
|
||||
},
|
||||
"uid": {
|
||||
"read_only": true
|
||||
},
|
||||
"point_of_reference": {
|
||||
"read_only": true
|
||||
},
|
||||
"history_handle": {
|
||||
"read_only": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"Region": {
|
||||
"update_only": true,
|
||||
"update_only_message": "Region is built and edited by the geometry kernel: use doc.solids to create solids and move them; a script never writes the ACIS payload",
|
||||
"fields": {
|
||||
"acis_data": {
|
||||
"exclude": true,
|
||||
"_comment": "Opaque ACIS payload; snapshot-readable and never rewritten by a script."
|
||||
},
|
||||
"wires": {
|
||||
"exclude": true,
|
||||
"_comment": "Derived edge wires; regenerated by the host."
|
||||
},
|
||||
"silhouettes": {
|
||||
"exclude": true,
|
||||
"_comment": "Derived; regenerated by the host."
|
||||
},
|
||||
"uid": {
|
||||
"read_only": true
|
||||
},
|
||||
"point_of_reference": {
|
||||
"read_only": true
|
||||
},
|
||||
"history_handle": {
|
||||
"read_only": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user