STEP 能打开,不等于装配结构完整

很多在线查看器把“画面里出现了模型”当成 STEP 转换成功,但工程交付真正关心的是另一组问题:装配树还在不在、重复件是否仍是独立实例、零件有没有丢失或错位、对象能否继续关联属性和审阅记录。

这几项不能只看一张截图判断。STEP 从源 CAD 进入浏览器,至少经过五层数据边界。

第一层:源 CAD 基线

转换前先记录组件数、实体数、包围盒、单位、隐藏/抑制状态、装配层级和关键质量属性。没有基线,转换后即使肉眼看起来相似,也无法判断丢的是产品结构、几何还是显示状态。

AP242、AP214 等协议能够承载产品与装配信息,但最终结果仍取决于源系统导出器、协议选择和具体选项。“STEP 支持装配”不等于任意导出文件都一定包含完整装配树。

第二层:产品与装配结构

解析阶段要先保存product/occurrence树、实例关系和变换矩阵,再处理几何。同一个标准件在装配中出现一百次,可以共享一份几何,但必须保留一百个 occurrence 身份和各自变换。

如果转换器为了方便,过早把装配扁平化成一堆三角形,浏览器之后无法从网格反推出原始装配层级,也无法稳定关联零件属性、选择状态和审阅问题。

第三层:B-Rep 几何

结构正确不代表几何正确。每个零件还要核对实体/壳体数量、自由边、包围盒、单位和质量属性。缝合、容差、单位或坐标变换错误,应在三角化前定位;否则运行时只能看到“少了一块”或“零件飞走了”,却很难追到真正原因。

第四层:三角化与对象映射

浏览器最终需要高效网格,但三角化不能切断工程对象身份。转换结果应保留occurrenceId → meshId映射;合批、实例化和 LOD 可以改变 GPU 数据组织,不能把业务对象永久合并掉。

这层的验收不只看三角面是否生成,还要确认材质、法线、实例变换和对象映射是否一致。

第五层:浏览器工作集

最后才轮到 LOD、裁剪、相机远近面、索引范围、显存和资源回收。如果所有浏览器都缺同一个零件,优先回到转换链路;如果只有特定设备错位、闪退或上下文丢失,再重点检查运行时工作集和图形兼容。

一个实用的验收原则是:

先证明源数据、装配结构和 B-Rep 正确,再讨论浏览器性能;“能显示”只是链路的最后一步,不是工程完整性的充分条件。

NIST STEP File Analyzer 可以作为独立交叉验证工具,用于检查 AP、产品结构、实体和部分验证属性。ModelView 采用同样的分层思路处理 STEP 等工程模型,把源格式转换、结构与对象身份、查看缓存和浏览器渲染分开验证。说明一下,我是项目开发者;Windows 标准版可以直接用真实装配测试:https://gitee.com/onedraw/modelView

参考:

  • https://www.nist.gov/services-resources/software/step-file-analyzer-and-viewer
  • https://www.iso.org/standard/84300.html