一种基于通用读写框架的CAE文件转换方法及装置与流程

文档序号:12364150阅读:837来源:国知局
一种基于通用读写框架的CAE文件转换方法及装置与流程

本发明涉及CAE模型文件转换领域,具体涉及一种基于通用读写框架的CAE文件转换方法及装置。



背景技术:

商业CAE软件基本都会附带专业的前处理软件和后处理软件,大都支持主流商业CAE模型的输入。当然也间接实现模型间的相互转换,例如:ABAQUS和NASTRAN之间是支持互相转换的。

这里要提一下HyperWorks,它有专门的前处理软件HyperMesh。HyperMesh特长在于网格划分的功能。同时HyperMesh支持很多不同的求解器输入输出格式,这样在利用Hypermesh划分好模型的有限元网格后,可以直接把计算模型转化成不同的求解器文件格式,从而利用相应的求解器进行计算。

HyperMesh能为所有主流求解器做前处理,不仅在于它的网格质量非常好,还在于它多样化的模板,通过模板可以将HyperMesh的专有格式输出为用户自定义的格式。但是HyperMesh在读取特定格式的模型文件时只提供二进制(.exe或者.dll)的读取器(reader)。显然在用户想扩展HyperMesh的读取功能时会受到限制(因为用户不可能知道读取器的实现规则)。

总结而言,HyperMesh的方式值得借鉴。然而HyperMesh价格昂贵,对中小企业而言负担较重。除去价格问题,这些商业CAE软件基本缺乏对开源CAE模型的支持。例如Code_Aster的模型格式上述商业CAE软件均不提供直接支持。如果用户想通过自定义的方式支持新类型的模型文件读入目前来看还是有难度的。

当然各种开源的资源里也提供有一些CAE模型文件转换的方案,可以省却重新造轮子的工作,但问题也随之而来。开源的读写器原理不同,使用的计算机语言也不同,有的用C++,有的用Java,有的用Python。如果都集成到平台中来,必然带来软件工程管理上的混乱。而且商业求解器的输入输出文件解析一般都是不开源的,很难都从网上找到现成的解决方案。



技术实现要素:

为了克服现有技术的不足和缺陷,本发明提供了一种基于通用读写框架的CAE文件转换方法及装置。

本发明解决上述技术问题的技术方案如下:

一方面,本发明提供了一种基于通用读写框架的CAE文件转换方法,用于在CAE数据处理过程中的各类模型文件之间的转换,包括以下步骤:

S1、按行顺序读取模型文件A的文件内容;

S2、根据在通用读写框架中预先配置的读配置文件将所述模型文件A中的每一行文件内容按照所述模型文件A的格式解析映射到统一数据模型中;

S3、根据在通用读写框架中预先配置的写配置文件将统一数据模型按照模型文件B的格式映射为模型文件B。

本发明的有益效果为:引入了通用的读写框架和统一数据模型,通过在通用读写框架中编写读配置文件和写配置文件,并结合统一数据模型共同将CAE数据处理过程中产生的模型文件A转换为不同格式的模型文件B,实现了不同格式模型文件之间的相互转化。

在上述技术方案的基础上,本发明还可以作如下改进。

进一步的,所述步骤S1具体包括:

S11、按行顺序读取模型文件A,判断该行是否为注释行;

S12、若否,识别该行的区域关键字,执行S13;若是,舍弃该行,返回S11,重新读取模型文件A的下一行;

S13、若识别到区域关键字,获取对应的区域属性配置,执行S14;若未识别到区域关键字,则获取该行的记录配置,执行S14;

S14、区域属性配置或者记录配置中含有区域属性或者记录的格式配置项,该格式配置项根据预先编写的模型文件A的格式说明书得来,可对获取的行内容进行格式的检查,若格式检查正确,则执行S2;若格式检查错误,舍弃该行,则返回S11,重新读取模型文件A的下一行。

所述进一步的有益效果为:将模型文件A中的注释行剔除,以及对获取的区域属性配置和记录配置进行格式检查,对于格式不正确的也进行剔除,保证了模型文件A中数据的正确性。

进一步的,根据所述预先编写的模型文件A的格式说明书来配置读配置文件。

所述进一步的有益效果为:根据模型文件A的格式说明书编写读配置文件,更具针对性。

进一步的,所述步骤S2与步骤S3之间还包括:

从所述读配置文件中获取至少一个区域关键字,并设置每一个所述区域关键字的优先级别;

对于每一个优先级别的区域关键字,查找是否有对应的记录配置;

若有,获取对应的记录配置;若没有,获取对应的区域属性配置;

按照获取的所述记录配置和区域属性配置从统一数据模型中获取到具体的模型数据,执行步骤S3。

所述进一步的有益效果为:对从读配置文件中获取的区域关键字进行优先级的配置,使得最终根据各个区域关键字得到的记录配置之间具有连贯性。

进一步的,所述读配置文件和所述写配置文件均采用YAML格式。

进一步的,所述模型文件A的格式和所述模型文件B的格式均可为X3D格式、json格式、INP格式、BDF格式、FRD格式、F06格式或者VTK格式。

所述进一步的有益效果为:能适用于CAE文件处理过程中的各种不同格式的模型文件之间的转换,适用性广泛。

另一方面,本发明还提供了一种基于通用读写框架的CAE文件转换装置,用于在CAE数据处理过程中的各类模型文件之间的转换,包括读取模块、解析模块和映射转换模块;

所述读取模块,用于按行顺序读取模型文件A的文件内容;

所述解析模块,用于根据在通用读写框架中预先配置的读配置文件将所述模型文件A中的每一行文件内容按照所述模型文件A的格式解析映射到统一数据模型中;

所述映射转换模块,用于根据在通用读写框架中预先配置的写配置文件将统一数据模型按照模型文件B的格式映射为模型文件B。

本发明的有益效果为:引入了通用的读写框架和统一数据模型,通过在通用读写框架中编写读配置文件和写配置文件,并结合统一数据模型共同将CAE数据处理过程中产生的模型文件A转换为不同格式的模型文件B,实现了不同格式模型文件之间的相互转化。

在上述技术方案的基础上,本发明还可以作如下改进。

进一步的,所述读取模块用于按行顺序读取模型文件A具体包括:

按行顺序读取模型文件A,判断该行是否为注释行;

若否,识别该行的区域关键字,执行下一步;若是,舍弃该行,重新读取模型文件A的下一行;

若识别到区域关键字,获取区域属性配置;若未识别到区域关键字,则获取该行的记录配置,其中,区域属性配置或者记录配置中含有区域属性或者记录的格式配置项,该格式配置项根据预先编写的模型文件A的格式说明书得来;

通过所述格式配置项对获取的模型文件A的行内容进行格式的检查,若格式检查正确,则将该行映射到统一数据模型中;若格式检查错误,则舍弃该行,重新读取模型文件A的下一行。

所述进一步的有益效果为:将模型文件A中的注释行剔除,以及对获取的区域属性配置和记录配置进行格式检查,对于格式不正确的也进行剔除,保证了模型文件A中数据的正确性。

进一步的,根据所述预先编写的模型文件A的格式说明书来配置读配置文件。

所述进一步的有益效果为:根据模型文件A的格式说明书编写读配置文件,更具针对性。

进一步的,所述映射转换模块还用于:

从所述读配置文件中获取至少一个区域关键字,并设置每一个所述区域关键字的优先级别;

对于每一个优先级别的区域关键字,查找是否有对应的记录配置;

若有,获取对应的记录配置;若没有,获取对应的区域属性配置;

按照获取的所述记录配置和区域属性配置从统一数据模型中获取到具体的模型数据,将具体的模型数据映射到模型文件B中。

所述进一步的有益效果为:对从读配置文件中获取的区域关键字进行优先级的配置,使得最终根据各个区域关键字得到的记录配置之间具有连贯性。

附图说明

图1为本发明实施例1的一种基于通用读写框架的CAE文件转换方法流程图;

图2为CAE数据处理过程中产生的各种模型文件的转换过程图;

图3是实施例1中外部文件转换为内部文件的示意图;

图4为实施例1利用通用读写框架来实现不同模型文件之间的转换示意图;

图5为本发明实施例2的一种基于通用读写框架的CAE文件转换装置示意图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

实施例1、一种基于通用读写框架的CAE文件转换方法。

参见图1,本实施例提供的基于通用读写框架的CAE文件转换方法包括:

S1、按行顺序读取模型文件A的文件内容。

具体的,在CAE数据处理的过程中,会存在各种各样不同格式的模型文件,这些文件主要可以分为两类:外部文件和内部文件,其中,外部文件主要包括CAD文件、CAE网格文件以及求解器输入输出文件;内部文件主要包括X3D文件、VTK文件以及求解器参数设置文件,内部文件通常又可以分为两类:第一类为模型显示文件,包括X3D文件(是CAD文件和CAE网格文件的web显示文件)和VTK文件(后处理结果显示文件);第二类为求解器参数设置文件(在web页面上进行求解器设置后得到的json文件)。外部文件可以跟外界CAD/CAE软件进行交互,内部文件是在web平台使用,不可以直接与外界CAD/CAE软件交互。

本申请的整个过程核心就是进行文件转换,主要是外部文件和内部文件的转换,例如,图2中1、2、3和4标识的部分,在将外部文件转换为内部文件的过程中,本申请的核心即为引入中间数据模型,即统一数据模型,将将外部文件转换为统一数据模型,再将统一数据模型转换为内部文件,如图3所示,即完成外部文件向内部文件的转换。在某些场合下还涉及外部文件之间的相互转换,主要包括:不同类型的CAD文件之间的相互转换,不同类型的CAE网格文件之间的相互转换,不同求解器输入文件之间的相互转换,比如,各类CAD文件/CAE网格文件向X3D文件的转换,CAD文件/CAE网格文件中主要就是模型的几何信息,包括点、单元和单元组。支持的CAD模型格式主要有:.igs、.step和.stl;支持的CAE网格文件格式有:Calculix(.inp)、Code_Aster(.unv)、Openfoam(由point、faces以及boundary等文件集合组成)、NA.NASTRAN(.bdf)。这些不同格式的模型文件之间均是可以互相转换的。比如,本实施例希望将模型文件A转换为不同格式的模型文件B,首先利用通用读写框架下的Reader按行顺序读取模型文件A中的文件内容,可参见图4,为后续的描述的方便性,模型文件A的文件格式内容可参见如下:

*Node,NSET=N1

1,-2.20970058,9.02866745,-36.723629

2,-2.07132006,9.10467529,-36.4850159

3,-1.9632616,9.25493431,-36.2648697

其中,该模型文件A为INP文件样例,表示由三个点组成的集合(名称叫N1),*Node表示一个区域的开始,因此*Node为区域关键字,后面紧跟的NSET=N1是区域属性,以逗号分隔;区域属性下面是记录,也以逗号分隔,第一个元素是点的序列1,2,3,第二到第4个元素是点的三维坐标。

具体的按行顺序读取模型文件A中的文件内容的读取过程为:S11、按行顺序读取模型文件A,判断该行是否为注释行;S12、若否,识别该行的区域关键字,执行S13;若是,舍弃该注释行,返回S11,读取下一行内容;S13、若识别到区域关键字,获取区域属性配置,执行S14;若未识别到区域关键字(表明该行没有区域关键字,应该是记录行),则获取该行的记录配置,执行S14;S14、区域属性配置或者记录配置中含有区域属性或者记录的格式配置项,该格式配置项根据预先编写的模型文件A的格式说明书得来,可对获取的行内容进行格式的检查,若格式检查正确,则执行S2;若格式检查错误,舍弃该行,则返回S11,重新读取模型文件A的下一行。本实施例对无意义的注释行以及格式错误的区域属性配置和记录配置均舍弃,保证了提取的数据的正确性。

S2、根据在通用读写框架中预先配置的读配置文件将所述模型文件A中的每一行文件内容按照所述模型文件A的格式解析映射到统一数据模型中。

具体的,在本领域,将模型文件A映射为统一数据模型称为序列化Reader,与上述模型文件A对应的读配置文件可参见如下:

其中,区域关键字KEYWORD为‘*Node’:K_POINT,区域属性与区域关键字之间使用的分割符为逗号,各记录之间也为逗号,K_POINT的优先级别为0(最高级别),区域属性配置为“%s”(即字符串型)。其中,预先配置的读配置文件是依据预先编写的模型文件A的格式说明书,模型文件A的格式说明书描述了模型文件A的具体信息,比如,分隔符,区域属性和记录的格式等。通过读配置文件将所述模型文件A中的每一行文件内容按照所述模型文件A的格式解析映射到统一数据模型中的数据如下:

S3、根据在通用读写框架中预先配置的写配置文件将统一数据模型按照模型文件B的格式映射为模型文件B。

具体的,在本领域,将统一数据模型中的文件内容映射到模型文件B称为反序列化Writer,在将统一数据模型中的文件内容按照模型文件B的格式映射为模型文件B之前,利用通用读写框架下的Writer从所述读配置文件中获取至少一个区域关键字,比如,上述读配置文件中的K_POINT,即此时的区域关键字为表示点集合,也有可能为单元集合,单元由多个点组成,并获取每一个所述区域关键字的优先级别,比如,当同时有点和单元关键字时,由于单元是由各个点组成的,则点的优先级别高于单元的优先级别,这样可以先输出点,然后再由点组成单元。对于每一个优先级别的区域关键字,查找是否有对应的记录配置;若有,获取对应的记录配置;若没有,获取对应的区域属性配置。通常每一个优先级别的区域关键字一定是对应有区域属性配置的,通常也具有对应的记录配置,当时特殊情况下也可以没有对应的记录配置,即记录配置为空。因此,当区域关键字下面有对应的记录配置时,则获取该对应的记录配置,若没有对应的记录配置,则获取对应的区域属性配置。然后根据获取的所述记录配置和区域属性配置从统一数据模型中获取到具体的模型数据,采用在通用读写框架中预先配置的写配置文件将具体的模型数据按照模型文件B的格式映射为模型文件B。其中,写配置文件(即反序列化writer的配置文件)的一个具体例子如下:

比如,将上述格式为INP的模型文件A转换为X3D格式的模型文件B后,形成的X3D格式的模型文件的一个具体例子为:

<IndexedFaceSet DEF='N1'coordIndex='0 1 2'>

<Coordinate point='-2.20970058 9.02866745-36.723629,-2.07132006

9.10467529-36.4850159,-1.9632616 9.25493431-36.2648697'/>

</IndexedFaceSet>

其中,需要说明的是,本实施例在对比很多配置文件形式的基础上,采用YAML作为配置文件的格式,YAML格式具有如下优势:

(1)YAML和脚本语言的交互性好;

(2)YAML有一个一致的信息模型;

(3)YAML可以基于流来处理;

(4)YAML表达能力强,扩展性好。

模型文件A的格式和模型文件B的格式均可为X3D格式、json格式、INP格式、BDF格式、FRD格式、F06格式或者VTK格式,能够实现各种不同格式的CAE模型文件之间的转换,适用性广泛。比如,各类CAE前处理文件的相互转换,例如,Calculix的前处理模型是INP格式,NS_NASTRAN的前处理模型是BDF格式,通过通用读写框架下的INP_Reader,将INP文件转换为统一数据模型,然后通过通用读写框架下的BDF_Writer将统一数据模型转换为BDF文件,从而实现了INP到BDF的转换。又比如,各类CAE后处理文件的相互转换,例如,Calculix的后处理模型是FRD格式,NS_NASTRAN的后处理模型是F06格式,通过通用读写框架下的FRD_Reader,将RFD文件转换为统一数据模型,然后通过通用读写框架下的F06_Writer将统一数据模型转换为F06文件,从而实现了FRD到F06的转换。

实施例2、一种基于通用读写框架的CAE文件转换装置。

参见图5,本实施例提供的基于通用读写框架的CAE文件转换装置,用于在CAE数据处理过程中的各类模型文件之间的转换,包括读取模块21、解析模块22和映射转换模块23。

其中,所述读取模块21,主要用于按行顺序读取模型文件A的文件内容;

所述解析模块22,用于根据预先配置的读配置文件将所述模型文件A中的每一行文件内容按照所述模型文件A的格式解析映射到统一数据模型22中。

所述映射转换模块23,主要用于根据预先配置的写配置文件将统一数据模型22按照模型文件B的格式映射为模型文件B。

其中,所述读取模块21,用于按行顺序读取模型文件A的文件内容具体包括:

按行顺序读取模型文件A,判断该行是否为注释行;

若否,识别该行的区域关键字,执行下一步;若是,舍弃该行,重新读取模型文件A的下一行;

若识别到区域关键字,获取区域属性配置;若未识别到区域关键字,则获取该行的记录配置,其中,区域属性配置或者记录配置中含有区域属性或者记录的格式配置项,该格式配置项根据预先编写的模型文件A的格式说明书得来;

通过所述格式配置项对获取的模型文件A的行内容进行格式的检查,若格式检查正确,则将该行映射到统一数据模型中;若格式检查错误,则舍弃该行,重新读取模型文件A的下一行。

其中的读配置文件是根据预先编写的模型文件A的格式说明书来配置的。所述映射转换模块23还用于:

从所述读配置文件中获取至少一个区域关键字,并设置每一个所述区域关键字的优先级别;

对于每一个优先级别的区域关键字,查找是否有对应的记录配置;

若有,获取对应的记录配置;若没有,获取对应的区域属性配置;

按照获取的所述记录配置和区域属性配置从统一数据模型22中获取到具体的模型数据,将具体的模型数据映射到模型文件B中。

其中,所述模型文件A的格式和所述模型文件B的格式均可为X3D格式、json格式、INP格式、BDF格式、FRD格式、F06格式或者VTK格式,能适用于CAE文件处理过程中的各种不同格式的模型文件之间的转换,适用性广泛。

本发明提供的一种基于通用读写框架的CAE文件转换方法及装置,引入了通用的读写框架和统一数据模型,通过在通用读写框架中编写读配置文件和写配置文件,并通过统一数据模型共同将CAE数据处理过程中产生的模型文件A转换为不同格式的模型文件B,实现了不同格式模型文件之间的相互转化;在读取模型文件A的过程中,将模型文件A中的注释行剔除,以及对获取的区域属性配置和记录配置进行格式检查,对于格式不正确的也进行剔除,保证了模型文件A中数据的正确性;对从读配置文件中获取的区域关键字进行优先级的配置,使得最终根据各个区域关键字得到的记录配置之间具有连贯性;模型文件A和模型文件B可为多种不同格式的模型文件,能适用于CAE文件处理过程中的各种不同格式的模型文件之间的转换,适用性广泛。

在本说明书的描述中,参考术语“实施例一”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体方法、装置或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、方法、装置或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有3条留言
  • 134554... 来自[中国] 2023年02月10日 08:49
    1
    0
  • 134554... 来自[中国] 2023年02月10日 08:48
    FEMTransfer软件可以实现Patran/Nastran/Femap、Abaqus、Ansys/Workbench、Sesam(Genie/Patranpre)、盈建科/PKPM等仿真分析软件的有限元模型相互转换,保证了板单元、梁单元、实体单元、质量点单元、弹簧单元等各类单元的完美转换,最终实现了只需要建立一个模型就可以在多种CAE仿真分析软件中计算的目的,极大提高了工作效率
    0
  • 访客 来自[中国] 2023年02月10日 08:37
    FEMTransfer软件可以实现Patran/Nastran/Femap、Abaqus、Ansys/Workbench、Sesam(Genie/Patranpre)、盈建科/PKPM等仿真分析软件的有限元模型相互转换,保证了板单元、梁单元、实体单元、质量点单元、弹簧单元的完美转换,最终实现了只需要建立一个模型就可以在多种CAE仿真分析软件中计算的目的,极大提高了工作效率
    0
1