结构仿真中CAD模型自动简化系统的实现
随着产品设计水平的提高,以及客户对产品要求的增加,仿真分析已经成为产品设计、性能分析和优化不可或缺的部分,产品最终性能的改善和提高正从以经验为主导的时代逐渐向以仿真分析为手段的阶段过渡。在实际应用中,无论是有限元仿真还是结构运动和动力学仿真,一般都需要将CAD软件中设计的三维实体模型导入到仿真分析软件中,模型的简化不可避免。对于单个零件或简单装配体的简化,其工作量还较小,而要简化一个复杂的装配体,其工作量是相当繁重的,零件的取舍、小孔和小面的删除等工作繁多,并且由于零件和零件之间存在装配关系,有时还会导致不可预知的操作错误。一个复杂装配体的简化工作可能占到整个仿真工作量的40%左右。
基于以上原因以及实际工作的需要,本文作者提出了模型自动简化系统(MASS),并设计了一套模型简化软件。该软件基于OpenCASCADE开源三维平台,以国际通用的STEP标准作为模型导入、导出的文件格式,实现了CAD模型解析、删除零件、去除小面和内孔等模型简化工作。为了提高自动化水平,通过简单的参数设置,软件可以实现自动导入、简化和导出工作,实现无需人工干预自动完成的功能,极大地提高了工作效率,降低了劳动强度。
一、OpenCASCADE平台简介
OpenCASCADE是基于面向对象技术开发的、针对特定领域的C++类库,提供了点、线、面、体和复杂形体的显示和交互操作功能,可以处理二维和三维数据,包括二维表面和实体建模、数据交换、仿真和分析等应用。OpenCASCADE平台提供了一个功能强大的三维建模工具库,经过深度开发后可实现纹理、光照、图元填充和渲染等图形操作,和放大、缩小、旋转、漫游和模拟飞行等动态操作,目前最新版本是6.5.0。
OpenCASCADE软件平台具有以下主要功能,对象库是基于CAS.CADE技术开发的,具有模块化、易于扩展等特点。
◎二维和三维建模,包括基本实体建模、布尔操作、特征操作(倒角、拔模等)及复杂建模技术(偏移、壳、拔模和扫描等)。
◎几何空间关系计算,包括法线、点积、叉积、投影和拟合等。
◎几何体分析,计算模型的质心、体积和曲率等属性。
◎可视化,管理显示对象和视图操作,包括对象的显示、隐藏,视图的旋转、缩放、平移和渲染等。
◎应用程序框架,包括几何体和非几何体数据关联、参数化建模,以及Java应用平台。
◎数据交换,提供模型的导入、导出功能,免费的三维模型接口包括IGES和STEP(AP203、AP214和AP209)文件格式,网格模型接口包括STL、OBJ和VRML等。
二、STEP文件解析
STEP(The STandard for the Exchange of Product model data)标准是国际标准化组织制定的、用于描述整个产品生命周期内产品信息的标准,是一个正在完善中的“产品数据模型交换标准”,ISO正式代号为ISO-。它提供了一种不依赖具体系统的中性机制,旨在实现产品数据的交换和共享。发达国家已经把STEP标准推向了工业应用,它的应用显著降低了产品生命周期内的信息交换成本,提高了产品研发效率,成为制造业进行国际合作、参与国际竞争的重要基础标准,是保持企业竞争力的重要工具。
整个STEP系统分为三个层次:由上至下依次为应用层、逻辑层和物理层,其层次关系如图1所示。
STEP标准具有简便、可兼容性、寿命周期长和可扩展性的优点,能够很好地解决信息集成问题,实现资源的最优组合,实现信息的无缝连接。
由于STEP标准包含多种应用协议,因此对STEP文件内容的完全解析将是一项复杂而庞大的工作。因此,本文对STEP内容的解析只涉及三维模型部分,可以解析的STEP应用协议包括AP203、Ap214CD、AP214IS和AP214DIS等。要实现STEP文件到OpenCASCADE平台的转换过程,必须在两者之间建立一个对象之间一一对应的映射关系,表列出了部分对象的映射关系对照表。
三、模型简化系统的实现
模型简化系统以OpenCASCADE作为三维模型简化的底层开发平台,实体模型交换数据采用国际通用的STEP文件格式,采用C#作为界面开发平台,结合VS2008编译环境设计开发了模型自动简化系统,软件可以脱离任何CAD环境而独立运行。
模型简化系统大体可分为模型的导入、模型的简化和模型的导出三个部分。模型的导入又包括STEP模型的解析和模型重建两部分;模型的简化包括删除、去除内孔和删除小面片等功能;模型的导出即将简化后的模型保存为STEP格式文件,可看作模型导入的逆操作。
1.STEP模型导入
STEP文件的导入工作主要用到OpenCASCADE库的XDE(eXtendedDataExchange)模块,此模块包含了导入模型的装配结构、节点属性、节点名称、零件颜色和层等信息,模块以OCAF(OpenCASCADEApplicationFramework)为基础,可以读写STEP和IGES文件。以下程序片段将加载STEP文件,并进行必要的转换工作。
STEPCAFControl_Readerreader;
reader.ReadFile(stepFileName);
Handle(TDocStd_Document)doc=newTDocStd_Document(“XDEForSTEP”);
reader.SetColorMode(true);
reader.SetNameMode(true);
booltrans=reader.Transfer(doc);
文件转换完成后就可以进行解析,由于STEP文件保留了模型的装配层次关系,转换后的文件也将以此种结构保存在内存中。使用递归算法遍历每一个装配节点,即可完成模型的导入工作。
2.模型简化
模型简化功能提供了三种简化方式:删除零件、删除内孔和删除小面。删除零件又可细分为以零件体积作为参数和以零件厚度作为参数。
删除零件操作以设定的最小零件体积和最小零件厚度为参数,扫描所有的零件,将体积或厚度小于设定值的零件从装配体中删除掉。此外,还可以从装配树入手,将子装配一起删除。模型简化中的去除内孔和删除小面片操作需要用到OpenCASCADE库的ModelingAlgorithms-ShapeHealing模块,此模块提供了模型的分析、修补、特征操作和定制等功能,属于OpenCASCADE库的高级应用部分。
去除内孔功能的基本原理是:根据零件拓扑结构遍历
模型所有的面单元,对于每一个面单元遍历所有的内环单元,计算由内环所围成的面的面积,当面积小于给定值时删除此内环。删除小面片的操作和去除内孔功能流程相似,即循环所有的面单元并计算面积,当面积小于设定值时删除此面,删除结束后进行必要的模型修补工作。
为了提高模型简化的自动化水平,和在无人值守的情况下(如下班后)执行简化工作,软件提供了模型的自动导入、简化和导出工作,图5是自动简化模型定制窗口,通过简单的参数设置就可以实现模型自动导入、简化和导出工作,以及操作结束后自动关机功能。
3.模型导出
简化后的模型导出为STEP文件格式时,需保留装配树结构以及零件信息,如名称www.nanfangmodel.com、颜色等,因此需对装配树节点进行迭代处理。此过程为STEP模型导入的逆过程。
四、总结
本文通过引入STEP标准和软件自动执行技术,提出了三维模型自动简化系统(MASS),为CAD模型向CAE模型的转换提供了一条新的模型解决方案,并基于OpenCASCADE开源三维库建立了相应的实现软件。通过实际应用,软件的自动简化模型功能稳定,简化效果明显,在降低劳动强度的同时极大地提高了仿真工作的效率。