張 毅 李昌華
摘 要:CAx之間的差異性,導(dǎo)致產(chǎn)品數(shù)據(jù)信息難以進(jìn)行共享、集成。IGES作為一個(gè)對此解決方案的規(guī)范,是一種實(shí)現(xiàn)不同CAD /CAM系統(tǒng)之間數(shù)據(jù)轉(zhuǎn)換的中性文件標(biāo)準(zhǔn)規(guī)范。IGES后處理器是一種為了將數(shù)據(jù)從該規(guī)格定義的交換文件格式,翻譯成本地CAD系統(tǒng)的數(shù)據(jù)、其他圖形系統(tǒng)的數(shù)據(jù)或另標(biāo)準(zhǔn)交換格式的工具。介紹IGES的主要特點(diǎn)以及使用Direct 3D技術(shù)實(shí)現(xiàn)IGES的CAD/CAM后置處理器設(shè)計(jì)思路與基本過程。
關(guān)鍵詞:IGES;CAx;D3D;后處理器
中圖分類號:TP274文獻(xiàn)標(biāo)識碼: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之間的差異性,導(dǎo)致產(chǎn)品數(shù)據(jù)信息難以進(jìn)行共享、集成,不能實(shí)現(xiàn)整個(gè)生產(chǎn)過程的無縫連接。在制造企業(yè)所使用的眾多軟件中,就CAD 軟件而言,有Autodesk Inventor,Dassault CATIA,PTC Pro/Engineer,SolidWorks,Parasolid,UGS Unigraphics,Solid Edge的產(chǎn)品以及各種各樣國產(chǎn)化的CAD軟件。這些軟件產(chǎn)品往往都有其專用的數(shù)據(jù)結(jié)構(gòu)形式,缺少高度統(tǒng)一的標(biāo)準(zhǔn),應(yīng)用軟件不可避免地存在異構(gòu)數(shù)據(jù)的問題。這些已經(jīng)成為進(jìn)一步提高生產(chǎn)力的瓶頸。
各CAx系統(tǒng)之間進(jìn)行產(chǎn)品數(shù)據(jù)信息交流、轉(zhuǎn)換、共享和集成的可能性系統(tǒng)接口方案有3種[1]。方案A系統(tǒng)集成:系統(tǒng)內(nèi)部以相同的數(shù)據(jù)表達(dá)方式來描述各個(gè)模塊之間的工作和模塊之間的數(shù)據(jù)交換;方案B點(diǎn)對點(diǎn)連接:系統(tǒng)之間通過專用的接口進(jìn)行數(shù)據(jù)的交換;方案C星型連接:系統(tǒng)之間通過統(tǒng)一的中性文件作為橋梁進(jìn)行數(shù)據(jù)交換。
在三種方案之中,星型連接方案有著實(shí)現(xiàn)簡單,系統(tǒng)的擴(kuò)充和升級容易等優(yōu)勢。IGES(Initial Graphics Exchange Specification)是第3種方案在實(shí)現(xiàn)中的產(chǎn)物,也是國際上產(chǎn)生最早,目前應(yīng)用最成熟,當(dāng)今應(yīng)用最廣泛的數(shù)據(jù)交換標(biāo)準(zhǔn)。
1 IGES介紹[2]
基本圖形轉(zhuǎn)換規(guī)范IGES是為了解決數(shù)據(jù)在不同的CAD/CAM系統(tǒng)間進(jìn)行傳遞的問題,它定義了一套表示CAD/CAM系統(tǒng)中常用的幾何和非幾何數(shù)據(jù)格式以及相應(yīng)的文件結(jié)構(gòu)[3]。IGES標(biāo)準(zhǔn)最早是ANSI于80年代初制定的,是建立在波音公司CAD/CAM集成信息網(wǎng)絡(luò)、通用電氣公司的中心數(shù)據(jù)庫和其他各種數(shù)據(jù)交換格式之上。其最初版本僅限于描述工程圖紙的幾何圖形和注釋,隨后又將電氣、有限元、工廠設(shè)計(jì)和建筑設(shè)計(jì)納入其中。1988年6月公布的IGES4.0又吸收了ESP中的CSG(Constructive Solid Geometry)和裝配模型,后經(jīng)擴(kuò)充又收入了新的圖形表示法、三維管道模型以及對FEM(有限元模型)功能的改進(jìn)。而B-rep(邊界表示法)模型則在IGES5.0中定義。目前IGES標(biāo)準(zhǔn)已經(jīng)更新到了5.x版本。
1.1 IGES文件
標(biāo)準(zhǔn)的IGES有3種格式文件,即固定長ASCII碼、壓縮的ASCII碼和二進(jìn)制3種格式。目前的各種實(shí)現(xiàn)大部分是采用固定長ASCII碼,該格式每行固定長80個(gè)字符。
1.2 IGES實(shí)體
IGES實(shí)體是IGES的數(shù)據(jù)記錄格式,也是數(shù)據(jù)的基本單位。實(shí)體的標(biāo)識方法對所有當(dāng)前的CAD/CAM系統(tǒng)都是通用的,在IGES5.x中實(shí)體分為五大類,分別為:曲線和曲面幾何實(shí)體、體素構(gòu)造(CSG)實(shí)體、邊界表示實(shí)體、標(biāo)注實(shí)體和結(jié)構(gòu)實(shí)體。實(shí)際研究中,IGES實(shí)體大略可分為:幾何實(shí)體與非幾何實(shí)體兩類。每一類實(shí)體都有相應(yīng)的實(shí)體類型號(整數(shù)):
(1) 幾何實(shí)體。包括曲線和曲面幾何實(shí)體、體素構(gòu)造(CSG)實(shí)體、邊界表示實(shí)體。它定義了產(chǎn)品的形狀。
(2) 非幾何實(shí)體。它是標(biāo)注實(shí)體、結(jié)構(gòu)實(shí)體的總稱。
另外,值域?yàn)?00~699的類型號是宏引用(MACRO Instance)實(shí)體。10 000~99 999保留給用戶自定義使用。幾何實(shí)體和非幾何實(shí)體通過一定的邏輯關(guān)系和幾何關(guān)系組合,用于傳遞產(chǎn)品圖形的各類信息。
1.3 IGES坐標(biāo)空間
在IGES坐標(biāo)系統(tǒng)中有模型空間和定義空間兩個(gè)概念。模型空間,是三維的歐幾里德空間,在該空間中,模型(或產(chǎn)品)是被固定表示的。坐標(biāo)系x,y,z是一個(gè)右手笛卡兒坐標(biāo)系,也就是世界坐標(biāo)系,相對于模型而言是固定不變的,用于定義模型在空間的位置和姿勢。定義空間也是一個(gè)三維的歐幾里德空間,但是它具有其自身的右手笛卡兒坐標(biāo)系,與模型空間對模型的固定性相比,定義空間可以變換。定義空間坐標(biāo)系,也就是模型的局部坐標(biāo)系,用于定義模型的幾何形狀。
1.4 IGES點(diǎn)列描述格式
IGES中點(diǎn)列如何被描述的決定因素是ZT是否變化,這樣就決定了幾何體自由度的變化,即決定了幾何體是二維還是三維。
1.5 IGES文件結(jié)構(gòu)
IGES文件各區(qū)有共同特點(diǎn)。IGES整個(gè)文件的每行第73列都有區(qū)標(biāo)志字母,如固定長ASCII碼文件標(biāo)志字母S,G,D,P,T或壓縮的ASCII碼文件標(biāo)志字母C,S,G,D,P,T,二進(jìn)制的首個(gè)標(biāo)志字母是B,其他與固定長文件的相同。另外,74~80列是其在各區(qū)的升序行號。IGES文件各區(qū)的異同點(diǎn)在于其各區(qū)功能分工明確,從而各區(qū)的格式結(jié)構(gòu)不盡相同。其中,廣泛使用的IGES固定長ASCII碼文件分為5個(gè)區(qū):
(1) 起始區(qū)(Start Section),IGES文件的起始區(qū)提供一個(gè)可讀的序言文件。例如:“This is a human readable prologue.”或者“Geogragic Studio”之類的語句。該區(qū)簡稱為S區(qū)。
(2) 全局區(qū)(Global Section),該區(qū)包含描述前處理器的信息和后處理器處理文件所需的信息。其中包括產(chǎn)品源、文件名稱、前處理器版本、本地系統(tǒng)ID、文件生成日期等。參數(shù)存放是自由格式,以記錄結(jié)束符終止。該區(qū)簡稱為G區(qū)。
(3) 目錄區(qū)(Directory Entry Section),目錄區(qū)存在的目的是為文件內(nèi)容提供索引,其中包含每個(gè)實(shí)體的特征屬性信息。每個(gè)實(shí)體都有一個(gè)目錄存于目錄區(qū),目錄的是固定長度的,該區(qū)簡稱為D區(qū)。
(4) 參數(shù)區(qū)(Parameter Data Section),參數(shù)區(qū)包含了每個(gè)實(shí)體的相關(guān)參數(shù),參數(shù)是自由格式存放的,第一個(gè)域中存放著實(shí)體類型號。所有參數(shù)行的66-72列均存放著該實(shí)體的目錄在D區(qū)中的首行行序號(它是指向D區(qū)的反向指針)。該區(qū)簡稱為P區(qū)。
(5) 結(jié)束區(qū)(Terminate Section),該區(qū)是整個(gè)文件的結(jié)束部分。結(jié)束區(qū)只有一行,共10個(gè)域,每個(gè)域有8列,前4個(gè)域分別表示了前4個(gè)區(qū)的行數(shù)。后面的各域以備擴(kuò)展功能,該區(qū)簡稱為T區(qū)。
2 IGES后處理器實(shí)現(xiàn)
對于IGES文件結(jié)構(gòu)中的五個(gè)區(qū),各自功能、用途十分明確,然而,各區(qū)之間又有密切的聯(lián)系。
2.1 IGES各區(qū)功能分析
總體來講,IGES固定長ASCII碼文件,也就是一般常見的IGES文件中,除了S區(qū)和T區(qū)的功能較簡單外,其他三個(gè)區(qū)的功能都較復(fù)雜,分別有自己的數(shù)據(jù)格式。除了S區(qū)和T區(qū)起了對文件開始和結(jié)束的作用外,S區(qū)還可以對整個(gè)IGES文件進(jìn)行說明,T區(qū)對整個(gè)文件中的各區(qū)行數(shù)進(jìn)行了匯總。G區(qū)存放著關(guān)于全局的重要信息,說明前處理器、后處理器及數(shù)據(jù)文件的來源等[4],比如:當(dāng)前文件的擴(kuò)展名、前處理器類型、當(dāng)前文件采用的長度單位名、單位標(biāo)記,以及最大尺寸線寬、文件的生成日期、尺寸的最小精度、采用的繪圖標(biāo)準(zhǔn)等。這些信息對于后處理器的研究及實(shí)現(xiàn)至關(guān)重要。
而D區(qū)和P區(qū)的功能雖然不同,但是其相互聯(lián)系是非常緊密的。D區(qū)是目錄和索引,P區(qū)是數(shù)據(jù)的倉庫,這兩個(gè)區(qū)的聯(lián)系是靠指針與反向指針作用的。D區(qū)記錄實(shí)體的屬性信息,其中第2至第8個(gè)域及第13個(gè)域都是指向D區(qū)或P區(qū)的指針;P區(qū)記錄實(shí)體的參數(shù)數(shù)據(jù)信息,通過D區(qū)這個(gè)中介,進(jìn)而提取出P區(qū)記錄的數(shù)據(jù)信息。由以上分析可以看出,要獲取三維實(shí)體的最基本數(shù)據(jù)信息要在D區(qū)和P區(qū)間來回定位讀取。
2.2 使用D3D技術(shù)進(jìn)行IGES后處理器數(shù)據(jù)的提取
IGES后處理器是指把IGES格式文件轉(zhuǎn)換成本地CAD系統(tǒng)格式文件的工具。現(xiàn)主要就IGES格式文件中幾何信息和非幾何信息的提取進(jìn)行研究。D3D(Direct 3D)是DirectX的三維部分,是一種3D的API(Application Programming Interface)。目前在IGES后處理器的實(shí)現(xiàn)研究中,有使用各種CAD軟件所提供二次開發(fā)API的,大部分使用OpenGL實(shí)現(xiàn)的,但幾乎沒有用D3D實(shí)現(xiàn)的。這一方面是因?yàn)榍罢邔?shí)現(xiàn)上更簡單,另一方面是因?yàn)镈3D的出身是游戲和多媒體以及D3D不是開放的原因。隨著版本的不斷提高,從D3D和OpenGL兩種API的功能、性能、驅(qū)動(dòng)程序支持和使用的易用性四方面進(jìn)行對比,兩者功能、性能接近。
D3D是微軟公司提供的,其在Windows操作系統(tǒng)中有著先天的優(yōu)勢。另外,DirectX 10的出現(xiàn)使其與OpenGL的各方面性能差異縮減到非常微小的地步。對于普通的PC用戶,其絕大部分使用的是微軟公司的Windows操作系統(tǒng),因此用D3D技術(shù)實(shí)現(xiàn)IGES后處理器成為一種新的選擇。
在提取與組織數(shù)據(jù)時(shí),T區(qū)記錄了IGES文件五個(gè)區(qū)各自的總行數(shù)信息,可以確定各個(gè)區(qū)首尾記錄的位置,由此定位文件指針。在獲取第一個(gè)指針之后,利用幾何實(shí)體和非幾何實(shí)體集中的D區(qū)和P區(qū)的指針和反向指針反復(fù)定位,提取信息就成為主要任務(wù),直至將D區(qū)讀完。
2.2.1 IGES文件幾何數(shù)據(jù)提取順序
以直線段為例,使用C++語言,利用D3D的函數(shù),將圖形數(shù)據(jù)轉(zhuǎn)化為屏幕上的圖形。首先IGES的圖形有數(shù)量大,結(jié)構(gòu)復(fù)雜和不等長等特點(diǎn)。其所有圖形數(shù)據(jù)都包含幾何信息和非幾何信息兩部分。IGES常用的圖形數(shù)據(jù)有:直線段、點(diǎn)、圓弧、NURS曲線、NURS曲面等,現(xiàn)以直線段數(shù)據(jù)結(jié)構(gòu)為例。
直線段,實(shí)體類型號為110,起點(diǎn)坐標(biāo)(x,y,z),終點(diǎn)坐標(biāo)(x1,y1,z1)。
struct LineType{//直線段
double xstart,ystart,zstart//起點(diǎn)坐標(biāo)
xEnd,yEnd,zEnd;//終點(diǎn)坐標(biāo)
}
2.2.2 IGES文件非幾何信息的提取
IGES文件中的非幾何信息是非常豐富的,除基本的表述性信息外,幾何體的拓?fù)湫畔?、裝配體的裝配層次結(jié)構(gòu)信息(裝配樹結(jié)構(gòu)信息)對于IGES后處理器的實(shí)現(xiàn)也是至關(guān)重要的。
裝配體是由零件組成的,IGES文件中并列的零件信息是由相關(guān)實(shí)例實(shí)體402 (Associativity Instance Entity)的Form7 (Group Without Back Pointers Associativity)來體現(xiàn)的。相關(guān)實(shí)例實(shí)體402是反映實(shí)體間關(guān)系的實(shí)體。一般說來,一個(gè)402數(shù)據(jù)代表一個(gè)零件信息,它包含了這個(gè)零件的所有信息,包括該零件的所有線元和面元。
可以說,如果一個(gè)裝配體由n個(gè)零件組成,則IGES文件中就有n個(gè)402數(shù)據(jù)。在IGES文件中,采用了402數(shù)據(jù)中再封裝另一個(gè)402數(shù)據(jù)的D區(qū)起始地址值來保存多層次的裝配體數(shù)據(jù)信息[5],如圖2所示。
零件的所有信息(幾何與非幾何的)都是封裝在144實(shí)體中的。基于以上分析,可以用幾何信息提取的框架方法步驟來提取裝配體信息。
(1) 打開文件,獲得文件指針;定位指針至文件最后;讀T區(qū)獲取各區(qū)行數(shù);
(2) 根據(jù)行數(shù)或區(qū)標(biāo)識字母找到D區(qū),循環(huán)找402實(shí)體號;
(3) 對于每個(gè)402實(shí)體,遍歷其下的每個(gè)144實(shí)體,獲取所需信息;
(4) 讀完D區(qū),保證不使裝配樹信息缺漏。
3 結(jié) 語
IGES在國際范圍內(nèi),尤其在工業(yè)界得到了成功的應(yīng)用,但隨著圖形系統(tǒng)的發(fā)展和工業(yè)領(lǐng)域的需要,它還處于不斷的發(fā)展完善過程中。筆者在文中介紹了CAx的差異導(dǎo)致數(shù)據(jù)難以共享和集成,從而產(chǎn)生了各種解決方案。IGES即為星型結(jié)構(gòu)方案中的一個(gè)國際性規(guī)范。在IGES的相關(guān)元素討論中,著重闡述了其各部分功能、相互作用及數(shù)據(jù)提取、組織方法及利用D3D函數(shù)實(shí)現(xiàn)IGES后處理器的設(shè)計(jì)思路。
參考文獻(xiàn)
[1]丘宏俊.基于網(wǎng)絡(luò)的異構(gòu)圖檔中間件系統(tǒng)的開發(fā)[D].西安:西北工業(yè)大學(xué),2003.
[2]The Initial Graphics Exchange Specification(IGES Version 5.x (DRAFT Base Line 1/99)[S].IGES/PDES Organization,2006.
[3]孫家廣,楊長貴.計(jì)算機(jī)圖形學(xué)[M].3版.北京:清華大學(xué)出版社,1998.
[4]鄭紅梅.IGES規(guī)范與產(chǎn)品制造過程中的數(shù)據(jù)傳遞[J].計(jì)算機(jī)輔助設(shè)計(jì)與制造,2000(10):47-48.
[5]孫偉寧.三維圖形瀏覽系統(tǒng)IGES后處理器的研究與實(shí)現(xiàn)[D].杭州:浙江大學(xué),2002.
[6]余心宏,吳向陽.基于IGES的數(shù)據(jù)交換接口實(shí)現(xiàn).計(jì)算機(jī)工程與應(yīng)用,2002(10):133-134.
[7]姜瑞,郭俊杰.基于三坐標(biāo)測量機(jī)生成IGES文件.測量與設(shè)備,2001(2):10-12.