feat: 完善一级关系参数化建模与参数导出

This commit is contained in:
2026-08-11 18:28:16 +08:00
parent 6cb99a1273
commit 19364d81b5
20 changed files with 917 additions and 167 deletions
+10
View File
@@ -625,7 +625,16 @@ def _axis_aligned_edge_candidates(
return [edge for _score, edge in candidates]
def _enable_occt_builder_parallel(builder) -> None:
if hasattr(builder, "SetRunParallel"):
try:
builder.SetRunParallel(True)
except Exception:
pass
def _finalize_boolean_result(op, operation_name: str, *, use_glue: bool | None = None) -> TopoDS_Shape:
_enable_occt_builder_parallel(op)
op.SetNonDestructive(True)
glue_enabled = "cut" not in operation_name.lower() if use_glue is None else bool(use_glue)
if glue_enabled and hasattr(op, "SetGlue"):
@@ -668,6 +677,7 @@ def _simplify_boolean_builder(builder) -> None:
def _finalize_builder_result(builder, operation_name: str) -> TopoDS_Shape:
_enable_occt_builder_parallel(builder)
builder.Build()
if hasattr(builder, "IsDone") and not builder.IsDone():
raise RuntimeError(f"{operation_name} operation failed.")