CN111368467B - 一种基于step和geo格式的数据交换方法及系统 - Google Patents
一种基于step和geo格式的数据交换方法及系统 Download PDFInfo
- Publication number
- CN111368467B CN111368467B CN202010104663.3A CN202010104663A CN111368467B CN 111368467 B CN111368467 B CN 111368467B CN 202010104663 A CN202010104663 A CN 202010104663A CN 111368467 B CN111368467 B CN 111368467B
- Authority
- CN
- China
- Prior art keywords
- file
- information
- geo
- geometric
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种基于STEP和GEO格式的数据交换方法及系统,其中,方法是在CAD软件生成的STEP文件基础上,通过使用python提取STP文件几何信息,并关联起各层几何信息间的拓扑关系,最后转换成Gmsh(有限元网格生成程序)能读取的GEO格式。为解决两种几何标准间数据结构定义不统一的问题,本发明先将STP中的几何信息存储到python字典中,再统一进行结构的转换、调整后,输出为符合GEO标准的几何格式。本发明实现了CAD软件与有限元网格剖分软件的数据格式对接,有助于复杂模型的网格剖分以及后续求解。
Description
技术领域
本发明涉及计算机辅助设计软件数据处理技术,特别涉及一种基于STEP和GEO格式的数据交换方法。
背景技术
CAD(Computer Aided Design,计算机辅助设计)诞生于二十世纪60年代,是美国麻省理工学院提出的交互式图形学的研究计划,由于当时硬件设施昂贵,只有美国通用汽车公司和美国波音航空公司使用自行开发的交互式绘图系统。二十世纪70年代,小型计算机费用下降,美国工业界才开始广泛使用交互式绘图系统。CAD最早的应用是在汽车制造、航空航天以及电子工业的大公司中。随着计算机变得更便宜,应用范围也逐渐变广。FreeCAD就是一款常用的开源CAD软件。
STEP文件是CAD绘图软件常用的3D图形文件的格式(扩展名为.STEP),其中包含三维对象的数据;提供对产品模型数据交换的支持。STEP文件是基于ASCII格式符合STEP应用协议ISO 10303-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)、圆锥面(CONICAL SURFACE)、平面(PLANE)等。将几何信息存入到字典后,转至步骤2.2。
步骤4:关联不同级别几何信息间的拓扑关系。
具体地,获取STEP标准中不同级别的几何信息间的拓扑关系,并将其映射为GEO标准中的几何格式。该步骤获取步骤3中存储在字典中的几何信息。一般封闭壳(CLOSED_SHELL)由多个高级面(FACE_BOUND)组成。高级面(FACE_BOUND)由面边界(FACE_BOUND)、面(SURFACE)以及布尔值(.T./.F.)构成。根据关键字判断面(SURFACE)的类型,然后根据步骤3存储在字典中的信息,通过几何计算求取曲面方程。面边界(FACE_BOUND)由边环(EDGE_LOOP)以及布尔值(.T./.F.)构成。边环(EDGE_LOOP)由数条有向边(ORIENTED_EDGE)构成。有向边(ORIENTED_EDGE)由两个顶点(VERTEX_POINT)和一条线(SURFACE_CURVE)构成,两个顶点分别为有向边的起点和终点。顶点(VERTEX_POINT)由一个笛卡尔点(CARTESIAN_POINT)构成,笛卡尔点由三个坐标轴位置表示。
步骤5:将几何信息转换为GEO标准。
GEO标准中集合定义主要由以下几部分组成:体(volume)、面(surface)、直线(Straight l ine)、曲线(circle)、点(point)。本方法提出把CLOSED_SHELL映射为volume;把高级面及下级拓扑信息转换为面(surface);把边(EDGE)映射为线(Straight l ine/circle);把笛卡尔点(CARTESIAN_POINT)映射为点(point)。
步骤6:按照GEO标准,创建并写入.geo文件。
根据步骤1中获取的输出文件位置,创建输出文件(.geo格式)。依次将点(point)、曲线(circle)、面(surface)、体(volume)信息写入到输出文件中。需注意的是,每一级几何信息(如surface)需保证序号不重复,否则后续读取会出现异常。
步骤7:算法结束。转换完成,关闭.STEP和GEO文件。
转换完成后关闭输入、输出文件链接,输出提示信息等后续操作。
本发明实施例能够实现CAD软件与有限元网格剖分软件的数据格式对接,有助于复杂模型的网格剖分以及后续求解。
相应地,本发明实施例提供了一种基于STEP和GEO格式的数据交换系统。图4为本发明实施例提供的一种基于STEP和GEO格式的数据交换系统结构示意图。如图4所示,该系统包括:
第一处理单元,用于使用python脚本读取配置文件信息,所述配置文件信息包括:STEP标准几何文件位置信息、输入文件名称、输出文件名称、输出地址;
第二处理单元,用于打开并逐行读入STEP中性文件,进行预处理;
第三处理单元,用于将点、边、面、体几何信息存入到python字典中;
第四处理单元,用于关联不同级别几何信息间的拓扑关系;
第五处理单元,用于将几何信息转换为GEO标准,GEO标准中集合定义主要由以下几部分组成:体、面、直线、曲线、点;
第六处理单元,用于按照GEO标准,创建并写入.geo文件。
显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的改变,都应包括在本权利要求书所涵盖的范围之内。本发明所要求保护的范围仅由所述的权利要求书进行限定。
Claims (8)
1.一种基于STEP和GEO格式的数据交换方法,其特征在于,包括以下步骤:
使用python脚本读取配置文件信息,所述配置文件信息包括:STEP标准几何文件位置信息、输入文件名称、输出文件名称、输出地址;
打开并逐行读入STEP中性文件,进行预处理;
将点、边、面、体几何信息存入到python字典中;
关联不同级别几何信息间的拓扑关系;
将几何信息转换为GEO标准,GEO标准中集合定义主要由以下几部分组成:体、面、直线、曲线、点;
按照GEO标准,创建并写入.geo文件;
所述打开并逐行读入STEP中性文件,进行预处理步骤包括:
根据读入的配置文件信息,找到并读取STEP文件;使用python的readline()函数按行读取STEP文件;如果文件已到末尾,则转到步骤4;如果读取的到行是FILE_DESCRIPTION或FILE_NAME等于几何无关的信息则直接跳过,继续读取下一行;如果匹配到几何相关的关键字,且以“;”结尾则转至步骤3;如果几何信息不以“;”结尾,则重复执行步骤2,并将所得语句拼接。
2.根据权利要求1所述的方法,其特征在于,所述将点、边、面、体几何信息存入到python字典中步骤包括:
根据关键字匹配出对应几何信息,并把编号作为key,几何关键字对应的下一级信息作为value存入到python字典中;所述几何信息主要由顶点、边、边环、高级面、封闭壳关键信息组成;封闭壳由多个高级面组成,高级面由面边界、面以及布尔值构成。
3.根据权利要求2所述的方法,其特征在于,所述关联不同级别几何信息间的拓扑关系步骤包括:
获取STEP标准中不同级别的几何信息间的拓扑关系,并将其映射为GEO标准中的几何格式;以及根据关键字判断面的类型,然后根据存储在字典中的信息,通过几何计算求取曲面方程。
4.根据权利要求3所述的方法,其特征在于,所述的拓扑关系获取算法从封闭壳开始判断,然后获取其下一级的高级面信息;根据高级面的不同类型,获取下一级边以及底层顶点坐标信息。
5.根据权利要求1所述的方法,其特征在于,所述将几何信息转换为GEO标准步骤包括:
把封闭壳映射为体,把高级面及下级拓扑信息转换为面;把边映射为线,把笛卡尔点映射为点。
6.根据权利要求1所述的方法,其特征在于,所述按照GEO标准,创建并写入.geo文件步骤包括:
根据输出文件位置,创建输出文件.geo格式;依次将点、曲线、面、体信息写入到输出文件中;每一级几何信息需保证序号不重复。
7.一种基于STEP和GEO格式的数据交换系统,其特征在于,包括:
第一处理单元,用于使用python脚本读取配置文件信息,所述配置文件信息包括:STEP标准几何文件位置信息、输入文件名称、输出文件名称、输出地址;
第二处理单元,用于打开并逐行读入STEP中性文件,进行预处理;
第三处理单元,用于将点、边、面、体几何信息存入到python字典中;
第四处理单元,用于关联不同级别几何信息间的拓扑关系;
第五处理单元,用于将几何信息转换为GEO标准,GEO标准中集合定义主要由以下几部分组成:体、面、直线、曲线、点;
第六处理单元,用于按照GEO标准,创建并写入.geo文件;
所述第二处理单元具体用于:
根据读入的配置文件信息,找到并读取STEP文件;使用python的readline()函数按行读取STEP文件;如果文件已到末尾,则转到步骤4;如果读取的到行是FILE_DESCRIPTION或FILE_NAME等于几何无关的信息则直接跳过,继续读取下一行;如果匹配到几何相关的关键字,且以“;”结尾则转至步骤3;如果几何信息不以“;”结尾,则重复执行步骤2,并将所得语句拼接。
8.根据权利要求7所述的系统,其特征在于,所述第三处理单元具体用于:
根据关键字匹配出对应几何信息,并把编号作为key,几何关键字对应的下一级信息作为value存入到python字典中;所述几何信息主要由顶点、边、边环、高级面、封闭壳关键信息组成;封闭壳由多个高级面组成,高级面由面边界、面以及布尔值构成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010104663.3A CN111368467B (zh) | 2020-02-20 | 2020-02-20 | 一种基于step和geo格式的数据交换方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010104663.3A CN111368467B (zh) | 2020-02-20 | 2020-02-20 | 一种基于step和geo格式的数据交换方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111368467A CN111368467A (zh) | 2020-07-03 |
CN111368467B true CN111368467B (zh) | 2022-03-11 |
Family
ID=71206311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010104663.3A Active CN111368467B (zh) | 2020-02-20 | 2020-02-20 | 一种基于step和geo格式的数据交换方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111368467B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112699427A (zh) * | 2021-01-05 | 2021-04-23 | 新代科技(苏州)有限公司 | 一种基于step文件的加工数据的转换方法 |
CN114970196B (zh) * | 2022-06-14 | 2022-12-09 | 北京科技大学 | 冶金容器的模型和结构化网格同步快速生成方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104021255A (zh) * | 2014-06-20 | 2014-09-03 | 上海交通大学 | Cad模型的多分辨率层次表示及层次匹配加权比较方法 |
CN104978462A (zh) * | 2015-07-10 | 2015-10-14 | 兰州大学 | 一种基于gpu硬件加速的散裂靶可视化辅助系统及方法 |
CN105719349A (zh) * | 2016-01-19 | 2016-06-29 | 中国科学院自动化研究所 | 基于最大化泊松圆盘采样的四面体网格化方法和系统 |
CN106294606A (zh) * | 2016-07-29 | 2017-01-04 | 北京蓝威技术有限公司 | 一种基于通用读写框架的cae文件转换方法及装置 |
CN110136779A (zh) * | 2019-05-30 | 2019-08-16 | 上海大学 | 一种生物网络关键差异节点的样本特征提取及预测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3050220A1 (en) * | 2018-07-19 | 2020-01-19 | Bank Of Montreal | Systems and methods for data storage and processing |
-
2020
- 2020-02-20 CN CN202010104663.3A patent/CN111368467B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104021255A (zh) * | 2014-06-20 | 2014-09-03 | 上海交通大学 | Cad模型的多分辨率层次表示及层次匹配加权比较方法 |
CN104978462A (zh) * | 2015-07-10 | 2015-10-14 | 兰州大学 | 一种基于gpu硬件加速的散裂靶可视化辅助系统及方法 |
CN105719349A (zh) * | 2016-01-19 | 2016-06-29 | 中国科学院自动化研究所 | 基于最大化泊松圆盘采样的四面体网格化方法和系统 |
CN106294606A (zh) * | 2016-07-29 | 2017-01-04 | 北京蓝威技术有限公司 | 一种基于通用读写框架的cae文件转换方法及装置 |
CN110136779A (zh) * | 2019-05-30 | 2019-08-16 | 上海大学 | 一种生物网络关键差异节点的样本特征提取及预测方法 |
Non-Patent Citations (1)
Title |
---|
"如何使用GMSH或类似工具从.step文件自动生成网格?";匿名;《stackoom.com》;20190701;第1-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111368467A (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190303530A1 (en) | Mechanisms for Constructing Isocurves and Corresponding Surfaces to Provide Inter-Surface Continuity | |
JP7049807B2 (ja) | パラメトリックビュー関数に基づくデータベースの照会 | |
CN111368467B (zh) | 一种基于step和geo格式的数据交换方法及系统 | |
Helpenstein | CAD geometry data exchange using STEP: realisation of interface processors | |
Patrick et al. | Visual dataflow modelling: a comparison of three systems | |
Sreeramulu et al. | A new methodology for recognizing features in rotational parts using STEP data exchange standard | |
JP2018022476A (ja) | モフォロジー基準によるデータベースの照会 | |
Goult et al. | Improving the performance of neutral file data transfers | |
Schlechtendahl | CAD data transfer for solid models | |
CN117669046A (zh) | 一种面向汽车装配工艺智能决策的数据集成方法及系统 | |
Inoue et al. | Solid model reconstruction of wireframe CAD models based on topological embeddings of planar graphs | |
Li et al. | Preparation of CAD model for finite element analysis | |
Harish et al. | Automated 3D solid reconstruction from 2D CAD using OpenCV | |
US20220129598A1 (en) | Shape systems and methods | |
Altidor et al. | A programming language approach to parametric CAD data exchange | |
Song et al. | Interoperability between a cooperative design modeler and a cad system: Software integration versus data exchange | |
Song et al. | Data format and browser of lightweight CAD files for dimensional verification over the internet | |
Jing et al. | Research on the intelligent generation method of MBD model 3D marking using predefined features | |
Avola et al. | Ambiguities in sketch-based interfaces | |
Murshed et al. | Neutral definition and recognition of assembly features for legacy systems reverse engineering | |
Mustafa et al. | A comparative study of product data exchange among CAD systems | |
KR102596257B1 (ko) | 기계가공 특징형상 인식 방법 및 이를 수행하기 위한 컴퓨팅 장치 | |
Crozet et al. | Fast computation of local minimal distances between CAD models for dynamics simulation | |
CN113792152B (zh) | 一种三角图与知识图谱的融合方法 | |
Sinha et al. | Extracting articulation models from CAD models of parts with curved surfaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |