feat(engine): 支持多实体 body 与 selector 持久化
- 多实体主体拆分为独立 body_id,支持前缀匹配解析 - 重建结果新增 solid_count 字段 - fillet/chamfer 后 selector stable_id 可解析到演化后继
This commit is contained in:
@@ -385,6 +385,16 @@ class Build123dGeometryAdapter:
|
||||
# 将主体导出为 STEP 文件。
|
||||
export_step(body, path)
|
||||
|
||||
@staticmethod
|
||||
def body_solids(body: Any) -> list[Any]:
|
||||
# 提取主体内的全部独立 Solid:Compound 返回成员,单个 Solid 返回自身。
|
||||
# build123d 对部分退化布尔结果可能抛异常,退化为把主体整体视为一个实体。
|
||||
try:
|
||||
solids = list(body.solids())
|
||||
except Exception:
|
||||
return [body] if body is not None else []
|
||||
return solids or ([body] if body is not None else [])
|
||||
|
||||
@staticmethod
|
||||
def body_geometry(body: Any) -> dict[str, Any]:
|
||||
# 汇总主体基本几何信息:包围盒与体积。
|
||||
|
||||
Reference in New Issue
Block a user