feat: 扩展Face保持关系编辑语义

This commit is contained in:
2026-08-10 17:50:50 +08:00
parent 61f0b76e59
commit 3a851d0967
8 changed files with 382 additions and 41 deletions
+23 -2
View File
@@ -498,6 +498,27 @@ def main() -> int:
raise SystemExit(f"Face plane-offset keep-relations scope should use its own action: {offset_keep_relations}")
if not bool(offset_keep_relations.get("enabled", False)):
raise SystemExit(f"Face plane-offset keep-relations scope should be available on simple planar Face: {offset_keep_relations}")
width_keep_relations = _scope_mode(plane_specs, "local_face_width", "keep_relations")
if str(width_keep_relations.get("label") or "") != "保持关系":
raise SystemExit(f"Face width keep-relations scope should be labelled clearly: {width_keep_relations}")
if str(width_keep_relations.get("action") or "") != "resize_face_width_keep_relations":
raise SystemExit(f"Face width keep-relations scope should use its own action: {width_keep_relations}")
if not bool(width_keep_relations.get("enabled", False)):
raise SystemExit(f"Face width keep-relations scope should be available on simple planar Face: {width_keep_relations}")
height_keep_relations = _scope_mode(plane_specs, "local_face_height", "keep_relations")
if str(height_keep_relations.get("label") or "") != "保持关系":
raise SystemExit(f"Face height keep-relations scope should be labelled clearly: {height_keep_relations}")
if str(height_keep_relations.get("action") or "") != "resize_face_height_keep_relations":
raise SystemExit(f"Face height keep-relations scope should use its own action: {height_keep_relations}")
if not bool(height_keep_relations.get("enabled", False)):
raise SystemExit(f"Face height keep-relations scope should be available on simple planar Face: {height_keep_relations}")
center_keep_relations = _scope_mode(plane_specs, "face_center_position", "keep_relations")
if str(center_keep_relations.get("label") or "") != "保持关系":
raise SystemExit(f"Face center keep-relations scope should be labelled clearly: {center_keep_relations}")
if str(center_keep_relations.get("action") or "") != "move_selected_face_center_keep_relations":
raise SystemExit(f"Face center keep-relations scope should use its own action: {center_keep_relations}")
if not bool(center_keep_relations.get("enabled", False)):
raise SystemExit(f"Face center keep-relations scope should be available on simple planar Face: {center_keep_relations}")
_assert_scoped_hint_fragments(
plane_specs,
"face_target_normal_position",
@@ -581,7 +602,7 @@ def main() -> int:
if "push_pull_distance" in plane_keys:
raise SystemExit("plane Face should not expose a separate push_pull_distance row")
for key in ("local_face_width", "local_face_height"):
for mode in ("local", "owning"):
for mode in ("local", "keep_relations", "owning"):
_assert_scoped_hint_fragments(
plane_specs,
key,
@@ -595,7 +616,7 @@ def main() -> int:
mode,
("会被阻止",),
)
for mode in ("local", "owning"):
for mode in ("local", "keep_relations", "owning"):
_assert_scoped_hint_fragments(
plane_specs,
"face_center_position",