基于STEP-NC几何信息提取技术的研究
2016-06-01李梅竹
李梅竹
(陕西广播电视大学 工程管理教学部,陕西 西安 710119)
基于STEP-NC几何信息提取技术的研究
李梅竹
(陕西广播电视大学 工程管理教学部,陕西 西安 710119)
本文使用ROSE库函数,将EXPRESS语言描述的AP-203文件信息转换为STEP设计对象和C++类,按AP-203数据模型的几何信息属性的层次结构,逐次提取几何信息,主要包括头段和数据段信息的提取。对实现CAD/CAPP集成提供了技术支持,是实现STEP-NC的基础。
信息提取;AP-203;STEP-NC;几何信息
基于STEP-NC的数控程序是STEP标准在制造领域的延伸[1-2],STEP-NC与STEP使用相同的结构体系和方法论,所以要成功地实现STEP-NC,就必须深刻理解STEP的方法论和结构体系。应用协议AP-238是STEP-NC的技术定义,它的几何定义与STEP AP-203相同,因此对STEP AP-203进行几何信息的提取即为AP-238文件的生成提供基础。
1 STEP的方法论
ISO10303 Part21定义了以EXPRESS语言描述的产品数据从一计算机系统到另一计算机系统的交换机制。主要包括交换结构的句法和语法规范、从EXPRESS模式到句法和语法的映射等内容。文件的扩展名为.stp或.step。STEP物理文件包括头文件段和数据段两部分。
(1)头文件段包括文件描述、文件名和文件模式三部分。文件描述中包含一些有关中性文件内容的非正式描述和该文件要求的后处理器层次。文件名提供了人可读的关于交换结构的信息。文件模式实体表明数据段中实体实例的EXPRESS模式。
(2)数据段包含了由交换结构所传递的数据实例。每个交换结构至少有一个数据段。每个数据段包含了头文件中EXPRESS模式所对应的实体实例。实体实例在交换结构中的位置并不是固定的,一个实体实例可能被它之前的其他实体实例参考。
AP应用协议是STEP的可执行的数据规范,它包括满足特定应用领域的产品数据需求的EXPRESS信息模型,由合适的集成资源和具体应用领域的约束和特定概念组成。每个应用协议分为几个相对独立又互相关联的部分。这种结构不仅有利于应用协议的开发,而且使得回顾、执行和使用变得更加容易。
STEP-NC期望使用STEP的部分或全部的表达方法和体系结构,为CNC数据提供一种标准化的表达方式。STEP-NC有两种数据模型:ISO10303中的AP-238[3]和ISO14649[4],其中AP-238为应用解释模型,而ISO14649为应用参考模型。这两种数据模型都可用作STEP-NC具体实现的源数据模型。
2 几何信息提取过程
ST-Developer是美国STEPTools公司开发的计算机工具,ST-Developer提供的ROSE C++类库,作为应用系统与STEP数据、OODB、RDB或物理文件的接口。ROSE库利用由一些C++类提供的函数来产生和操纵EXPRESS描述的模型中的数据。ROSE类库联编方式可以分为早联编、晚联编和混合联编(早、晚联编混合使用)三种方式[5]。早联编方式是在编写应用程序之前,针对某一特定模式的应用协议所对应的模式文件,利用EXPRESS编译器进行编译产生C++类。用这些C++类创建应用程序。在应用程序中,只要包含编译产生的C++类的头文件就可以操作EXPRESS定义数据。晚联编方式与早联编方式有所不同,它利用EXPRESS编译器编译应用协议对应的模式文件,产生的不再是C++类,而是EXPRESS数据字典,利用EXPRESS数据字典来检索数据。
在ST-Developer10.0环境下,以VC++6.0为开发工具,使用ROSE库函数,将EXPRESS语言描述的AP-203文件信息转换为STEP设计对象和C++类,按AP-203数据模型的几何信息属性的层次结构,逐次提取几何信息。如图1所示,首先通过ROSE接口把AP-203文件中的所有实体信息读入系统。然后,对一个确定实体,通过一个遍历函数和ROSE功能扩展类从系统中读取自己的属性值。如果该属性本身又是另一个实体,其自身还包括属性,则就要再一次进行信息的提取和遍历。当该实体的属性及其子实体的属性全部创建完成后,才完成该实体数据的全部提取过程。
图1 几何信息的提取过程
2.1 头段提取及实例
头段信息主要是与几何信息相关的管理信息,描述文件的名称、注释等。可以使用ROSE C++类库中的函数提取其中的相关信息。下面是使用ROSE C++类库提取头段信息基本方法的示意程序:
输入的STEP文件的头段部分信息内容为图2所示,提取出的头段数据如图3所示。
图2 STEP文件的头段部分信息图
图3 提取出的头段信息
2.2 数据段提取及实例
数据段信息提取是AP-203信息模型的信息提取核心部分,主要是提取AP-203信息模型中的几何信息,不同的STEP数据对象代表了不同的EXPRESS数据结构,把AP-203文件读入计算机内存后,需将AP-203文件映射为STEP设计对象和C++类。在数据转换模块中,本文使用混合联编的方式来转换EXPRSS数据格式:使用ROSE库函数将STEP文件转换为STEP设计对象,使用EXPRESS Compiler将EXPRESS定义的每个几何实体转化为相应C++类,每类几何实体是具有类似特性的对象,对象的特性在实体定义中用属性和规则来表达,用ROSE API和C++类直接操作STEP文件。数据段中的每个实体实例用ROSE库读取到内存后转换为相应的STEP设计对象,它是RoseObject类的一个实例。通过游标遍历RoseCursor类来实现对一个设计内部的遍历。针对每个具体的STEP设计对象用getAttribute()函数按几何信息的层次属性顺次提取其属性值[4]。
2.2.1 STEP文件的读入与遍历
进行数控程序开发前,首先必须把实体实例文件读到内存中变为STEP数据对象,这一过程使用ROSE接口类函数findDesign()实现,函数原形为RoseDesign*findDesign(char*design_name)。使用此函数搜索内存和磁盘,寻找名字为design_name的设计对象,如果找到该设计对象就把它读入内存,否则返回NULL。
对于文件中的信息,通过遍历STEP对象实体,利用 ROSE类库中 RoseObject类建立实体的RoseObject对象指针。RoseObject类是所有STEP设计对象的父类,它提供了操作任意类型STEP数据的函数。通过游标遍历ROSECursor类来实现对一个设计内部的遍历。
利用函数RoseInterface::beginTraversal()和RoseInterface::endTraversal()来界定遍历的对象。
若所得实体属性信息与AP-238应用协议所规定的实体属性信息的表达不符,则利用ROSE_CAST()函数将得到的实体指针转换成所需的实体指针。对遍历之后出现的冗余信息,使用函数rose_move_to_trash()或rose_empty_trash()进行删除。
2.2.2 实体属性的提取
设计对象中的STEP对象的属性可以用晚联编方式进行操作。晚联编中使用RoseObject类中定义的get和put函数来读写每种数据类型的对象的属性。其中get函数的基本形式如value=get
上面介绍了数据段信息的提取过程中的关键函数,现以文件中的advanced_brep_shape_representation实体为例说明实体属性的提取过程。其提取成员变量属性的具体代码为:
采取上述函数可完成advanced_brep_shape_representation实体所有属性的提取,提取结果如图4所示。
图4 提取出的数据段信息
以上为 advanced_brep_shape_representation实体的提取方法,同理完成STEP文件的其余几何信息的提取过程。提取出的信息作为特征识别的数据基础。
3 结束语
本文在ST-Developer10.0环境下,以VC++6.0为开发工具,使用ROSE库函数,将EXPRESS语言描述的AP-203文件信息转换为STEP设计对象和C++类,按AP-203数据模型的几何信息属性的层次结构,逐次提取几何信息。提取出的信息作为特征识别的数据基础。最后以STEP文件中的实体advanced_brep_shape_representation为例给出具体的实例提取方法。
[1]王淑红,王 军,孙 军.ROSE类库在STEP-NC数控程序中应用的研究[J].机床与液压,2007,35(2):66-68.
[2]李梅竹,田文欣,赵亚楠.基于STEP-NC型腔特征识别方法的研究[J].锻压装备与制造技术,2015,50(4):109-112.
[3] ISO/DIS 10303-238.Industrial automation systems and integration-Product data representation and exchange-Part238:Application protocol:Application interpreted model for computerized numerical controllers.2006:204-736.
[4] ISO14649-1.Industrial automation systems and Integration-Physical device control-ISO14649 Data model for Computerized Numerical Controllers-Part1:Overview and fundamental principles.2003:1-10.
[5] 王 军,刘 哲,孙 军.基于ST-Developer10几何信息提取方法的研究[J].沈阳建筑大学学报,2006,22(1):163-167.
[6] 刘志强,张 维.基于多决策属性的刀具选择规则提取算法研究[J].锻压装备与制造技术,2012,47(3):90-92.
Study on extraction method of geometric information based on STEP-NC
LI Meizhu
(Dept.of Engineering Management,Shaanxi Radio&TV University,Xi'an 710119,Shaanxi China)
By use of the ROSE library function,the AP-203 file information described by the EXPRESS language has been converted into STEP design object and C++class.Accordingto the hierarchical structure of geometric information attributes for the AP-203 data model,the geometric information has been extracted, which mainly includes the header and data segment information extraction.It provides technical support for the realization of CAD/CAPP integration,which is the basis of STEP-NC.
STEP-NC;AP-203;Geometric information;Information extraction
TP391
A
10.16316/j.issn.1672-0121.2016.02.032
1672-0121(2016)02-0117-03
2015-11-10;
2016-01-07
李梅竹(1982-),女,硕士,讲师,从事计算机集成制造系统研究。E-mail:meizi86@163.com