话说那是2019年的一个午后,我正坐对着电脑上的SolidWorks模型发呆。突然,客户打来电话,说他们无法在STP格式下编辑我们的模型,零件和曲面丢失得离谱。我就慌了,心想:“这可怎么办,这可是我们公司的一个重要项目,怎么能出现这种低级错误呢?”
第一步,我的直觉告诉我,问题肯定出在导出设置上。我打开了SolidWorks,常规操作导出了STP文件。问题并没有解决,零件和曲面依旧丢失。
第二步,我开始怀疑是模型本身的问题。我仔细检查了模型,发现了一些未缝合的边、自相交的面以及微小的面。我意识到,这些问题很是导致STP丢失数据的主要原因。
我决定先运行“检查实体”功能(工具 → 检查实体)。这个功能帮助我修复未缝合边、自相交、微小面或非流形几何。我选中了所有问题,点击“修复”。修复后的模型在导出STP时,问题依旧没有解决。
我开始怀疑是不是我的导出设置有问题。我重新设置了导出参数,将格式选为AP214(推荐)或AP203,勾选了“尝试形成实体”和“实体/曲面几何体”(非线框),并将弦高公差和角度公差分别设置为0.001 mm和0.1°。这些设置并没有解决问题。
我尝试了装配体导出,确认了无零件被隐藏、抑制或外部参考丢失。我还将统一单位设置为mm-kg-s(文件 → 文件属性 → 单位),以避免因缩放导致数值溢出或特征被过滤。
在这些设置都没有解决问题的情况下,我决定尝试“缝合曲面”功能。我手动选了所有面,将缝合容差设置为0.001 mm。这次,导出的STP文件看起来没有问题了。
当我用CAD Assistant或FreeCAD打开STP文件验证完整性时,我发现问题依旧存在。我怀疑是不是在导入时没有勾选“尝试形成实体”选项。
我开始怀疑是不是模型本身存在问题。我发现,我们的模型含有NURBS高阶曲面和薄壁结构。这是导致STP文件损失细节的原因。我决定保留原SLDPRT文件,或者改用x_t(Parasolid)交换格式。
在解决了这个问题之后,我进行了事后反思。我发现,我在排查过程中犯了一些错误,比如一开始就怀疑导出设置有问题,而没有先检查模型本身。我还走了很多弯路,比如尝试了各种导出设置,而没有深入分析问题原因。