feat: 完善 Face 一级关系编辑和稳定性校验

This commit is contained in:
2026-08-04 18:15:29 +08:00
parent 5799d5d813
commit a76282d7dd
28 changed files with 6872 additions and 270 deletions
+16 -8
View File
@@ -572,10 +572,15 @@ def _verify_embedded_reference_radius_isolated_window_job(path: Path) -> None:
)
if not result.get("message"):
raise SystemExit("isolated embedded reference-radius edit did not return a completion message")
if probe.model is model:
raise SystemExit("successful isolated embedded reference-radius edit should load the edited model")
edited_face_id, edited_info, _score = _best_cone_face_by_angle(probe.model, 30.963756532)
circles = probe.model._conical_face_circle_boundaries(
if probe.model is not model:
raise SystemExit("isolated embedded reference-radius edit should not replace the window model off the UI thread")
edited_model = result.get("after_model")
if not isinstance(edited_model, StepModel):
raise SystemExit(f"isolated embedded reference-radius edit should return after_model: {result}")
if result.get("model_polydata") is None or result.get("edge_polydata") is None:
raise SystemExit("isolated embedded reference-radius edit should return prebuilt display polydata")
edited_face_id, edited_info, _score = _best_cone_face_by_angle(edited_model, 30.963756532)
circles = edited_model._conical_face_circle_boundaries(
edited_face_id,
tuple(float(value) for value in edited_info["axis_point"]),
_unit(tuple(float(value) for value in edited_info["axis"])),
@@ -738,10 +743,13 @@ def main() -> int:
)
if not result.get("message"):
raise SystemExit("isolated cone semi-angle edit did not return a completion message")
if probe.model is model:
raise SystemExit("successful isolated cone semi-angle edit should load the edited model")
edited_model = probe.model
if probe.model is not model:
raise SystemExit("isolated cone semi-angle edit should not replace the window model off the UI thread")
edited_model = result.get("after_model")
if not isinstance(edited_model, StepModel):
raise SystemExit(f"isolated cone semi-angle edit should return after_model: {result}")
if result.get("model_polydata") is None or result.get("edge_polydata") is None:
raise SystemExit("isolated cone semi-angle edit should return prebuilt display polydata")
best_angle = _best_cone_angle_degrees(edited_model)
if best_angle is None:
raise SystemExit("isolated cone semi-angle edit should keep an analytic cone Face")