在线工博会

STEP专用处理器的设计
清华大学 孟明辰 宋霜 李志超 李振宏
为节省流量,手机版未显示文章中的图片,请点击此处浏览网页版
摘要 介绍STEP专用处理器的用户字典文件、内存工作格式和API设计方法。讨论内存工作格式的系统结构,相关信息的组织方法,允许用户查询、修改并重构STEP文件,并对用户的操作进行语法检查、词法检查;通过调用基本功能函数,用户针对自己的应用编写API,通过API提取CAPP、CAM所需要的信息,实现系统之间的信息交换与共享。以机械产品设计为目标,遵照AP203、AP214,建立了JW-CAD中的应用协议JW-AP,并在该处理器上运行,实现了CAD/CAPP/CAM集成,收到了良好效果。
关键词 STEP 集成工具 CAD/CAPP/CAM集成 数据交换
STEP标准是产品数据表达与交换的国际标准,提供了产品整个生命周期的数据表达与交换机制,标准的制定主要有两个目的,一是产品的数据表达,二是产品数据共享与交换。由于STEP标准是经过国际合作的许多专家经严密的规程制定的,对产品数据表达与交换的完整性、一致性考虑得相当周全。直接采用STEP标准可以缩短产品开发周期,提高产品设计的一次成功率,更快地与国际标准接轨,达到安全有效的数据共享与交换[1,2]。现在,许多软件纷纷宣布支持STEP标准,其中包括PRO/E、I—DEAS、UGII等著名的CAD软件,对STEP文件提供有力的支持,增强CAD软件产品的生存能力和竞争能力。
由于种种原因,商品化CAD软件只是支持STEP标准某些应用协议(如AP203、AP214)的子集,使通过STEP文件在不同CAD系统之间的数据交换产生困难,需要对STEP文件进行处理,STEP Tools,Inc.开发的ST-Developer工具软件就是为此目的而设计的。它具有强大的功能,如EXPRESS语言编译器、SDAI接口、STEP编辑器、生成IGES、DXF文件、与数据库接口等,但对于一个应用工厂来说,系统显得庞大,许多功能用不上,针对应用工厂的实际情况,开发以机械零件为对象,解决好机械零件的建模及CAD、CAPP、CAM集成的STEP专用处理器成为当前的急需课题。本文详细介绍STEP专用处理器的设计和在机械CAD/CAM集成中的应用。
1 STEP处理器的总体结构
STEP专用处理器分为两大模块:系统支持模块、应用模块,见图1。

(图片)

图1 专用处理器的系统结构

系统支持模块 系统支持模块是STEP专用处理器的核心部分,包含数据字典定义、工作格式模块、文件查询和基本功能函数集。数据字典模块完成产品信息模型的定义,专用处理器根据ISO PART 203 和 ISO PART 214提供给用户一个缺省的用户字典,利用这个缺省的用户字典,可以对集成在STEP资源中的机械零件的信息进行模型定义;工作格式模块把产品信息采用合理的数据结构映射到内存,生成内存工作格式,并对之进行语法检查和语义检查;文件查询模块是用户的操作界面,可以对内存工作格式中的产品信息进行索引、查询、编辑,并提供一套把内存工作格式中的产品信息写成STEP文件的重构方法;用户通过调用基本功能函数集,便可以高效地、灵活地构造自己的应用程序接口(API)。
应用模块
应用模块提供对产品信息模型进行操作,实际上是通过调用基本功能函数来实现构造应用程序接口(API)。
2 数据字典定义
由于应用协议的解释模型是由EXPRESS语言描述的,需要EXPRESS语言编译器,该系统没有该模块,而是采用人机交互的方式生成用户字典文件,系统将字典文件读入内存,生成字典,描述应用协议的基本内容。数据字典以文本文件的形式存在,用类似于STEP文件格式对数据字典作描述,不仅可以描述单个实体的信息,也可以描述实体之间的关系。对数据字典的修改,可以通过任何文本编辑器,直接修改数据字典文件来完成。以下便是一个数据字典的例子。
数据字典是根据用户协议建立的,而用户协议使用EXPRESS语言的实体集来描述,所以在数据字典与EXPRESS实体存在着映射关系。如对于EXPRESS中实体CARTESIANPOINT的相关描述:
ENTITY representation_item;
  name : string;
  WHERE
   wr1 : SIZEOF(using_representations(SELF)) > 0;
  END_ENTITY;
ENTITY geometric_representation_item
  SUBTYPE OF (representation_item);
DERIVE
  dim : dimension_count := dimension_of(SELF);
END_ENTITY;
ENTITY point
  SUPERTYPE OF ( cartesian_point )
  SUBTYPE OF ( geometric_representation_item ) ;
END_ENTITY ;
ENTITY cartesian_point
  SUBTYPE OF ( point ) ;
  coordinate : LIST [1∶3] OF length_measure ;
END_ENTITY ;
在对此描述方法作了适当的简化后,便可得到数据字典中的CARTESIAN_POINT实体:
#5 = CARTESIAN_POINT(1STRING,(3REAL));
在此数据字典中,不但对单个的实体进行了详细的描述,还对实体之间的引用关系进行了描述。
DICTIONARY;
HEAD;
#1 =FILE_IDENTIFICATION(2STRING,(2STRING),(1STRING),3STRING);
#2 =FILE_DESCRIPTION(1STRING);
#3 =IMP_LEVEL(1STRING);
ENDHEAD;
DATA;
#5 =CARTESIAN_POINT(1STRING,(3REAL));
/* 实体关键字为CARTESIAN_POINT,第一个参数是字符串,第二个参数是一个SET,其中包含3个实数 */
#6 =VERTEX_POINT(1STRING,1#5);
/* 实体关键字为VERTEX_POINT,第一个参数为字符串,第二个参数为一个实体(第5号实体) */
……
#22=CLOSE_SHELL(1STRING,(n#20));
#23=SHELL_BASED_SURFACE_MODEL(1STRING,(1#22));
ENDDATA;
ENDDICTIONARY;
STEP文件的合法性验证是基于数据字典的,专用处理器为数据字典构造了一个内部存储结构。数据字典在形式上同STEP文件十分相似,因此便可以用类似于STEP文件内存工作格式的方法来构造字典的内部存储结构。
3 STEP文件内存工作格式的构造
专用处理器在运行时,首先把数据字典读入数据字典的内部存储结构,之后把STEP文件读入STEP文件的内存工作格式。根据数据字典,对STEP文件进行语法检查与语义检查。通过检查,才可以进行进一步的操作。对STEP文件进行的信息查询与信息提取,都是在内存工作格式的基础上展开的。STEP文件的内存工作格式的确定,是专用处理器开发要解决的首要问题。内存工作格式为组织STEP文件中的产品信息提供了一个简单、高效的组织结构,其结构的好坏,直接关系到STEP专用处理器设计的成功与否。STEP文件中存储了产品的信息模型,数据量较大,这就要求文件的工作格式有比较优化的结构,对内存的占用应尽可能地小,其结构见图2。

(图片)

图2 工作格式的内存结构

entitylink结构体存储了STEP实体的关键字(name)、实体名(entitynumber)、映射方式(map)、SCOPE的层次(scopelevel)、外部映射(extmap)的信息,相应的实体参数信息存储在param所指向的parameters结构体中。在parameters结构体中,存储了参数类型(type)、是否可选(isoptional)、参数内容(string)、私有实体(scope)和聚合类型参数(set)的信息。通过这样一棵实体树,便可以把STEP文件中的所有产品信息包括进来。STEP文件中的5号和6号实体在STEP文件中书写如下:
  #5=CARTESIAN_POINT(",(2.63250e+02,3.47500e+02,1.5000e+01));
  #6= VERTEX_POINT(",#5);
它们在内存工作格式中的表示方式见图3。

(图片)

图3 在内存工作格式中5号和6号实体的表示方式

4 应用模块
应用模块实际上是利用了STEP专用处理器的基本功能函数构造专项应用程序API,CAPP专用格式文件的生成其实是一个实例,应用领域不同,共享的信息也不同,需要不同的API,用户就必须利用系统调用基本功能,结合自己的程序,开发相应的API。
5 结束语
STEP专用处理器是针对EXPRESS语言和STEP文件进行设计的,它具有对STEP文件进行分析、合法性检查、生成工作格式、查询STEP文件、STEP文件重构等功能,为用户提供了对STEP文件进行操作的基本功能函数,这一部分并不依赖于某一特定的用户协议,用户可以很方便地对STEP文件进行操作。API的用户程序依赖于特定的用户协议,若用户协议有了改动,通过系统调用来修改或重构API。目前的STEP专用处理器,只具备了一个雏形,要达到其最终目的,还有大量的工作要作。
7/8/2004


电脑版 客户端 关于我们
佳工机电网 - 机电行业首选网站