Map ViewBorder in the Python host model; record DXF kind blocker

Bounds, scale and rotation are writable with viewport and scale reference
rules. staged_python_view_border_lifecycle_over_real_ipc passes every gate
in DWG; a DXF DRAWINGVIEW reopens as an opaque entity, pinned by a canary.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Felix RiestraandClaude Sonnet 5 committed 2026-09-20 15:13:23 +02:00
1 parent 9075e53511
commit 21ce4b0e2b
10 files changed
+137 -11

No files matched your search

+1 -1
View File
@@ -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 35 mapped kinds.
the 36 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
+11 -1
View File
@@ -34,7 +34,8 @@
"RasterImage",
"Wipeout",
"Underlay",
"Viewport"
"Viewport",
"ViewBorder"
],
"manual_kinds": ["Dimension"],
"base_fields": ["handle", "layer", "owner_handle"],
@@ -403,6 +404,15 @@
"width": { "required": true },
"height": { "required": true }
}
},
"ViewBorder": {
"fields": {
"version": { "read_only": true },
"min": { "required": true },
"max": { "required": true },
"active_viewport": { "required": true },
"scale_handle": { "required": true }
}
}
}
}
+1 -1
View File
@@ -4756,7 +4756,7 @@ mod tests {
);
}
}
assert_eq!(emitted.len(), 35);
assert_eq!(emitted.len(), 36);
}
#[cfg(feature = "experimental-host-model")]