张 毅 李昌华
摘 要:CAx之间的差异性,导致产品数据信息难以进行共享、集成。IGES作为一个对此解决方案的规范,是一种实现不同CAD /CAM系统之间数据转换的中性文件标准规范。IGES后处理器是一种为了将数据从该规格定义的交换文件格式,翻译成本地CAD系统的数据、其他图形系统的数据或另标准交换格式的工具。介绍IGES的主要特点以及使用Direct 3D技术实现IGES的CAD/CAM后置处理器设计思路与基本过程。
关键词:IGES;CAx;D3D;后处理器
中图分类号:TP274文献标识码:B
文章编号:1004-373X(2009)05-119-03
Research on Realization of IGES Postprocessors
ZHANG Yi,LI Changhua
(Information and Control Engineering School,Xi′an University of Architecture and Technology,Xi′an,710055,China)
Abstract:The differences between CAx make the information of product data difficult to be shared and integrated.As a solution to this problem,IGES is a file standard to realize data transform between different CAD/CAM systems.IGES postprocessor is an implementation designed to translate data from the exchange file format defined by this specification into native CAD system data,other graphics system data,or into another standard exchange format.The main features of IGES and the design of IGES postprocessor are introduced in this thesis.The basic process based on Direct 3D is given.
Keywords:IGES;CAx;D3D;postprocessor
0 引 言
CAx之间的差异性,导致产品数据信息难以进行共享、集成,不能实现整个生产过程的无缝连接。在制造企业所使用的众多软件中,就CAD 软件而言,有Autodesk Inventor,Dassault CATIA,PTC Pro/Engineer,SolidWorks,Parasolid,UGS Unigraphics,Solid Edge的产品以及各种各样国产化的CAD软件。这些软件产品往往都有其专用的数据结构形式,缺少高度统一的标准,应用软件不可避免地存在异构数据的问题。这些已经成为进一步提高生产力的瓶颈。
各CAx系统之间进行产品数据信息交流、转换、共享和集成的可能性系统接口方案有3种[1]。方案A系统集成:系统内部以相同的数据表达方式来描述各个模块之间的工作和模块之间的数据交换;方案B点对点连接:系统之间通过专用的接口进行数据的交换;方案C星型连接:系统之间通过统一的中性文件作为桥梁进行数据交换。
在三种方案之中,星型连接方案有着实现简单,系统的扩充和升级容易等优势。IGES(Initial Graphics Exchange Specification)是第3种方案在实现中的产物,也是国际上产生最早,目前应用最成熟,当今应用最广泛的数据交换标准。
1 IGES介绍[2]
基本图形转换规范IGES是为了解决数据在不同的CAD/CAM系统间进行传递的问题,它定义了一套表示CAD/CAM系统中常用的几何和非几何数据格式以及相应的文件结构[3]。IGES标准最早是ANSI于80年代初制定的,是建立在波音公司CAD/CAM集成信息网络、通用电气公司的中心数据库和其他各种数据交换格式之上。其最初版本仅限于描述工程图纸的几何图形和注释,随后又将电气、有限元、工厂设计和建筑设计纳入其中。1988年6月公布的IGES4.0又吸收了ESP中的CSG(Constructive Solid Geometry)和装配模型,后经扩充又收入了新的图形表示法、三维管道模型以及对FEM(有限元模型)功能的改进。而B-rep(边界表示法)模型则在IGES5.0中定义。目前IGES标准已经更新到了5.x版本。
1.1 IGES文件
标准的IGES有3种格式文件,即固定长ASCII码、压缩的ASCII码和二进制3种格式。目前的各种实现大部分是采用固定长ASCII码,该格式每行固定长80个字符。
1.2 IGES实体
IGES实体是IGES的数据记录格式,也是数据的基本单位。实体的标识方法对所有当前的CAD/CAM系统都是通用的,在IGES5.x中实体分为五大类,分别为:曲线和曲面几何实体、体素构造(CSG)实体、边界表示实体、标注实体和结构实体。实际研究中,IGES实体大略可分为:几何实体与非几何实体两类。每一类实体都有相应的实体类型号(整数):
(1) 几何实体。包括曲线和曲面几何实体、体素构造(CSG)实体、边界表示实体。它定义了产品的形状。
(2) 非几何实体。它是标注实体、结构实体的总称。
另外,值域为600~699的类型号是宏引用(MACRO Instance)实体。10 000~99 999保留给用户自定义使用。几何实体和非几何实体通过一定的逻辑关系和几何关系组合,用于传递产品图形的各类信息。
1.3 IGES坐标空间
在IGES坐标系统中有模型空间和定义空间两个概念。模型空间,是三维的欧几里德空间,在该空间中,模型(或产品)是被固定表示的。坐标系x,y,z是一个右手笛卡儿坐标系,也就是世界坐标系,相对于模型而言是固定不变的,用于定义模型在空间的位置和姿势。定义空间也是一个三维的欧几里德空间,但是它具有其自身的右手笛卡儿坐标系,与模型空间对模型的固定性相比,定义空间可以变换。定义空间坐标系,也就是模型的局部坐标系,用于定义模型的几何形状。
1.4 IGES点列描述格式
IGES中点列如何被描述的决定因素是ZT是否变化,这样就决定了几何体自由度的变化,即决定了几何体是二维还是三维。
1.5 IGES文件结构
IGES文件各区有共同特点。IGES整个文件的每行第73列都有区标志字母,如固定长ASCII码文件标志字母S,G,D,P,T或压缩的ASCII码文件标志字母C,S,G,D,P,T,二进制的首个标志字母是B,其他与固定长文件的相同。另外,74~80列是其在各区的升序行号。IGES文件各区的异同点在于其各区功能分工明确,从而各区的格式结构不尽相同。其中,广泛使用的IGES固定长ASCII码文件分为5个区:
(1) 起始区(Start Section),IGES文件的起始区提供一个可读的序言文件。例如:“This is a human readable prologue.”或者“Geogragic Studio”之类的语句。该区简称为S区。
(2) 全局区(Global Section),该区包含描述前处理器的信息和后处理器处理文件所需的信息。其中包括产品源、文件名称、前处理器版本、本地系统ID、文件生成日期等。参数存放是自由格式,以记录结束符终止。该区简称为G区。
(3) 目录区(Directory Entry Section),目录区存在的目的是为文件内容提供索引,其中包含每个实体的特征属性信息。每个实体都有一个目录存于目录区,目录的是固定长度的,该区简称为D区。
(4) 参数区(Parameter Data Section),参数区包含了每个实体的相关参数,参数是自由格式存放的,第一个域中存放着实体类型号。所有参数行的66-72列均存放着该实体的目录在D区中的首行行序号(它是指向D区的反向指针)。该区简称为P区。
(5) 结束区(Terminate Section),该区是整个文件的结束部分。结束区只有一行,共10个域,每个域有8列,前4个域分别表示了前4个区的行数。后面的各域以备扩展功能,该区简称为T区。
2 IGES后处理器实现
对于IGES文件结构中的五个区,各自功能、用途十分明确,然而,各区之间又有密切的联系。
2.1 IGES各区功能分析
总体来讲,IGES固定长ASCII码文件,也就是一般常见的IGES文件中,除了S区和T区的功能较简单外,其他三个区的功能都较复杂,分别有自己的数据格式。除了S区和T区起了对文件开始和结束的作用外,S区还可以对整个IGES文件进行说明,T区对整个文件中的各区行数进行了汇总。G区存放着关于全局的重要信息,说明前处理器、后处理器及数据文件的来源等[4],比如:当前文件的扩展名、前处理器类型、当前文件采用的长度单位名、单位标记,以及最大尺寸线宽、文件的生成日期、尺寸的最小精度、采用的绘图标准等。这些信息对于后处理器的研究及实现至关重要。
而D区和P区的功能虽然不同,但是其相互联系是非常紧密的。D区是目录和索引,P区是数据的仓库,这两个区的联系是靠指针与反向指针作用的。D区记录实体的属性信息,其中第2至第8个域及第13个域都是指向D区或P区的指针;P区记录实体的参数数据信息,通过D区这个中介,进而提取出P区记录的数据信息。由以上分析可以看出,要获取三维实体的最基本数据信息要在D区和P区间来回定位读取。
2.2 使用D3D技术进行IGES后处理器数据的提取
IGES后处理器是指把IGES格式文件转换成本地CAD系统格式文件的工具。现主要就IGES格式文件中几何信息和非几何信息的提取进行研究。D3D(Direct 3D)是DirectX的三维部分,是一种3D的API(Application Programming Interface)。目前在IGES后处理器的实现研究中,有使用各种CAD软件所提供二次开发API的,大部分使用OpenGL实现的,但几乎没有用D3D实现的。这一方面是因为前者实现上更简单,另一方面是因为D3D的出身是游戏和多媒体以及D3D不是开放的原因。随着版本的不断提高,从D3D和OpenGL两种API的功能、性能、驱动程序支持和使用的易用性四方面进行对比,两者功能、性能接近。
D3D是微软公司提供的,其在Windows操作系统中有着先天的优势。另外,DirectX 10的出现使其与OpenGL的各方面性能差异缩减到非常微小的地步。对于普通的PC用户,其绝大部分使用的是微软公司的Windows操作系统,因此用D3D技术实现IGES后处理器成为一种新的选择。
在提取与组织数据时,T区记录了IGES文件五个区各自的总行数信息,可以确定各个区首尾记录的位置,由此定位文件指针。在获取第一个指针之后,利用几何实体和非几何实体集中的D区和P区的指针和反向指针反复定位,提取信息就成为主要任务,直至将D区读完。
2.2.1 IGES文件几何数据提取顺序
以直线段为例,使用C++语言,利用D3D的函数,将图形数据转化为屏幕上的图形。首先IGES的图形有数量大,结构复杂和不等长等特点。其所有图形数据都包含几何信息和非几何信息两部分。IGES常用的图形数据有:直线段、点、圆弧、NURS曲线、NURS曲面等,现以直线段数据结构为例。
直线段,实体类型号为110,起点坐标(x,y,z),终点坐标(x1,y1,z1)。
struct LineType{//直线段
double xstart,ystart,zstart//起点坐标
xEnd,yEnd,zEnd;//终点坐标
}
2.2.2 IGES文件非几何信息的提取
IGES文件中的非几何信息是非常丰富的,除基本的表述性信息外,几何体的拓扑信息、装配体的装配层次结构信息(装配树结构信息)对于IGES后处理器的实现也是至关重要的。
装配体是由零件组成的,IGES文件中并列的零件信息是由相关实例实体402 (Associativity Instance Entity)的Form7 (Group Without Back Pointers Associativity)来体现的。相关实例实体402是反映实体间关系的实体。一般说来,一个402数据代表一个零件信息,它包含了这个零件的所有信息,包括该零件的所有线元和面元。
可以说,如果一个装配体由n个零件组成,则IGES文件中就有n个402数据。在IGES文件中,采用了402数据中再封装另一个402数据的D区起始地址值来保存多层次的装配体数据信息[5],如图2所示。
零件的所有信息(几何与非几何的)都是封装在144实体中的。基于以上分析,可以用几何信息提取的框架方法步骤来提取装配体信息。
(1) 打开文件,获得文件指针;定位指针至文件最后;读T区获取各区行数;
(2) 根据行数或区标识字母找到D区,循环找402实体号;
(3) 对于每个402实体,遍历其下的每个144实体,获取所需信息;
(4) 读完D区,保证不使装配树信息缺漏。
3 结 语
IGES在国际范围内,尤其在工业界得到了成功的应用,但随着图形系统的发展和工业领域的需要,它还处于不断的发展完善过程中。笔者在文中介绍了CAx的差异导致数据难以共享和集成,从而产生了各种解决方案。IGES即为星型结构方案中的一个国际性规范。在IGES的相关元素讨论中,着重阐述了其各部分功能、相互作用及数据提取、组织方法及利用D3D函数实现IGES后处理器的设计思路。
参考文献
[1]丘宏俊.基于网络的异构图档中间件系统的开发[D].西安:西北工业大学,2003.
[2]The Initial Graphics Exchange Specification(IGES Version 5.x (DRAFT Base Line 1/99)[S].IGES/PDES Organization,2006.
[3]孙家广,杨长贵.计算机图形学[M].3版.北京:清华大学出版社,1998.
[4]郑红梅.IGES规范与产品制造过程中的数据传递[J].计算机辅助设计与制造,2000(10):47-48.
[5]孙伟宁.三维图形浏览系统IGES后处理器的研究与实现[D].杭州:浙江大学,2002.
[6]余心宏,吴向阳.基于IGES的数据交换接口实现.计算机工程与应用,2002(10):133-134.
[7]姜瑞,郭俊杰.基于三坐标测量机生成IGES文件.测量与设备,2001(2):10-12.