CN115203132A - 一种用于按需求快速提取op2文件架构的设计方法 - Google Patents
一种用于按需求快速提取op2文件架构的设计方法 Download PDFInfo
- Publication number
- CN115203132A CN115203132A CN202211118191.2A CN202211118191A CN115203132A CN 115203132 A CN115203132 A CN 115203132A CN 202211118191 A CN202211118191 A CN 202211118191A CN 115203132 A CN115203132 A CN 115203132A
- Authority
- CN
- China
- Prior art keywords
- data
- class
- unit
- op2file
- analysis
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用于按需求快速提取OP2文件架构的设计方法,包括OP2File文件读写管理类、OEF单元载荷数据解析器、OP2Reader文件读取类、BlockHandler单元数据解析基类、UnpackerBase及其派生类以及ForcePackFactory及PackerBase类。本发明主要是基于对单元载荷数据提取的需求,设计了一套基于块迭代器架构的数据提取方法,解决了OP2格式文件中涉及的数据信息类型众多,数据结构组织也比较复杂,常见的开源库由于需要对文件的全面解析,代码组织结构复杂,调用复杂,不便于特定场景的使用的问题,本发明大大提高了文件处理的效率。
Description
技术领域
本发明涉及计算机仿真技术领域,具体为一种用于按需求快速提取OP2文件架构的设计方法。
背景技术
OP2文件是一种二进制形式记录的结构文件,相对于F06/PCH文件具有体积小,数据提取速度快的优势。其数据组织结构清晰,有助于显示模型重要区域的性能,如网格点应力及包含模态振型、静态位移和网格点应力分析结果等。
OP2格式文件中涉及的数据信息类型众多,数据结构组织也比较复杂,常见的开源库由于需要对文件的全面解析,代码组织结构复杂,调用复杂,不便于特定场景的使用。
发明内容
本发明的目的在于提供一种用于按需求快速提取OP2文件架构的设计方法,以解决上述背景技术中提出OP2格式文件中涉及的数据信息类型众多,数据结构组织也比较复杂,常见的开源库由于需要对文件的全面解析,代码组织结构复杂,调用复杂,不便于特定场景的使用的问题。
为实现上述目的,本发明提供如下技术方案:一种用于按需求快速提取OP2文件架构的设计方法,包括OP2File文件读写管理类、OEF单元载荷数据解析器、OP2Reader文件读取类、BlockHandler单元数据解析基类、UnpackerBase及其派生类以及ForcePackFactory及PackerBase类,其中,
OP2File文件读写管理类:读取数据类型检查,数据解析器初始化及单元载荷读取,op2文件单元载荷写入;
OEF单元载荷数据解析器:通过文件读取类读取op2文件数据,以迭代器的方式读取工况下的单元数据;
OP2Reader文件读取类:读取表、块结构内容及各种类型(整形/字符串/标记/缓存区)数据的读取;
BlockHandler单元数据解析基类:解析读取出的表相关数据,如工况/单元类型/表编号等等;
UnpackerBase及其派生类:根据BlockHandler单元数据解析基类表中读取出来的相关信息,创建相关的单元载荷数据解析,对读取出来的数据块进行结果解析;
ForcePackFactory及PackerBase类:单元结果数据封装及封装管理;
该方法还包括以下步骤:
S1、OP2File文件读写管理类对文件进行类型及要提取/保存结果的数据类型进行验证;
S2、步骤S1验证成功,则OEF单元载荷数据解析器通过文件读取类读取op2文件数据,以迭代器的方式读取工况下的单元数据,对于读取模式则根据数据类型,动态创建数据解析处理器,转入数据提取流程;
S3、步骤S1验证不成功,则数据写出模式:动态创建数据封装处理器,并转入数据封装流程,待封装完毕后,把返回的数据写入到二进制文件中。
优选的,所述单元载荷数据解析包括ForceROD单元载荷解析类、ForceBAR单元载荷解析类、ForceTRIA3单元载荷解析类以及ForceRUAD4单元载荷解析类。
优选的,所述ForcePackFactory及PackerBase类数据封装成块包括ForceRodPack数据封装类、ForceBARPack数据封装类、ForceTRIA3Pack数据封装类以及ForceRUAD4Pack数据封装类。
优选的,所述数据解析处理器的解析具体包括如下步骤:
S101、创建op2文件格式解析辅助算法类,实现块、标记、表、数据区块的格式解析;
S102、实例化单元荷载解析工程并载入各种数据解析器算法类;
S103、识别文件中的表,定位工况及单元类型所在表的起始位置;
S104、进入按块读取循环迭代模式,读入块数据并解析;
S105、分析块信息对应的单元载荷类型,包括CROD单元结果数据解析算法类、CQUAD4单元结果数据解析算法类、CBAR单元结果数据解析算法类、CTRIA3单元结果数据解析算法类以及其它单元结果数据解析算法类,同时创立上述单元的内力数据缓冲对象;
S106、按工况解析快数据并存入缓存;
S107、由生成器返回已读取完毕的最新单元数据。
优选的,所述数据封装流程具体包括以下步骤:
S201、创建二进制文件并写入单元类型、工况等信息到对应表中,同时写入标记信息;
S202、实例化单元内力荷载打包管理类;
S203、区分不同单元创建数据打包类:包括CROD内力包装类创建、CQUAD4内力包装类创建、CBAR内力包装类创建、CTRIA3内力包装类创建以及其它内力包装类创建;
S204、对步骤S203中的数据极坐标化;
S205、将单元号转化、二进制格式确定;
S206、数据打包成二进制;
S207、判断是否所有单元处理完毕,不是则返回步骤S203;
S208、保存并生成文件。
与现有技术相比,本发明的有益效果是:
本发明主要是基于对单元载荷数据提取的需求,设计了一套基于块迭代器架构的数据提取方法,解决了OP2格式文件中涉及的数据信息类型众多,数据结构组织也比较复杂,常见的开源库由于需要对文件的全面解析,代码组织结构复杂,调用复杂,不便于特定场景的使用的问题,本发明大大提高了文件处理的效率。
附图说明
图1为本发明方法的流程图;
图2为本发明数据解析处理器的流程图;
图3为本发明数据封装的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1-3所示,本发明实施例公开了一种用于按需求快速提取OP2文件架构的设计方法;对该过程中的每一步,解释说明如下:
1、文件管理类:
该类作为程序使用入口,首先对文件进行类型及要提取/保存结果的数据类型进行验证。如果验证成功,对于读取模式则根据数据类型,动态创建数据解析处理器,转入数据提取流程;对于写出模式,则动态创建数据封装处理器,并转入数据封装流程,待封装完毕后,把返回的数据写入到二进制文件中。
2、数据解析处理器:
首先读取文件中的载荷相关表信息块,对块进行解析获取工况及单元类型。根据获取的单元类型动态创建相应的类型解析器,进入数据读取解析迭代器进行数据提取,以单元为数据单位,提取完毕即提交给外部应用使用,从而避免单元量大时数据长时间等待的问题。
3、数据封装:
采用工厂模式,动态根据传入的单元数据创建对应的单元封装类,把内存数据从新打包成二进制数据块,提交给文件管理类进行二进制文件保存。
方法具体如下:
OP2File文件读写管理类:读取数据类型检查,数据解析器初始化及单元载荷读取,op2文件单元载荷写入;
OEF单元载荷数据解析器:通过文件读取类读取op2文件数据,以迭代器的方式读取工况下的单元数据;
OP2Reader文件读取类:读取表、块结构内容及各种类型(整形/字符串/标记/缓存区)数据的读取;
BlockHandler单元数据解析基类:解析读取出的表相关数据,如工况/单元类型/表编号等等;
UnpackerBase及其派生类:根据BlockHandler单元数据解析基类表中读取出来的相关信息,创建相关的单元载荷数据解析,对读取出来的数据块进行结果解析;
ForcePackFactory及PackerBase类:单元结果数据封装及封装管理;
该方法还包括以下步骤:
S1、OP2File文件读写管理类对文件进行类型及要提取/保存结果的数据类型进行验证;
S2、步骤S1验证成功,则OEF单元载荷数据解析器通过文件读取类读取op2文件数据,以迭代器的方式读取工况下的单元数据,对于读取模式则根据数据类型,动态创建数据解析处理器,转入数据提取流程;
S3、步骤S1验证不成功,则数据写出模式:动态创建数据封装处理器,并转入数据封装流程,待封装完毕后,把返回的数据写入到二进制文件中。
优选的,所述单元载荷数据解析包括ForceROD单元载荷解析类、ForceBAR单元载荷解析类、ForceTRIA3单元载荷解析类以及ForceRUAD4单元载荷解析类。
优选的,所述ForcePackFactory及PackerBase类数据封装成块包括ForceRodPack数据封装类、ForceBARPack数据封装类、ForceTRIA3Pack数据封装类以及ForceRUAD4Pack数据封装类。
优选的,所述数据解析处理器的解析具体包括如下步骤:
S101、创建op2文件格式解析辅助算法类,实现块、标记、表、数据区块的格式解析;
S102、实例化单元荷载解析工程并载入各种数据解析器算法类;
S103、识别文件中的表,定位工况及单元类型所在表的起始位置;
S104、进入按块读取循环迭代模式,读入块数据并解析;
S105、分析块信息对应的单元载荷类型,包括CROD单元结果数据解析算法类、CQUAD4单元结果数据解析算法类、CBAR单元结果数据解析算法类、CTRIA3单元结果数据解析算法类以及其它单元结果数据解析算法类,同时创立上述单元的内力数据缓冲对象;
S106、按工况解析快数据并存入缓存;
S107、由生成器返回已读取完毕的最新单元数据。
优选的,所述数据封装流程具体包括以下步骤:
S201、创建二进制文件并写入单元类型、工况等信息到对应表中,同时写入标记信息;
S202、实例化单元内力荷载打包管理类;
S203、区分不同单元创建数据打包类:包括CROD内力包装类创建、CQUAD4内力包装类创建、CBAR内力包装类创建、CTRIA3内力包装类创建以及其它内力包装类创建;
S204、对步骤S203中的数据极坐标化;
S205、将单元号转化、二进制格式确定;
S206、数据打包成二进制;
S207、判断是否所有单元处理完毕,不是则返回步骤S203;
S208、保存并生成文件。
综上所述:本发明主要是基于对单元载荷数据提取的需求,设计了一套基于块迭代器架构的数据提取方法,解决了OP2格式文件中涉及的数据信息类型众多,数据结构组织也比较复杂,常见的开源库由于需要对文件的全面解析,代码组织结构复杂,调用复杂,不便于特定场景的使用的问题,本发明大大提高了文件处理的效率。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (5)
1.一种用于按需求快速提取OP2文件架构的设计方法,包括OP2File文件读写管理类、OEF单元载荷数据解析器、OP2Reader文件读取类、BlockHandler单元数据解析基类、UnpackerBase及其派生类以及ForcePackFactory及PackerBase类,其特征在于:其中,
OP2File文件读写管理类:读取数据类型检查,数据解析器初始化及单元载荷读取,op2文件单元载荷写入;
OEF单元载荷数据解析器:通过文件读取类读取op2文件数据,以迭代器的方式读取工况下的单元数据;
OP2Reader文件读取类:读取表、块结构内容及各种类型(整形/字符串/标记/缓存区)数据的读取;
BlockHandler单元数据解析基类:解析读取出的表相关数据,如工况/单元类型/表编号等等;
UnpackerBase及其派生类:根据BlockHandler单元数据解析基类表中读取出来的相关信息,创建相关的单元载荷数据解析,对读取出来的数据块进行结果解析;
ForcePackFactory及PackerBase类:单元结果数据封装及封装管理;
该方法还包括以下步骤:
S1、OP2File文件读写管理类对文件进行类型及要提取/保存结果的数据类型进行验证;
S2、步骤S1验证成功,则OEF单元载荷数据解析器通过文件读取类读取op2文件数据,以迭代器的方式读取工况下的单元数据,对于读取模式则根据数据类型,动态创建数据解析处理器,转入数据提取流程;
S3、步骤S1验证不成功,则数据写出模式:动态创建数据封装处理器,并转入数据封装流程,待封装完毕后,把返回的数据写入到二进制文件中。
2.根据权利要求1所述的一种用于按需求快速提取OP2文件架构的设计方法,其特征在于:所述单元载荷数据解析包括ForceROD单元载荷解析类、ForceBAR单元载荷解析类、ForceTRIA3单元载荷解析类以及ForceRUAD4单元载荷解析类。
3.根据权利要求1所述的一种用于按需求快速提取OP2文件架构的设计方法,其特征在于:所述ForcePackFactory及PackerBase类数据封装成块包括ForceRodPack数据封装类、ForceBARPack数据封装类、ForceTRIA3Pack数据封装类以及ForceRUAD4Pack数据封装类。
4.根据权利要求1所述的一种用于按需求快速提取OP2文件架构的设计方法,其特征在于:所述数据解析处理器的解析具体包括如下步骤:
S101、创建op2文件格式解析辅助算法类,实现块、标记、表、数据区块的格式解析;
S102、实例化单元荷载解析工程并载入各种数据解析器算法类;
S103、识别文件中的表,定位工况及单元类型所在表的起始位置;
S104、进入按块读取循环迭代模式,读入块数据并解析;
S105、分析块信息对应的单元载荷类型,包括CROD单元结果数据解析算法类、CQUAD4单元结果数据解析算法类、CBAR单元结果数据解析算法类、CTRIA3单元结果数据解析算法类以及其它单元结果数据解析算法类,同时创立上述单元的内力数据缓冲对象;
S106、按工况解析快数据并存入缓存;
S107、由生成器返回已读取完毕的最新单元数据。
5.根据权利要求1所述的一种用于按需求快速提取OP2文件架构的设计方法,其特征在于:所述数据封装流程具体包括以下步骤:
S201、创建二进制文件并写入单元类型、工况等信息到对应表中,同时写入标记信息;
S202、实例化单元内力荷载打包管理类;
S203、区分不同单元创建数据打包类:包括CROD内力包装类创建、CQUAD4内力包装类创建、CBAR内力包装类创建、CTRIA3内力包装类创建以及其它内力包装类创建;
S204、对步骤S203中的数据极坐标化;
S205、将单元号转化、二进制格式确定;
S206、数据打包成二进制;
S207、判断是否所有单元处理完毕,不是则返回步骤S203;
S208、保存并生成文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211118191.2A CN115203132B (zh) | 2022-09-15 | 2022-09-15 | 一种用于按需求快速提取op2文件架构的设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211118191.2A CN115203132B (zh) | 2022-09-15 | 2022-09-15 | 一种用于按需求快速提取op2文件架构的设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115203132A true CN115203132A (zh) | 2022-10-18 |
CN115203132B CN115203132B (zh) | 2022-12-06 |
Family
ID=83572127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211118191.2A Active CN115203132B (zh) | 2022-09-15 | 2022-09-15 | 一种用于按需求快速提取op2文件架构的设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115203132B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046317A1 (en) * | 2001-04-19 | 2003-03-06 | Istvan Cseri | Method and system for providing an XML binary format |
CN1509007A (zh) * | 2002-12-18 | 2004-06-30 | GEҽ��ϵͳ��Ϣ������˾ | 用于解析二进制数据的方法、系统及计算机产品 |
US20110179045A1 (en) * | 2010-01-19 | 2011-07-21 | Microsoft Corporation | Template-Based Management and Organization of Events and Projects |
CN103593518A (zh) * | 2013-10-31 | 2014-02-19 | 中国运载火箭技术研究院 | 一种基于模态试验数据的飞行器模型修正系统 |
US20170277416A1 (en) * | 2016-03-27 | 2017-09-28 | International Business Machines Corporation | Data set visualizer for tree based file systems |
CN111275199A (zh) * | 2020-01-17 | 2020-06-12 | 深圳壹账通智能科技有限公司 | 一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质 |
CN114337920A (zh) * | 2021-12-23 | 2022-04-12 | 中国农业银行股份有限公司 | 编码解析方法、装置及电子设备 |
-
2022
- 2022-09-15 CN CN202211118191.2A patent/CN115203132B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046317A1 (en) * | 2001-04-19 | 2003-03-06 | Istvan Cseri | Method and system for providing an XML binary format |
CN1509007A (zh) * | 2002-12-18 | 2004-06-30 | GEҽ��ϵͳ��Ϣ������˾ | 用于解析二进制数据的方法、系统及计算机产品 |
US20110179045A1 (en) * | 2010-01-19 | 2011-07-21 | Microsoft Corporation | Template-Based Management and Organization of Events and Projects |
CN103593518A (zh) * | 2013-10-31 | 2014-02-19 | 中国运载火箭技术研究院 | 一种基于模态试验数据的飞行器模型修正系统 |
US20170277416A1 (en) * | 2016-03-27 | 2017-09-28 | International Business Machines Corporation | Data set visualizer for tree based file systems |
CN111275199A (zh) * | 2020-01-17 | 2020-06-12 | 深圳壹账通智能科技有限公司 | 一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质 |
CN114337920A (zh) * | 2021-12-23 | 2022-04-12 | 中国农业银行股份有限公司 | 编码解析方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
郝燕利: "机械产品仿真数据提取技术研究", 《机械科学与技术》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115203132B (zh) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112015430B (zh) | JavaScript代码翻译方法、装置、计算机设备及存储介质 | |
CN110941552B (zh) | 一种基于动态污点分析的内存分析方法及装置 | |
CN113127478B (zh) | 数据内生血缘关系的分析方法、装置和计算机设备 | |
Van Gompel et al. | Efficient n-gram, skipgram and flexgram modelling with Colibri Core | |
CN112765270B (zh) | 区块链数据处理方法、装置、计算机设备及介质 | |
CN113312108A (zh) | Swift报文的校验方法、装置、电子设备及存储介质 | |
CN117033249A (zh) | 一种测试用例生成方法、装置、计算机设备及存储介质 | |
CN111078279A (zh) | 字节码文件的处理方法、装置、设备及存储介质 | |
CN113721928B (zh) | 一种基于二进制分析的动态库裁剪方法 | |
CN115203132B (zh) | 一种用于按需求快速提取op2文件架构的设计方法 | |
CN117827286B (zh) | Risc-v架构二进制转译文件复用方法、装置及存储介质 | |
CN112559088B (zh) | 配置文件的优化方法、装置、服务器以及存储介质 | |
CN108153530B (zh) | 字节码的优化方法、装置、存储介质、处理器及终端 | |
CN111626585B (zh) | 脚本数据提取方法、装置、计算机设备和存储介质 | |
CN117193781B (zh) | 一种面向simscript语言的抽象语法树构建方法和装置 | |
CN111241096A (zh) | 一种excel文档的文本提取方法、系统、终端及存储介质 | |
CN113656044B (zh) | 安卓安装包压缩方法、装置、计算机设备及存储介质 | |
CN112651214B (zh) | 数据表格明文转换为便于程序可读取的二进制密文的方法 | |
CN114491528A (zh) | 恶意软件的检测方法、装置和设备 | |
CN112596737A (zh) | 一种函数调用关系的扫描方法、系统、设备及存储介质 | |
CN112905231B (zh) | 一种业务系统重构方法、系统及相关装置 | |
CN117472910B (zh) | 一种同态压缩数据处理方法和系统 | |
CN116483376B (zh) | C#代码自动生成方法、系统及存储介质 | |
CN1428721A (zh) | 基于语义的机器翻译系统及方法 | |
CN119474160A (zh) | 数据解析方法、装置、计算机设备及存储介质 |
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 |