CN108572925A - 一种step文件等效的二进制数据存储方法 - Google Patents
一种step文件等效的二进制数据存储方法 Download PDFInfo
- Publication number
- CN108572925A CN108572925A CN201810162173.1A CN201810162173A CN108572925A CN 108572925 A CN108572925 A CN 108572925A CN 201810162173 A CN201810162173 A CN 201810162173A CN 108572925 A CN108572925 A CN 108572925A
- Authority
- CN
- China
- Prior art keywords
- entity
- array
- parameter
- address
- storage method
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种STEP文件等效的二进制数据存储方法。一个实体由32位有符号数组表示,数组的第一个数包含有实体类型和数组长度的信息,参考ISO 14649标准,每一种实体的数组格式是固定的,即可以根据实体类型明确后面的数据的类型和含义;字符串和数组长度可变参数在参数位置只保存大小和存储地址偏移量,实际的数组和字符串被放置在实体参数后面,预留附加空参数存储空间,便于扩展和修改属性;实体数组起始位置为实体的地址;这个实体数组的末尾之后的第一个数据为下一实体的开头。应用本发明实施例,提高STEP文件的执行效率。
Description
技术领域
本发明涉及文件转化技术领域,尤其涉及一种STEP文件转化为二进制数据结构的方法。
背景技术
STEP-NC是一个面向对象的新型NC编程数据接口国际标准ISO 14649。随着数控技术的迅猛发展,NC加工中所采用的编程方式还是基于19世纪60年代所开发的ISO6983(G/M代码)标准,这种代码仅仅包括一些简单的运动指令(如G01、G02)和辅助指令(如M03、M08),而不包含零件几何形状、刀具路径生成、刀具选择等信息,使得CNC与CAD/CAM通道之间形成瓶颈。数控加工中编程困难、设计与加工等信息不能完全共享的问题限制了数控系统的进一步发展,使其面临新的变革。
为了解决这些问题,欧共体于1997年提出了OPTIMAL计划,将 STEP(Standard forthe Exchange of Product model date,ISO 10303)标准延伸到自动化制造的底层设备,开发了一种STEP-NC的数据模型,作为铣削加工编程的数据接口。该接口遵从STEP标准,具有面向对象的特征。STEP-NC将产品模型数据转换标准STEP扩展到CNC领域,重新制订了CAD/CAM与CNC之间的接口,它要求CNC系统直接使用符合STEP标准的CAD三维数据模型(包括工件几何数据、参数配置和制造特征)、工艺信息和刀具信息直接产生加工程序。
然而STEP文件,基于EXPRESS语言,是一种文本格式的文件,便于人的阅读修改。但数控系统执行解析STEP文件时,必须根据 EXPRESS语言和STEP规范将文件包含的元素解析成对象体,造成执行效率低下的问题。国内文献“基于XML的STEP—NC程序解释器的设计与实现”将文件解析成xml数据库格式。但是这种方案,造成了复杂性,而且依然没有摆脱文本数据格式,执行效率一样低下。
发明内容
针对现有技术的问题,本发明提供了一种STEP文件转化为二进制数据结构的方法,旨在提高存储文件的执行效率。
为解决上述问题,本发明提供的技术方案为:
所述存储方法遵循以下规范:1)一个实体由数组表示,数组的第一个数包含有实体类型和数组长度的信息,随后为参数段与数组段,参考ISO 14649标准,根据实体类型明确后面的数据的类型和含义;2) 字符串和数组长度可变参数在参数位置只保存大小和存储地址偏移量,实际的数组和字符串被放置在实体参数段后面;3)实体数组起始位置为实体的地址;4)这个实体数组的末尾之后的第一个数据为下一实体的开头;
所述数据存储方法包括步骤:
1)解析出实体,将实体存储于数组中,参数访问地址待定;
2)在解析实体的时候,将参数访问地址存储于地址列表之中;
3)根据参数访问地址列表,填充实体数组中待定的参数访问地址。
优选的,预留扩展参数存储空间,便于扩展和修改实体属性;
应用本发明实施例,获取到二进制文件以后,有利于计算机进行执行二进制文件,因此,可以提高STEP文件的执行效率。
附图说明
图1为本发明:以实体笛卡尔坐标点为例, #73=CARTESIAN_POINT (”,(-8.8960606956346,5.24775006834384,56.552652692042));其存储格式的附图;
图2为本发明:
另外一个例子STEP文本为: #38=ADVANCED_FACE('Demo',(#46,#47,#48,#49),#42,.T.);其存储格式的附图。
具体实施方式
为进一步了解本发明的内容,结合附图及实施例对本发明作详细描述。
本发明的数据存储方法包括步骤:
1)解析出实体,将实体存储于数组中,参数访问地址待定;
2)在解析实体的时候,将参数访问地址存储于地址列表之中;
3)根据参数访问地址列表,填充实体数组中待定的参数访问地址。
本发明所述存储方法遵循以下规范:
1)一个实体由数组表示,数组的第一个数包含有实体类型和数组长度的信息,参考ISO 14649标准,根据实体类型明确后面的数据的类型和含义;
2)字符串和数组长度可变参数在参数位置只保存大小和存储地址偏移量,实际的数组和字符串被放置在实体参数段后面,预留附加空参数存储空间,便于扩展和修改属性;
3)实体数组起始位置为实体的地址;
4)这个实体数组的末尾之后的第一个数据为下一实体的开头;
实体在STEP文件的中的特征是“#id=”,根据这个特征可解析出实体。实体按先后顺序存储于数组中,所述数组在本实施例中为32 位无符号数数组。
本发明的一种实施例中,以实体笛卡尔坐标点为例, #73=CARTESIAN_POINT (”,(-8.8960606956346,5.24775006834384,56.552652692042));其存储格式说明书附图1所示。
根据STEP文件遵循的规范,CARTESIAN_POINT的格式为指令 -字符串-长度为3的浮点数组。若存储#73实体数组的起始位置为100,则#73的地址为100,其它实体访问它的时候,直接使用地址100。将参数#73访问地址100存储于一个地址列表之中,格式为{73,100}。实体末尾的下一个数即#74的起始位置。存储的数组为32位无符号数,即4字节。在这个实施例中,CARTESIAN_POINT的代码为86,放在第一字节,长度两字节为00 06,放在第3-4字节。这时,地址100 的数据为(16进制)00 06 00 86。浮点数的存储方法是,取要写入的位置的地址指针,将此指针强制转换为浮点数指针,然后写入用此指针写入浮点数。读取时,用指针转化的方法读取浮点数。
对于实体的数组或者字符串参数,在存储参数的位置,我们存储数组或者字符串参数在实体数组中的偏移位置,而实际的参数放置在实体参数段之后。此实例中100位置存储实体头,101-102存储参数, 103-105存储数组数据。如此实例中第一参数偏移为2,而长度为0,因此数组101的值为(16进制)00 00 00 02{长度,偏移}。对于第二参数数组,偏移为1,因此102的值为(16进制)00 03 00 01。
另外一个例子STEP文本为: #38=ADVANCED_FACE('Demo',(#46,#47,#48,#49),#42,.T.);其存储格式,如说明书附图2。
根据STEP文件遵循的规范,ADVANCED_FACE的格式为指令- 字符串-实体FACE_BOUND组-曲面实体-拓扑属性TRUE/FALSE。若存储#73实体数组的起始位置为100,则#73的地址为100,其它实体访问它的时候,直接使用地址100。此时将参数#73访问地址100存储于一个实体地址列表之中,格式为{73,100}。实体末尾的下一个数即#74的起始位置。存储的数组为32位无符号数,即4字节。在一个实施例中,ADVANCED_FACE的代码为80,放在第一字节,长度两字节为00 0A,这时,地址100的数据为(16进制)00 0A 00 80。
对于实体的字符串参数,我们只存储字符串在实体数组中的偏移位置,如此实例中为4,而长度为1(因为一个单元可以存储4个字符),因此101的值为(16进制)00 01 0004。对于实体组,我们采取类似的方法,因此102的值为(16进制)00 04 00 03。103存储的是实体 #42的地址。104存储值为1。105存储字符串“Demo”,106存储实体#46的地址,107-110存储#46,#47,#48,#49地址,此时#46,#47, #48,#49的地址待定,此时将待定填充信息存入待定参数列表。存储格式为{107,46}{108,47}{109,48}{110,49}。等所有实体解析结束之后,查找实体地址列表,如#46的地址为42,则在数组107位置存储42。
可以自定义预留的参数,用于设定实体属性,便于运用程序操作实体。此预留空参数为数组类型。可以更加需要添加一个或者多个这样的空参数。一种实施例是在每一个实体中添加一个自定义参数,放在参数段的最后位置,便于实体的操作属性。
根据实例,我们看到了,这种二进制数据存储方式,便于计算机的执行。例如执行到图2所示的ADVANCED_FACE实体时,要访问 #46,可以直接读取到#46的地址。执行完一个实体进入下一个实体时,可根据当前实体的首数据,确定下一实体的位置。因此,可以估计出这种存储方式比文本的高出10倍以上的访问速度。此外,这种存储方式与文本的存储方式是等效的,因此可靠性高。
作为此数据结构的一种扩展运用,一个实施例是扩展空参数和预留存储空间。以图2示意的实体为例,可以在104位置之后放入一个空参数,这个参数不是ADVANCED_FACE必须的,是使用者为了给ADVANCED_FACE增加自定义属性预留的存储空间。这个空间可以为单参数,直接存储在105位置,原来105之后的数据往下移动一个地址,相应的偏移地址也要加1。预留空间可以为数组。在105位置存储数组偏移地址和数据类型与大小信息。
Claims (2)
1.一种STEP文件等效的二进制数据存储方法,其特征在于,所述存储方法遵循以下规范:1)实体由数组表示,数组的第一个数包含有实体类型和数组长度的信息,随后为参数段与数组段,参考ISO 14649标准,根据实体类型明确后面的数据的类型和含义;2)字符串和数组长度可变的参数在参数位置只保存参数大小和存储地址偏移量,实际的数组和字符串被放置在参数段后面;3)实体数组起始位置为实体的地址;所述数据存储方法包括步骤:
1)解析出实体,将实体存储于数组中,参数访问地址待定;
2)在解析实体的时候,将参数访问地址存储于地址列表之中;
3)根据参数访问地址列表,填充实体数组中待定的参数访问地址。
2.根据权利要求1所述的存储方法,其特征在于,预留扩展参数存储空间,便于扩展和修改实体属性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810162173.1A CN108572925B (zh) | 2018-02-26 | 2018-02-26 | 一种step文件等效的二进制数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810162173.1A CN108572925B (zh) | 2018-02-26 | 2018-02-26 | 一种step文件等效的二进制数据存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108572925A true CN108572925A (zh) | 2018-09-25 |
CN108572925B CN108572925B (zh) | 2022-04-12 |
Family
ID=63576722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810162173.1A Active CN108572925B (zh) | 2018-02-26 | 2018-02-26 | 一种step文件等效的二进制数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108572925B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113031865A (zh) * | 2021-03-23 | 2021-06-25 | 北京和利时系统工程有限公司 | 一种实现数据存储的方法、装置、计算机存储介质及终端 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020035583A1 (en) * | 2000-09-15 | 2002-03-21 | Price David K. | Real-time single entry multiple carrier interface (SEMCI) |
CN101059803A (zh) * | 2006-04-18 | 2007-10-24 | 中兴通讯股份有限公司 | 基于配置的文件分拣方法及自适应文件分拣系统 |
CN103544260A (zh) * | 2013-10-16 | 2014-01-29 | 银江股份有限公司 | 一种大型xml文档转换方法 |
CN104794133A (zh) * | 2014-01-21 | 2015-07-22 | 兰州大学 | 基于step文件的从cad模型到mcnp几何模型的转换算法 |
CN105677803A (zh) * | 2015-12-31 | 2016-06-15 | 清华大学 | 水文时序数据的json格式设定方法 |
US20160328775A1 (en) * | 2015-05-04 | 2016-11-10 | Sap Se | Enhanced information delivery facility |
CN107066551A (zh) * | 2017-03-23 | 2017-08-18 | 中国科学院计算技术研究所 | 一种树状数据的行式和列式存储方法及系统 |
CN107678401A (zh) * | 2017-08-23 | 2018-02-09 | 沈阳机床股份有限公司 | 一种基于三维模型的结构件大型模具快速编程方法 |
-
2018
- 2018-02-26 CN CN201810162173.1A patent/CN108572925B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020035583A1 (en) * | 2000-09-15 | 2002-03-21 | Price David K. | Real-time single entry multiple carrier interface (SEMCI) |
CN101059803A (zh) * | 2006-04-18 | 2007-10-24 | 中兴通讯股份有限公司 | 基于配置的文件分拣方法及自适应文件分拣系统 |
CN103544260A (zh) * | 2013-10-16 | 2014-01-29 | 银江股份有限公司 | 一种大型xml文档转换方法 |
CN104794133A (zh) * | 2014-01-21 | 2015-07-22 | 兰州大学 | 基于step文件的从cad模型到mcnp几何模型的转换算法 |
US20160328775A1 (en) * | 2015-05-04 | 2016-11-10 | Sap Se | Enhanced information delivery facility |
CN105677803A (zh) * | 2015-12-31 | 2016-06-15 | 清华大学 | 水文时序数据的json格式设定方法 |
CN107066551A (zh) * | 2017-03-23 | 2017-08-18 | 中国科学院计算技术研究所 | 一种树状数据的行式和列式存储方法及系统 |
CN107678401A (zh) * | 2017-08-23 | 2018-02-09 | 沈阳机床股份有限公司 | 一种基于三维模型的结构件大型模具快速编程方法 |
Non-Patent Citations (2)
Title |
---|
YUSRI YUSOF 等: "New technique for the interpretation of ISO 14649", 《INTERNATIONAL JOURNAL OF COMPUTER INTEGRATED MANUFACTURING》 * |
朱萍: "基于STEP-NC的解释器模型研究", 《中国优秀硕士论文电子期刊网 工程科技I辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113031865A (zh) * | 2021-03-23 | 2021-06-25 | 北京和利时系统工程有限公司 | 一种实现数据存储的方法、装置、计算机存储介质及终端 |
CN113031865B (zh) * | 2021-03-23 | 2023-12-22 | 北京和利时系统集成有限公司 | 一种实现数据存储的方法、装置、计算机存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN108572925B (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5119465A (en) | System for selectively converting plurality of source data structures through corresponding source intermediate structures, and target intermediate structures into selected target structure | |
US6950984B2 (en) | Method, system for, and program product for generating a display rule for a structured document, and for changing a structured document and its document type definition | |
US6249908B1 (en) | System and method for representing graphical font data and for converting the font data to font instructions | |
US20020052893A1 (en) | Method and system for importing and exporting table data | |
CN108279885B (zh) | 一种对多个模型代码进行软件集成的方法及装置 | |
IL99056A (en) | Reduced processor with associative active storage | |
KR920002668B1 (ko) | 문서정형장치 | |
CN106874244A (zh) | 一种基于工作序列的文档自动生成模型的构建方法 | |
CN113918512A (zh) | 电网运行规则知识图谱构建系统及方法 | |
CN108334622A (zh) | 一种获取格式化复合数据的方法 | |
US5822592A (en) | Method and system for determining source code location | |
CN101944080A (zh) | 一种基于dxf文件格式的读取与xml转换的方法 | |
CN108572925A (zh) | 一种step文件等效的二进制数据存储方法 | |
CN102419731A (zh) | C语言嵌入式软件插桩及动态测试覆盖率信息提取方法 | |
Engelfriet et al. | Stack machines and classes of nonnested macro languages | |
CN112631585B (zh) | 基于xml的快速参数界面配置方法 | |
CN100414514C (zh) | 用于存储器访问指令向量化的方法和设备 | |
CN105843661B (zh) | 一种面向主机系统的代码重定位方法及其系统 | |
CA2609882C (en) | Domain transformation languages | |
CN101661277B (zh) | 用于数控机床的零件加工方法和装置 | |
CN107729011B (zh) | 一种基于模型转换的从iOS到Android的跨平台页面转化方法 | |
CN114359459A (zh) | 文件格式转换方法、装置和计算机存储介质 | |
CN108073709A (zh) | 一种数据记录的操作方法、装置、设备和存储介质 | |
CN106155878B (zh) | 用于在数据库中创建供软件测试用的测试环境的方法和装置 | |
CN106372280A (zh) | 一种将rvm文件转换成catia模型的方法 |
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 |