feat(environment): portable layer states, named views and UCS on both engines

Layer states are ACADMCP_LAYERSTATES XRECORD chunks (<= 255 ASCII chars each),
in the file and not in AutoCAD's Layer States Manager. Headless view restore
writes the *Active VPORT (ezdxf's header has no $VIEWCTR; measured). UCS is
stored and made current; tool coordinates stay WCS.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd
This commit is contained in:
Umut CAN
2026-09-17 09:47:39 +03:00
co-authored by Claude Opus 5
parent 2805697d16
commit dcc8f07bf4
15 changed files with 2379 additions and 12 deletions
+7 -4
View File
@@ -519,7 +519,10 @@ async def test_tool_group_sizes_are_unchanged():
tag is ranked first in `_GROUP_TAG_PRIORITY` so those tools file under
`pid` rather than under their secondary `query` / `create` tags. `drawing`
moved 11 -> 14 when v1.6's `document_list` / `document_activate` /
`document_close` (multi-document on both engines) opened SECTION 20. Every
`document_close` (multi-document on both engines) opened SECTION 20;
`layers` moved 14 -> 18 with the four `layer_state_*` tools and `view`
4 -> 10 with `view_named_*` and `ucs_*` (UCS files under `view`, where
AutoCAD's own ribbon keeps it) when v1.6's SECTION 20 grew. Every
other number here has been unchanged since the snapshot was taken.
"""
sizes = {label: len(names) for label, names in (await server._tool_groups()).items()}
@@ -534,7 +537,7 @@ async def test_tool_group_sizes_are_unchanged():
"entity_creation": 18,
"entity_modification": 16,
"entity_query": 9,
"layers": 14,
"layers": 18,
"layouts": 12,
"pid": 9,
"premium": 12,
@@ -543,6 +546,6 @@ async def test_tool_group_sizes_are_unchanged():
"templates": 2,
"transactions": 3,
"validation": 1,
"view": 4,
"view": 10,
}
assert sum(sizes.values()) == 169
assert sum(sizes.values()) == 179