Complete Surface: plane surfaces, extrusions, isolines and moves

Adds SurfaceFromProfile and Extrude kernel operations (doc.solids.surface and
doc.solids.extrude), accepts surfaces in Transform, and maps Surface with
editable isolines. Fixes a real bug found by the test: the surface kind field
overwrote the entity-type kind key in Python dicts, so it is exposed as
surface_kind, with a catalog test guarding against name collisions.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Felix RiestraandClaude Sonnet 5 committed 2026-09-20 17:47:22 +02:00
1 parent 918351f264
commit 9cd6653a58
14 files changed
+441 -34

No files matched your search

+36 -1
View File
@@ -40,7 +40,8 @@
"Ole2Frame",
"Solid3D",
"Body",
"Region"
"Region",
"Surface"
],
"manual_kinds": [
"Dimension"
@@ -891,6 +892,40 @@
"read_only": true
}
}
},
"Surface": {
"update_only": true,
"update_only_message": "Surface is built by the geometry kernel: use doc.solids.surface(profile) for a plane surface or doc.solids.extrude(open_profile, direction) for an extruded one; a script never writes the ACIS payload",
"fields": {
"acis_data": {
"exclude": true,
"_comment": "Opaque ACIS payload; never rewritten by a script."
},
"surface_data": {
"exclude": true,
"_comment": "Kind-specific sweep/loft parameters and embedded profiles; preserved untouched."
},
"wires": {
"exclude": true
},
"silhouettes": {
"exclude": true
},
"kind": {
"read_only": true,
"python_name": "surface_kind",
"_comment": "Renamed: a bare `kind` key names the entity type in every Python dict."
},
"modeler_format_version": {
"read_only": true
},
"point_of_reference": {
"read_only": true
},
"history_handle": {
"read_only": true
}
}
}
}
}