跳到主要内容

拓扑、查询与交换

原生拓扑查询

Model.faces(shape) 返回确定性的零基 Face Handle。Model.subshapes(shape, shape_type) 按指定 OpenCascade 拓扑类型提取子形状。Model.free_boundaries(shape, tolerance=1e-6) 返回开放边界 Wire。

所有子形状仍由相同 Session 持有。其索引只属于当前拓扑,在布尔、圆角、倒角、抽壳或重建后可能变化。

选择层级

层级适用情况API
即时索引选择紧接着作用于拓扑未改变的 ShapeModel.faces、Edge 索引、subshapes
查询谓词可根据可测几何属性重新选择cadflow.querySelection、过滤辅助函数
语义身份产品工作流需要跨 Graph 操作保留意图Tag、GeometryRef、Connector、语义追踪

序列化工作流优先使用语义引用或谓词引用,把拓扑索引视为临时实现坐标。

测量

核心 Shape 提供 Volume、Area、Length、Center of Mass、BBox、拓扑数量和 Distance。兼容查询函数还提供选择摘要、极值、曲面或曲线描述符及聚合测量;完整列表见建模符号目录

测量采用模型坐标和当前长度约定。除表达式或工程领域显式包装外,标量结果本身不携带单位对象。

验证边界

应根据需要证明的结论组合检查:

  • Shape.validate() 用于有限原生测量与基本 Solid 数量证据;
  • free_boundaries() 用于开放 Shell 证据;
  • BREP Inspection 用于详细拓扑邻域与对比;
  • 领域 Validator 用于 Assembly、Scene、Physical Connection 与 Simulation Handoff。

拓扑有效的模型仍可能在尺寸、位置、材料分配或连接意图上错误。这些验收标准属于调用应用或领域报告。

交换格式

格式读取写出保留内容
STEPModel.import_stepShape.export_step精确交换几何与拓扑
BREPModel.import_brep兼容 BREP Exporter原生边界表示
STLModel.import_stlShape.export_stl仅三角形
GLBScene/Preview ReaderShape.export_preview_glb、Scene Compiler渲染网格与展示数据
Model JSONSerialization APISerialization API声明式操作图与结构化工作流状态

文件扩展名不能替代验证。写出后应检查存在性与非零大小;关键交换还应重新导入并对比测量或拓扑。面向浏览器的产物可使用 Scene Package 获得更严格的 Schema 与资源验证。

路径与安全

路径应限制在应用控制的 Root 内。对不可信 Archive 或 JSON,应在分配或解压前执行资源限制。Scene Preflight 辅助函数覆盖 Archive 大小、Member 大小、压缩比、资源数量与 GLB 数量。