feat: 完善一级关系参数化建模与参数导出
This commit is contained in:
@@ -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.")
|
||||
|
||||
Reference in New Issue
Block a user