2023年11月26日发(作者:)
CATIA输出STP格式的船体模型数据分析及重现
朱安庆;杜兆阳;何佳
【摘 要】以CATIA中建立的船体模型为数据源,分析其输出的STP标准格式文件
数据结构,建立基于STP文件的不同实体对象的组织关系,并应用OpenCasCade开
源包编写解析STP文件的程序,对STP文件进行解析,重构文件组织结构,实现文件
数据的信息提取,生成验证效果良好的三维几何模型,为不同软件之间结构模型交换
提供解决方案.
【期刊名称】《造船技术》
【年(卷),期】2018(000)004
【总页数】8页(P10-17)
【关键词】CATIA;船体模型;数据结构;OpenCasCade
【作 者】朱安庆;杜兆阳;何佳
【作者单位】江苏科技大学船舶与海洋工程学院,江苏镇江212003;江苏现代造船
技术有限公司,江苏镇江212003;江苏科技大学船舶与海洋工程学院,江苏镇江
212003;江苏现代造船技术有限公司,江苏镇江212003
【正文语种】中 文
【中图分类】U663
0 引 言
CATIA是法国达索公司旗下的CAD/CAE/CAM一体化软件,其功能覆盖了产品设
计制造的各个方面[1]。近年来CATIA发布了V6版本,更进一步增强了多学科系
统建模和仿真功能。为更好地发挥CATIA的模型性能,将CATIA软件中生成的模
型传输到其他相关软件中,达到模型数据共享,提高设计效率,研究CATIA软件
船体模型与其他CAD软件的数据交换就显得十分必要。
本文基于CATIA V6设计软件中的结构设计数据结构,通过STP中间文件分析船
体模型数据组成,提取模型产品数据,并以CATIA设计软件导出的STP文件数据
组织结构为依据,运用OpenCasCade(OCC)第三方开源包编写解析程序,生成可
以验证的三维几何模型[2]。
1 CATIA系统模型数据特点
CATIA作为一款国际流行的三维设计软件,功能齐全,具有强大的混合建模能力,
模型的细节表达及虚拟仿真功能也非常完善[3-4],它的基本功能模块及集成应用
模块的产品结构模型表达如图1所示。产品作为最高级的组织,由若干子产品、
部件、零件组成,其中:部件由许多的零件通过它们之间不同的约束关系组成;零
件是整个产品模型的最底层结构,由许多实体组成,其中包含了组成该零件的几何
及非几何信息。本文讨论以CATIA中建立的船体模型输出STP文件,分析其结构
组成,获取船体模型数据,利用OCC第三方开源包,编写解析程序,实现模型重
建[5]。
图1 CATIA产品模型结构
2 STP文件基本组成
STP文件格式满足STEP模型交换标准,模型数据覆盖产品整个生命周期中所有数
据元素,包括为进行设计、分析、制造、测试、检验和产品支持而全面定义的零部
件或构件所需的几何、拓扑、公差、关系、属性和性能等数据。因此,选用这种输
出文件作为数据源进行分析能准确得到模型数据信息。
STP文件由ISO-10303-21开始,由END-ISO-10303-21结束[6],每1行数据
由基本字符串组成,其中包含了表示特定意义的标识符、关键字和数据信息等,整
个文件从结构上分为头部分和数据部分。
头部分主要是对整个交换文件的基本信息进行描述,如用户、工程名、日期、文件
版本等信息,以HEADER开头,以ENDSEC结尾。数据部分是STP文件的主体
部分,是对各个实体信息描述的集合,主要对具体模型信息进行描述,以DATA
开头,以ENDSEC结尾。本文主要针对数据部分对文件进行解析,获取模型数据
结构。
数据部分是各实体描述的集合,采用扩展边界表示法来描述实体。通过对导出的多
个STP文件进行分析,总结出STP文件中对一般实体的表示格式是:
#数字=实体关键字(‘实体名称’,属性1,属性2,…);
例如:
#38=CARTESIAN_POINT('Vertex',(58 200.,-2 800.,12 000.));
从这行数据中可以得出:标识符38表示的是1个点,该点为某直线的顶点,由坐
标(58 200.,-2 800.,12 000.)确定位置。
不同实体实例通过其属性的组成进行联系,例如:#121=LINE('Line',#118,#120),
其中#121表示的是1条线,括号内是该标识符下的实体名称——线及括号内组成
这条线的2个属性,这2个属性用标识符表示,继续查找括号内属性值所代表的
实体,得到组成这条线的其他信息,最终完整实体实例。
3 基于CATIA的STP格式船体模型数据分析
3.1 基于CATIA的STP输出格式的数据结构
STP文件描述的CATIA模型数据结构可分为3类,分别是几何信息、拓扑信息及
属性信息,其中几何信息和拓扑信息是STP文件中描述模型数据结构的核心部分,
也是实体造型的基础数据。通过分析文件中的这些数据来完成几何实体的构造。
(1) 几何信息。文件中定义的几何信息包括点、线、面等几何元素,如:点包含笛
卡尔点;线包含直线、B样条曲线、圆、曲线等;面包含曲面、平面、B样条曲面
等;此外,还有方向、矢量、方位等的定义。文件中这些几何元素通过实体关键字
来区别定义,具体的几何元素关系如图2所示。
(2) 拓扑信息。文件中的拓扑信息包含实体间的连接、邻接关系,这种拓扑关系描
述了几何上的点、线、面等元素的相邻关系。文件中定义的拓扑元素主要有壳、面、
环、边、顶点,具体的拓扑元素关系如图3所示。
图2 几何实体元素关系
图3 拓扑实体元素关系
通过分析总结,STP文件中描述模型产品的实体主要有:笛卡尔点
(CARTESIAN_POINT)、顶点(VERTEX_POINT)、方向(DIRECTION)、矢量
(VECTOR)等,通过查找各实体的关键字,找到各实体间的几何及拓扑关系来完整
地描述模型实体信息。
下面以CATIA软件建立的板材模型为例,导出STP格式的文件,对相应的STP文
件进行分析,确定数据组织结构。
3.2 平面板材的结构组成
在CATIA中建立船体平面板架模型,如图4所示,并基于此对船体模型进行数据
分析。
图4 平面板架模型
在STP文件的基本组成中,STP文件表达模型数据分为几何体定义和几何信息定
义等2部分,文中仅对其所表达的数据结构中的几何体定义内的信息进行分析。
分析平面板架的STP文件,得出平面板材的表达是通过在一个大表面上定义一个
闭合边界来确定面的具体形状和位置。
文件中一个平板实体是一个高级面(ADVANCED_FACE)组成,同时在STP文件中,
表示高级面的这行数据内有命名这个平板的名称,通过这行数据可以得到需要的板
的属性信息,例如:
#328=ADVANCED_FACE('DECK_9 000 _0 mm_8 mm_STEEL
A235',(#327),#56,.T.) ;
从这条数据中可以得出:这个高级面所定义的是1个命名为DECK_9 000. BL_0
mm_8 mm_STEEL A235的甲板面,可从中得到需要的信息。高级面由1个面的
边界(FACE_OUTER_BOUND)和1个几何曲面(PLANE)组成,这里的PLANE就是
1个在某高度上无限大的面,相当于1个大表面;面的边界
(FACE_OUTER_BOUND)由多个边界环(EDGE_LOOP)组成,边界环由多个有向边
(ORIENTED_EDGE)组成,根据不同面的具体形状,STP文件会按照STEP标准划
分不等数量的有向边;不同的有向边之间首尾相连形成封闭边界环。每个有向边由
1个边界曲线(EDGE_CURVE)组成,边界曲线由2个顶点(VERTEX_POINT)和表示
边的几何曲线(LINE)组成,这里的顶点分别是起始点和终止点,2点连线即为边界
曲线,几何曲线由1个起点(Line Origine)和矢量(VECTOR)组成,几何曲线方向
表示该边界曲线的方向。在平面板材中,通过这些实体组成的边界来描述具体的平
板。
对于不同的平面,数据结构在STP文件中的表达均是如此,平面板材数据组织结
构如图5所示。
图5 平面板材数据结构
3.3 STP文件的解析
对CATIA的STP文件的解析采用开发外插程序的方法进行,对STP文件进行预处
理,遍历整个文件,以分割字符串的方法将文件中的数据按不同的实体进行分类,
具体的流程如图6和图7所示。
图6 文件处理流程
图7 字符串分割具体流程
完成文件中不同实体的数据处理后,对提取出来的数据按照船体结构的特点进行重
新组织。判断该实体是否为板材、型材、肘板、面板等,根据判断结果进行不同的
处理,得出相应信息,将相关数据信息保存到相应的零件节点下,完成数据提取,
并输出.txt文件以便验证数据的准确性。处理流程如图8所示。
示例结构的.txt文件生成如下:
#328 ADVANCED_FACE
NAME: DECK_9 000 _0 mm_8 mm_STEEL A235 //节点名称
H: 9 //高度
Thick: 8 //厚度
Material: A235 //材料
#327 FACE_OUTER_BOUND: //板边界
#316 EDGE_LOOP //边界环
#317 ORIENTED_EDGE //边界曲线,以B样条曲线描述
图8 实体模型处理
#57 B_SPLINE_CURVE_WITH_KNOTS:CARTESIAN_POINT(71.200 000 8.172
622 9.000 000) …… //省略若干坐标
#318 ORIENTED_EDGE
#69 B_SPLINE_CURVE_WITH_KNOTS:CARTESIAN_POINT(81.399 000 3.280
384 9.000 000) ……
3.4 基于OCC的船体模型重现
STP格式文件通用CAD文件交换格式,遵守STEP标准,可运用开源OCC对
CATIA导出的STP文件进行模型重建。OCC将类库中有关联的类封装成1个包
(Package),这个包被翻译成动态链接库,为开发者提供所需的接口函数。OCC
中独立的STEP数据交换模块可以读取、写入STEP标准文件中数据模型的几何、
拓扑、属性等信息,并进行三维模型的重建。本文运用OCC工具编程,将STP文
件中的数据模型映射成OCC数据模型,通过OCC数据模型的重建来实现对STP
文件中数据模型的三维重建。STP文件中数据模型的拓扑实体与OCC对象之间的
映射关系如图9所示,几何实体与OCC对象之间的映射关系如图10所示。
图9 STP文件中拓扑实体与OCC对象之间的映射
图10 STP文件中几何实体与OCC对象之间的映射
在文件的解析过程中,生成能够验证的OCC几何实体模型集,对OCC几何模型
集进行遍历解析,获取几何信息,实现CATIA导出的STP文件的船体三维实体模
型重建。以本文所建立的平面板架为例,验证本文利用OCC所开发解析程序的有
效性。本程序的流程图如图11所示,船体结构平面模型重建效果图如图12所示。
图11 程序流程
图12 基于OCC的船体结构模型重建效果图
4 结 论
本文通过对CATIA软件导出的STP文件进行分析,间接得到了CATIA中模型的
几何、拓扑及其相关属性等信息。在文件解析过程中,采用分析中性文件的方法,
提取出模型的数据信息,提高了后续开发CATIA软件与其他软件的数据交换接口
程序的独立性,减少数据分析过程中对软件的依赖性。同时,利用OCC第三方开
源包,编写解析程序,实现CATIA导出的STP文件的船体三维实体模型重建。
参考文献
【相关文献】
[1] 郑波. 面向STEP的实体信息交换软件的设计与实现[D].大连:大连理工大学,2014.
[2] 谭菲. 船舶STEP标准AP218实施方法的研究[D]. 哈尔滨:哈尔滨工业大学,2010.
[3] 辛凌云. 基于OpenGL的STEP文件几何信息重现技术研究[D]. 天津:河北工业大学,2014.
[4] 刘晓光. CAD软件二次开发方法及应用探析[J]. 无线互联科技,2015(24):62-63.
[5] 韩韡. TRIBON与CATIA间船体模型数据交换技术研究 [D]. 上海:上海交通大学,2013.
[6] 高志华. CATIA V6从入门到精通[M].北京:电子工业出版社, 2011.


发布评论