CN115203132B - 一种用于按需求快速提取op2文件架构的设计方法 - Google Patents

一种用于按需求快速提取op2文件架构的设计方法 Download PDF

Info

Publication number
CN115203132B
CN115203132B CN202211118191.2A CN202211118191A CN115203132B CN 115203132 B CN115203132 B CN 115203132B CN 202211118191 A CN202211118191 A CN 202211118191A CN 115203132 B CN115203132 B CN 115203132B
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.)
Active
Application number
CN202211118191.2A
Other languages
English (en)
Other versions
CN115203132A (zh
Inventor
王贤辉
易俊杰
洪清泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Boke Industrial Software Co ltd
Shanghai Boke Industrial Co ltd
Original Assignee
Shanghai Boke Industrial Software Co ltd
Shanghai Boke Industrial Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Boke Industrial Software Co ltd, Shanghai Boke Industrial Co ltd filed Critical Shanghai Boke Industrial Software Co ltd
Priority to CN202211118191.2A priority Critical patent/CN115203132B/zh
Publication of CN115203132A publication Critical patent/CN115203132A/zh
Application granted granted Critical
Publication of CN115203132B publication Critical patent/CN115203132B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details 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文件架构的设计方法。
背景技术
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、保存并生成文件。
CN202211118191.2A 2022-09-15 2022-09-15 一种用于按需求快速提取op2文件架构的设计方法 Active CN115203132B (zh)

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 CN115203132A (zh) 2022-10-18
CN115203132B true 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)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7500017B2 (en) * 2001-04-19 2009-03-03 Microsoft Corporation Method and system for providing an XML binary format
US7111286B2 (en) * 2002-12-18 2006-09-19 Ge Medical Systems Information Technologies, Inc. Method, system and computer product for parsing binary data
US20110179045A1 (en) * 2010-01-19 2011-07-21 Microsoft Corporation Template-Based Management and Organization of Events and Projects
CN103593518B (zh) * 2013-10-31 2016-06-01 中国运载火箭技术研究院 一种基于模态试验数据的飞行器模型修正系统
US10423597B2 (en) * 2016-03-27 2019-09-24 International Business Machines Corporation Data set visualizer for tree based file systems
CN111275199A (zh) * 2020-01-17 2020-06-12 深圳壹账通智能科技有限公司 一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质
CN114337920B (zh) * 2021-12-23 2024-03-26 中国农业银行股份有限公司 编码解析方法、装置及电子设备

Also Published As

Publication number Publication date
CN115203132A (zh) 2022-10-18

Similar Documents

Publication Publication Date Title
CN110908707B (zh) 一种资源打包方法、装置、服务器及存储介质
Van Gompel et al. Efficient n-gram, skipgram and flexgram modelling with Colibri Core
CN113312108A (zh) Swift报文的校验方法、装置、电子设备及存储介质
CN108021370B (zh) 字节码的优化方法、装置、存储介质、处理器及终端
CN112559088A (zh) 配置文件的优化方法、装置、服务器以及存储介质
US10839124B1 (en) Interactive compilation of software to a hardware language to satisfy formal verification constraints
CN111078279A (zh) 字节码文件的处理方法、装置、设备及存储介质
CN115203132B (zh) 一种用于按需求快速提取op2文件架构的设计方法
CN117033249A (zh) 一种测试用例生成方法、装置、计算机设备及存储介质
CN112416365A (zh) 文件转换方法、装置及存储介质
CN116933267A (zh) 一种符号执行的智能合约漏洞检测方法、系统和设备
CN108153530B (zh) 字节码的优化方法、装置、存储介质、处理器及终端
CN112861138A (zh) 软件安全性分析方法及分析装置、电子设备及存储介质
CN113721928B (zh) 一种基于二进制分析的动态库裁剪方法
CN112799697B (zh) 一种基于标准框架的配置文件版本迁移方法
CN112651214B (zh) 数据表格明文转换为便于程序可读取的二进制密文的方法
CN114490848A (zh) 文件解析处理方法、装置、存储介质以及电子设备
CN112596737A (zh) 一种函数调用关系的扫描方法、系统、设备及存储介质
CN111241096A (zh) 一种excel文档的文本提取方法、系统、终端及存储介质
CN117827286B (zh) Risc-v架构二进制转译文件复用方法、装置及存储介质
CN113656044B (zh) 安卓安装包压缩方法、装置、计算机设备及存储介质
CN114781294B (zh) 一种risc-v cpu验证中的签名比较方法及装置
CN112416362B (zh) 一种pdk编译功能的实现方法
CN116483376B (zh) C#代码自动生成方法、系统及存储介质
CN112287306B (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