forked from 1b-agent/opencadstudio-upstream
Map SectionSymbol, the last unmapped kind
points is canonical; the host derives the point counts and refreshes the end/tick/label projections with sync_display_fields when it changes, and validates that style and view-representation references are existing class objects. The lifecycle test passes every gate in DWG; DXF reopens the symbol as an unknown entity because cadcodec dispatches SECTIONLINE only inside blocks (pinned by a canary and already in the cadcodec write-up). Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
1 parent
5a39052397
commit
942222c381
11 files changed
+242
-10
No files matched your search
@@ -94,7 +94,7 @@ The host-owned catalog classifies all 48 entity variants and tracks every
|
||||
traced field, including fields marked `unmapped`. Query it with
|
||||
`doc.coverage()` or `doc.coverage("Line")`; each row includes source field,
|
||||
type, access, and current validation status. Geometry edits remain limited to
|
||||
the 42 mapped kinds.
|
||||
the 43 mapped kinds.
|
||||
For any entity, `entity.snapshot` returns a detached dictionary of its raw
|
||||
CAD fields, including `snapshot["common"]` and kind-specific nested values.
|
||||
It can inspect an unmapped kind; editing the dictionary does
|
||||
|
||||
@@ -41,7 +41,8 @@
|
||||
"Solid3D",
|
||||
"Body",
|
||||
"Region",
|
||||
"Surface"
|
||||
"Surface",
|
||||
"SectionSymbol"
|
||||
],
|
||||
"manual_kinds": [
|
||||
"Dimension"
|
||||
@@ -926,6 +927,47 @@
|
||||
"read_only": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"SectionSymbol": {
|
||||
"fields": {
|
||||
"points": {
|
||||
"required": true
|
||||
},
|
||||
"view_symbol_version": {
|
||||
"read_only": true
|
||||
},
|
||||
"raw_view_symbol_70": {
|
||||
"read_only": true
|
||||
},
|
||||
"version": {
|
||||
"read_only": true
|
||||
},
|
||||
"raw_point_count_90": {
|
||||
"read_only": true
|
||||
},
|
||||
"raw_flags_90": {
|
||||
"read_only": true,
|
||||
"_comment": "Semantics unknown in cadcodec; preserved as read, 0 for a new symbol."
|
||||
},
|
||||
"raw_point_record_count": {
|
||||
"read_only": true
|
||||
},
|
||||
"end_a": {
|
||||
"read_only": true
|
||||
},
|
||||
"end_b": {
|
||||
"read_only": true
|
||||
},
|
||||
"tick_a": {
|
||||
"read_only": true
|
||||
},
|
||||
"tick_b": {
|
||||
"read_only": true
|
||||
},
|
||||
"label": {
|
||||
"read_only": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4983,7 +4983,7 @@ mod tests {
|
||||
);
|
||||
}
|
||||
}
|
||||
assert_eq!(emitted.len(), 42);
|
||||
assert_eq!(emitted.len(), 43);
|
||||
}
|
||||
|
||||
#[cfg(feature = "experimental-host-model")]
|
||||
|
||||
Reference in new issue
Block a user