一种基于STEP和GEO格式的数据交换方法及系统技术方案

技术编号:24757229 阅读:28 留言:0更新日期:2020-07-04 09:24
本发明专利技术涉及一种基于STEP和GEO格式的数据交换方法及系统,其中,方法是在CAD软件生成的STEP文件基础上,通过使用python提取STP文件几何信息,并关联起各层几何信息间的拓扑关系,最后转换成Gmsh(有限元网格生成程序)能读取的GEO格式。为解决两种几何标准间数据结构定义不统一的问题,本发明专利技术先将STP中的几何信息存储到python字典中,再统一进行结构的转换、调整后,输出为符合GEO标准的几何格式。本发明专利技术实现了CAD软件与有限元网格剖分软件的数据格式对接,有助于复杂模型的网格剖分以及后续求解。

A data exchange method and system based on step and geo format

【技术实现步骤摘要】
一种基于STEP和GEO格式的数据交换方法及系统
本专利技术涉及计算机辅助设计软件数据处理技术,特别涉及一种基于STEP和GEO格式的数据交换方法。
技术介绍
CAD(ComputerAidedDesign,计算机辅助设计)诞生于二十世纪60年代,是美国麻省理工学院提出的交互式图形学的研究计划,由于当时硬件设施昂贵,只有美国通用汽车公司和美国波音航空公司使用自行开发的交互式绘图系统。二十世纪70年代,小型计算机费用下降,美国工业界才开始广泛使用交互式绘图系统。CAD最早的应用是在汽车制造、航空航天以及电子工业的大公司中。随着计算机变得更便宜,应用范围也逐渐变广。FreeCAD就是一款常用的开源CAD软件。STEP文件是CAD绘图软件常用的3D图形文件的格式(扩展名为.STEP),其中包含三维对象的数据;提供对产品模型数据交换的支持。STEP文件是基于ASCII格式符合STEP应用协议ISO10303-21标准的正文编码的交换结构的三维图像数据。有限元分析前处理的常见做法是使用CAD软件建模,再使用网格生成器对模型进行网格剖分。Gmsh是带有内置CAD引擎和后处理器的开源3D有限元网格生成器,但是其CAD功能相比于专业的CAD软件仍有一定差距。Gmsh使用自定义的GEO标准来表示几何信息。Gmsh也是FreeCAD官方对接的有限元网格剖分工具。然而由于两种几何标准(STEP和GEO)间差异较大,相互转换存在诸多难点。FreeCAD选择直接使用了GEO标准的”import”语句在geo文件中导入一个STEP文件的方法,回避了两种格式的数据交换问题。但是这不利于后续有限元求解器对于几何模型的解读。Gmsh官方提供了格式转换功能,但仅仅局限于非常特定的功能,对稍复杂的模型转换就会出错。例如,球体在转换时会被离散成为很多离散点组成的圆。官方文档以及官方展示的PPT中都提及为了避免复杂模型的转换出错,Gmsh不提供不同标准的数据交换功能。
技术实现思路
本专利技术的目的在于,解决上述两种标准间相互转换存储的问题。为实现上述目的,一方面,本专利技术提供了一种基于STEP和GEO格式的数据交换方法,该方法包括以下步骤:使用python脚本读取配置文件信息,所述配置文件信息包括:STEP标准几何文件位置信息、输入文件名称、输出文件名称、输出地址;打开并逐行读入STEP中性文件,进行预处理,剔除与几何信息无关的语句;将点、边、面、体几何信息存入到python字典中;关联不同级别几何信息间的拓扑关系;将几何信息转换为GEO标准,GEO标准中集合定义主要由以下几部分组成:体、面、直线、曲线、点;按照GEO标准,创建并写入.geo文件。另一方面,本专利技术提供了一种基于STEP和GEO格式的数据交换系统,该系统包括:第一处理单元,用于使用python脚本读取配置文件信息,所述配置文件信息包括:STEP标准几何文件位置信息、输入文件名称、输出文件名称、输出地址;第二处理单元,用于打开并逐行读入STEP中性文件,进行预处理;第三处理单元,用于将点、边、面、体几何信息存入到python字典中;第四处理单元,用于关联不同级别几何信息间的拓扑关系;第五处理单元,用于将几何信息转换为GEO标准,GEO标准中集合定义主要由以下几部分组成:体、面、直线、曲线、点;第六处理单元,用于按照GEO标准,创建并写入.geo文件。本专利技术实现了CAD软件与有限元网格剖分软件的数据格式对接,有助于复杂模型的网格剖分以及后续求解。附图说明下面结合附图和实施例对本专利技术进一步说明。图1为本专利技术实施例提供的一种基于STEP和GEO格式的数据交换方法流程示意图;图2为STEP文件信息提取方法流程示意图;图3为STEP文件实施例(六面体)示意图;图4为本专利技术实施例提供的一种基于STEP和GEO格式的数据交换系统结构示意图。具体实施方式图1为本专利技术实施例提供的一种基于STEP和GEO格式的数据交换方法流程示意图。如图1所示,该方法包括以下步骤:步骤1:使用python脚本读取配置文件信息。具体地,python脚本读入配置文件信息(STEP2GEO.cfg),获得要转换的STEP标准几何文件(.STEP格式)位置信息、输入文件名称(box.STEP)、输出文件(.geo格式)名称、输出地址等信息。步骤2:打开并逐行读入STEP中性文件,进行预处理。具体地,步骤2方法流程如图2所示,其具体包括:步骤2.1,根据步骤1中读入的配置信息,找到并读取STEP文件。步骤2.2,使用python的readline()函数按行读取STEP文件。如果文件已到末尾,则转到步骤4。如果读取的到行是FILE_DESCRIPTION或FILE_NAME等于几何无关的信息则直接跳过,继续读取下一行。如果匹配到几何相关的关键字(CLOSED_SHELL、ADVANCED_FACE、FACE_BOUND、PLANE、LINE等),且以“;”结尾则转至步骤3。如果几何信息不以“;”结尾,则重复执行步骤2.2,并将所得语句拼接。该步骤主要剔除与几何信息无关的语句,并对一些特殊情况做处理。例如,部分语句过长会占据多行,python的readline函数无法读取完整,本方法判断行位非分号则认为当前语句未结束,继续向下读取。步骤3:将点、边、面、体等几何信息存入到python字典中。STEP标准中,几何拓扑信息主要由顶点(VERTEX_POINT)、边(EDGE_CURVE)、边环(EDGE_LOOP)、高级面(FACE_BOUND)、封闭壳(CLOSED_SHELL)等关键信息组成。本方法从(.STEP)文件中根据关键字匹配出对应几何信息,并把编号作为key,几何关键字对应的下一级信息作为value存入到python字典中。如,将CLOSED_SHELL对应的字符串(如#16=CLOSED_SHELL(”,(#17,#137,#237,#284,#331,#338));)存储到字典Volume中。此处,16作为KEY,代表体的编号为16,#17,#137,#237,#284,#331,#338作为VALUE。VALUE中的六个数字分别代表六个面。对于高级面(ANVANCED_FACE),语句形式为”#17=ADVANCED_FACE(”,(#18),#32,.F.);”。此处的#18用于描述面边界,#32用于描述面的类型,STEP标准中常见面类型有圆柱面(CYLINDRICALSURFACE)、球面(SURFACE)、圆锥面(CONICALSURFACE)、平面(PLANE)等。将几何信息存入到字典后,转至步骤2.2。步骤4:关联不同级别几何信息间的拓扑关系。具体地,获取STEP标准中不同级别的几何信息间的拓扑关系,并将其映射为GEO标准中的几何格式。该步骤获取步骤3中存储在字典中的几何信息。本文档来自技高网
...

【技术保护点】
1.一种基于STEP和GEO格式的数据交换方法,其特征在于,包括以下步骤:/n使用python脚本读取配置文件信息,所述配置文件信息包括:STEP标准几何文件位置信息、输入文件名称、输出文件名称、输出地址;/n打开并逐行读入STEP中性文件,进行预处理;/n将点、边、面、体几何信息存入到python字典中;/n关联不同级别几何信息间的拓扑关系;/n将几何信息转换为GEO标准,GEO标准中集合定义主要由以下几部分组成:体、面、直线、曲线、点;/n按照GEO标准,创建并写入.geo文件。/n

【技术特征摘要】
1.一种基于STEP和GEO格式的数据交换方法,其特征在于,包括以下步骤:
使用python脚本读取配置文件信息,所述配置文件信息包括:STEP标准几何文件位置信息、输入文件名称、输出文件名称、输出地址;
打开并逐行读入STEP中性文件,进行预处理;
将点、边、面、体几何信息存入到python字典中;
关联不同级别几何信息间的拓扑关系;
将几何信息转换为GEO标准,GEO标准中集合定义主要由以下几部分组成:体、面、直线、曲线、点;
按照GEO标准,创建并写入.geo文件。


2.根据权利要求1所述的方法,其特征在于,所述打开并逐行读入STEP中性文件,进行预处理步骤包括:
根据读入的配置文件信息,找到并读取STEP文件;使用python的readline()函数按行读取STEP文件;如果文件已到末尾,则转到步骤4。如果读取的到行是FILE_DESCRIPTION或FILE_NAME等于几何无关的信息则直接跳过,继续读取下一行;如果匹配到几何相关的关键字,且以“;”结尾则转至步骤3。如果几何信息不以“;”结尾,则重复执行步骤2,并将所得语句拼接。


3.根据权利要求1所述的方法,其特征在于,所述将点、边、面、体几何信息存入到python字典中步骤包括:
根据关键字匹配出对应几何信息,并把编号作为key,几何关键字对应的下一级信息作为value存入到python字典中;所述几何信息主要由顶点、边、边环、高级面、封闭壳关键信息组成;封闭壳由多个高级面组成,高级面由面边界、面以及布尔值构成。


4.根据权利要求3所述的方法,其特征在于,所述关联不同级别几何信息间的拓扑关系步骤包括:
获取STEP标准中不同级别的几何信息间的拓扑关系,并将其映射为GEO标准中的几何格式;以及根据关键字判断面的类型,然后根据存储在字典中的信息,通过几何计算求取曲面方程。


5.根据权利要求4所述的方法,其特征在于,所述的拓扑关系获取算法从封闭壳开始判断,然后获取其下一级的高级面信息;根据高级面的不同类型,获取下一级边以及底层顶点坐标信息。

【专利技术属性】
技术研发人员:王珏冯仰德杨文聂宁明刘天才王彦棡高付海高岳
申请(专利权)人:中国原子能科学研究院中国科学院计算机网络信息中心
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1