feat: 完善一级关系编辑 UI 与视图体验

This commit is contained in:
2026-08-06 18:15:14 +08:00
parent 57d75541c3
commit eef9efcc1e
29 changed files with 3907 additions and 178 deletions
+13
View File
@@ -2193,6 +2193,15 @@ class FeatureMixin:
scoped_info["height_estimate"] = axis_range["span"]
scoped_info["v_range"] = (axis_range["v_min"], axis_range["v_max"])
readiness = _cylinder_boss_resize_readiness(scoped_info, new_diameter)
readiness = self._apply_cylindrical_first_level_guard_to_readiness(
readiness,
topology_fields,
status_key="boss_resize_status",
risk_key="boss_resize_risk",
note_key="boss_resize_note",
warnings_key="boss_resize_warnings",
blockers_key="boss_resize_blockers",
)
resize_mode = _resize_mode(current_diameter, new_diameter)
delta_diameter = new_diameter - current_diameter
diameter_delta_ratio = abs(delta_diameter) / max(current_diameter, 1e-9)
@@ -2213,6 +2222,7 @@ class FeatureMixin:
"face_id": face_id,
"part_id": info["part_id"],
"solid_id": info["solid_id"],
**topology_fields,
"current_diameter": current_diameter,
"target_diameter": new_diameter,
"delta_diameter": delta_diameter,
@@ -2252,12 +2262,14 @@ class FeatureMixin:
feature = self.feature_info(face_id)
except Exception:
feature = {}
topology_fields = self._cylindrical_feature_first_level_plan_fields(face_id)
blockers: list[str] = []
warnings: list[str] = [
"Cylindrical boss axis move removes the old boss envelope, then fuses a same-diameter boss on the target axis."
]
risk = "medium"
risk = self._apply_cylindrical_first_level_guard(topology_fields, blockers, warnings, risk)
try:
target_center = (float(target_center[0]), float(target_center[1]), float(target_center[2]))
@@ -2360,6 +2372,7 @@ class FeatureMixin:
"face_id": face_id,
"part_id": info.get("part_id"),
"solid_id": info.get("solid_id"),
**topology_fields,
"surface": info.get("surface"),
"feature_type": feature.get("feature_type"),
"feature_guess": feature_guess,