唐啟亮,張樹生,陶 俊,黃 瑞
(西北工業(yè)大學現(xiàn)代設計與集成制造技術教育部重點實驗室,西安710072)
長久以來,二維工程圖作為產(chǎn)品設計和制造工藝信息傳遞的主要載體,在機械行業(yè)不可或缺。隨著計算機與軟件技術的發(fā)展,產(chǎn)品定義技術經(jīng)歷了從工程制圖技術到二維CAD技術,再到三維建模技術的發(fā)展歷程[1]。早期傳統(tǒng)的產(chǎn)品定義,主要以工程圖為主,通過專業(yè)的繪圖反映出產(chǎn)品的幾何結構以及制造要求,實現(xiàn)設計者和制造信息的共享與傳遞。隨著計算機輔助設計(CAD)技術的發(fā)展,使得設計人員很方便的用計算機代替圖板進行產(chǎn)品設計。目前,在產(chǎn)品設計和制造領域中存在的主流三維CAD系統(tǒng)(UG、CATIA、ProE等)在對零件進行三維建模時雖然提供了基于三維模型的三維標注功能,但目前還沒有一個成熟的行業(yè)規(guī)范,也沒有一個公認的文檔格式[2],而且基于三維模型的二三維關聯(lián)技術還不是很成熟,因此不能在多個平臺之間實現(xiàn)數(shù)據(jù)共享。
由于歷史上二維圖紙作為標準曾長期存在于工業(yè)領域,目前我國大部分制造企業(yè)內(nèi)部還存在大量工程圖紙作為制造信息的載體,有著強大的傳統(tǒng)習慣定勢,同時也由于經(jīng)濟實力、技術水平等因素的影響,二維圖紙不僅不會在短期內(nèi)消亡,反而還會作為工程語言的載體長期存在并不斷發(fā)展[3]。企業(yè)內(nèi)部同時存在產(chǎn)品的三維CAD模型和二維工程圖,三維模型形象直觀的展示了產(chǎn)品的幾何外形信息,而大量的工藝信息、制造信息包含在二維工程圖中,這樣就形成了三維CAD模型中的幾何信息和二維工程圖中的工藝信息兩個信息孤島,為設計人員進行數(shù)據(jù)共享、設計重用提供了不便,降低了產(chǎn)品設計效率。
針對上述問題,提出一種基于圖匹配的二維工程圖向三維CAD模型的尺寸映射方法,首先將三維模型進行投影得到二維投影圖,然后將投影圖和二維工程圖轉化為一種擴展屬性圖結構進行二維圖元的精確匹配,最后將二維工程圖中的尺寸標注信息映射到三維CAD模型上,并且利用UG中PMI模塊的二次開發(fā)對映射結果進行顯示和驗證。
STEP(standard for the exchange of product model data)是三維CAD模型數(shù)據(jù)交換標準,多數(shù)三維CAD應用軟件都支持STEP文件,DXF是Autodesk公司開發(fā)的用于AutoCAD與其它軟件之間進行數(shù)據(jù)交換的CAD數(shù)據(jù)文件格式,是一種基于矢量的ASCII文本格式,易于讀取,并且對DXF文件的解析已經(jīng)有很成熟的研究,因此選取STEP格式的三維CAD模型和與之對應的DXF工程圖作為研究對象。
二維工程圖向三維CAD模型的尺寸映射算法總體思路如圖1所示。大體分為三維模型和二維工程圖預處理、圖元精確匹配、尺寸映射及其顯示。首先對輸入的三維CAD模型和與之對應的二維工程圖進行預處理得到相關的數(shù)據(jù)信息。
圖1 二維工程圖向三維CAD模型的尺寸映射算法總體思路
三維模型的預處理主要包括三維模型的讀取和二維投影圖的獲得。利用法國Matra Datavision公司開發(fā)的面向C++的開源庫OpenCASCADE(簡稱OCC)對三維模型進行讀取和投影。OCC可以對三維模型進行任意方向的投影,根據(jù)三維模型的建造和二維工程圖的特點,主要考慮對工程圖中的三視圖方向進行投影,另外在投影過程中記錄與投影圖圖元關聯(lián)的三維模型中的面信息(面的類型、基點、法矢信息)。
二維工程圖的預處理主要包括DXF的解析、視圖分割、尺寸與工程圖圖元的關聯(lián)信息等。對DXF的解析和二維工程圖的視圖分割相關研究已經(jīng)很成熟[4-5],就不再在贅述。通過解析DXF文件,直接得到的是工程圖中的圖元信息、尺寸標注的標注值和標位置信息,但尺寸的標注基準還不能直接得到。可以根據(jù)標注點的位置和DXF標注規(guī)則找到尺寸和圖元的關聯(lián)信息[6]。
通過三維模型和二維工程圖的預處理工作,可以得到三維模型的投影視圖和工程圖中的尺寸信息,并將投影視圖中的圖元和三維模型中的面關聯(lián)信息,以及工程圖中尺寸信息和二維圖元的關聯(lián)信息記錄下來,此時只要得到投影視圖中的圖元和二維工程圖中的圖元之間的對應關系,就能將二維尺寸信息和三維模型的面關聯(lián)起來,找到二維圖紙中的尺寸在三維模型中的標注基準,得到三維圖的標注類型、標注數(shù)值、標注面信息(基點、法矢等),然后利用UG中的PMI模塊直接將尺寸標注在三維模型上。該算法的關鍵點是將二維工程圖向三維模型的尺寸映射轉化為兩幅二維矢量圖(投影視圖和二維工程圖)之間的圖元精確匹配問題,可以利用圖匹配的方法解決。
由點集合V和點與點之間的連線集合E所組成的集合對(V,E)稱為圖,用G(V,E)來表示。V中的元素稱為結點,E中的元素稱為邊。結點集V與邊集合E均為有限的圖稱為有限圖。若各邊都有方向,則稱為有向圖;各邊都沒有方向的圖成為無向圖。圖的鄰接矩陣定義為:
設圖 G 有 n 個結點 v1,v2,...,vn,則令 A(G)=(aij)n×n,其中:
則稱由元素 ai,j(i,j=1,2,...,n)構成的一個n×n方陣A(G)為圖G的鄰接矩陣。
空間關系圖(Spatial relation graph,SRG)是一種集統(tǒng)計方法和結構方法于一體的用來描述模式的圖結構[7]。圖的結點表示圖形的組成元素,邊表示圖形元素之間的關系,同時對結點和邊賦予相應的屬性值來描述元素結構之外的模式特征。使用空間關系圖可以形象地描述復雜圖形對象模式的所有信息,包括結構信息和結構之外的統(tǒng)計模式信息。圖形的圖元構成是唯一的,利用圖元構成可以獲得二維圖紙的唯一表示,并建立圖形的空間關系特征。
工程圖是由若干圖元(線段、圓、圓弧等)構成的,通過擴展基本圖的屬性,二維工程圖對應的空間關系圖可以表示為四元組[8]即 G=(V,E,AV,AE),其中:V表示空間關系圖的結點集,即 V={V1,V2,...,Vn},n為結點(對應工程圖中的圖元)的個數(shù);E:V×V表示空間關系圖的邊集,即E={V1V1,V1V2,...,VnVn};AV表示空間關系圖中結點的屬性集合,即 AV={AV1,AV2,...,AVn},AVi表示第 i個結點的屬性,結點屬性反映圖元的基本屬性,如圖元的類型(直線、圓等),圖元的長度、角度等;AE表示空間關系圖中邊的屬性,即 AE={AE1,AE2,...,AEn},AEi表示第i條邊的屬性集,邊的屬性反映圖元之間的空間關系,如平行、垂直、相對距離、相對位置等。
限于篇幅這里將主要以基本圖元(線段、圓弧、圓)組成的二維工程圖為例介紹二維圖紙的空間關系圖表示及匹配算法。對于由基本圖元構成的工程圖,選取的結點屬性表示為 AVi={Lit,Lil,Lis},其中Lit表示第i個圖元的類型,Lil表示第i個圖元的長度(圖元類型為線段)或者半徑(圖元類型為圓或圓弧),Lis表示第i個圖元的斜率(對于圓或圓弧置為空)。
選取的邊屬性表示為 AE={Lij,DLij,Oij,Aij},i,j分別表示圖元的編號,其中:
DLij表示圖元間的相對長度鄰接矩陣,即為第i個圖元的長度或半徑與第j個圖元的長度或半徑之比;
Oij表示圖元間的位置關系鄰接矩陣,圖元i相對于圖元j的位置關系分為1-左上,2-上,3-右上,4-左,5-重合,6-右,7-左下,8-下,9-右下;
Aij表示圖元間夾角鄰接矩陣,如果是線段則直接計算夾角,如果涉及圓弧則選取圓心和兩圖元交點的連線進行相關計算。
按照上述空間關系圖的定義以及所選結點屬性、邊屬性的說明,由工程圖構建空間關系圖的步驟如下:
Step1遍歷工程圖中的每一個圖元,對應創(chuàng)建一個SRG圖結點,同時提取圖元的幾何屬性(類型、長度、半徑、斜率)作為其對應SRG圖的結點屬性;
Step2對工程圖中的每一對圖元,計算二者之間的距離、夾角、相對長度以及判斷二者的位置關系,作為其對應的SRG圖的邊屬性。
通過空間關系圖的表示方法,將三維模型的投影視圖表示為圖G1,將二維工程圖表示為G2,這樣就可以將兩幅工程圖之間的圖元精確匹配問題轉化為空間關系圖G1和G2之間的結點匹配問題。圖匹配問題的相關研究很多,但大都是判斷兩個圖的相似性或者子圖同構問題,大多數(shù)算法都是NP問題,不能夠在多項式時間內(nèi)求解[9]。將問題抽象為在兩幅相同的圖中找出相對應的結點對,而且這里的空間關系圖是由工程圖生成的一種特定的擴展屬性圖,因此設計算法時,可以充分利用工程圖的特點,設計高效的匹配算法。
對于圖匹配問題,分為兩部分:結點屬性匹配和空間結構匹配。設G1中的結點V1和G2中的結點V2,如果V1、V2的結點屬性相同,并且鄰接邊的數(shù)目也相同,則進行空間結構匹配;對于空間結構匹配,如果屬性相同的鄰接邊數(shù)目超過一個閾值,則這兩個結點匹配。經(jīng)過大量的實驗,權衡效率和準確性,這里選取的閾值為鄰接邊數(shù)目的2/3,即如果V1、V2屬性相同的鄰接邊數(shù)目大于鄰接邊總數(shù)目的2/3,則這兩個結點的空間結構匹配。所以具體匹配算法如下:
Step1對G1中的結點Vi,遍歷G2的結點Vj,如果Vj尚未匹配成功并且二者結點屬性(Lit,Lil,Lis)相同,則進行step2;
Step2判斷Vi和Vj的鄰接邊數(shù)目是否相同,如果相同,設為k,并進行step3;
Step3遍歷Vi和Vj的鄰接邊,如果邊屬性(Lit,DLil,Oij,Aij)相同,則計數(shù)器 p 加 1;
Step4如果p>k*2/3,則Vi和Vj相匹配,將 Vi和Vj輸出到匹配結果集合Vm中,并且標記Vj成功匹配;
Step5循環(huán)上述step1-step4,直至處理完畢G1中的每一個結點。
具體匹配算法偽代碼如下:
為了進一步提高算法的效率和可靠性,從尺寸標注自身特點出發(fā),對算法進行改進。對于常見的二維尺寸可以分為總體尺寸、定形尺寸、定位尺寸。在CAD領域中,零件的底面、重要端面、對稱平面以及回轉體的軸線等特征通常作為尺寸基準。通過分析大量的工程圖紙,發(fā)現(xiàn)零件底面和柱面的軸線是最為常見的尺寸基準,如對于軸類零件,軸線是一個很明顯的尺寸基準,對于箱體零件和軸座類零件,一般都會以底面作為基準進行總體尺寸和定位尺寸的標注,而且對STEP模型中的端面和軸線的提取也相對容易。另外,三維模型中大量存在孔系、軸系等,表現(xiàn)在工程圖上就是孤立的圓,轉化為SRG圖會出現(xiàn)大量的孤立結點,單獨對這些孤立結點進行匹配相對容易。
因此可以首先對容易找到基準的總體尺寸、定形尺寸進行粗略匹配映射,然后處理相對復雜的定位尺寸。進行圖元匹配的時候,優(yōu)先匹配孤立結點,然后在SRG圖中剔除優(yōu)先匹配成功的結點,對剩余的結點利用表1的精確匹配算法進行匹配,這樣可以很大程度的提高圖匹配效率和尺寸映射的準確性。
作者在Visual studio 2008和OCC平臺下實現(xiàn)了該算法,并且在UG NX6.0下利用PMI模塊的二次開發(fā)實現(xiàn)了將二維工程圖中的尺寸直接在三維CAD模型上的標注,并對所提算法結果進行了驗證。圖2所示為一個傳動軸的尺寸映射結果,輸入軸的二維工程圖(a)和三維模型(b),通過該算法實現(xiàn)了將二維工程圖上的尺寸信息向三維CAD模型的映射,并在UG環(huán)境中進行了結果顯示(c)。實驗結果表明,該算法可以很好的實現(xiàn)二維工程圖向三維CAD模型的尺寸映射,有效提高了在三維模型上標注尺寸的效率。
以往的相關研究都是在三維模型下通過投影變化自動得到二維工程圖或者通過二維工程圖重建出對應的三維模型,這些研究都是利用單一數(shù)據(jù)源得到另一種數(shù)據(jù)表示形式,并沒有解決二維工程圖和三維CAD模型之間存在的數(shù)據(jù)孤島問題。本文提出的算法有效的將工程圖中的非幾何信息和三維CAD模型中的幾何信息關聯(lián)起來,很好的實現(xiàn)了二維工程圖向三維CAD模型的尺寸映射,解決了企業(yè)中大量存在的工程圖和三維模型之間的數(shù)據(jù)共享問題,為MBD(基于模型的產(chǎn)品定義)技術奠定了堅實基礎。
作者只是解決了三視圖中的尺寸信息向三維CAD模型的映射,對工程圖中存在的剖視圖、局部視圖等并未涉及,另外對于工程圖中的粗糙度、形位公差和技術要求等語義信息并未處理,以及圖元精確匹配算法的效率和準確度提高都是作者以后的研究方向。
圖2 某傳動軸的尺寸映射結果
[1] 周秋忠,查浩宇.基于三維標注技術的數(shù)字化產(chǎn)品定義方法[J].機械設計,2011,28(1):33-36.
[2] Virgilio Quintana,Louis Rivest,Robert Pellerin,et al.Will Model-based Definition replace engineering drawings throughout the product lifecycle?A global perspective from aerospace industry[J].Computers in Industry,2010(61):497-508.
[3] 陳雪頌.基于三維模型的二、三維一體化技術研究[D].浙江:浙江大學,2004.
[4] 王子茹,任清波.基于VC++的DXF數(shù)據(jù)文件接口的研究[J].廈門理工學院學報,2005,15(1):26-30.
[5] 武丹,王琰,祁燕.基于DXF文件的工程圖中多視圖的視圖分離方法[J].沈陽理工大學學報,2007(12):8-10.
[6] 吳宗諭.結合STL三角網(wǎng)格與DXF公差資訊之電腦輔助檢測技術系統(tǒng)發(fā)展[D].臺灣:國立中央大學,2005.
[7] NabilM,Ngu AHH,Shepherd J.Picture similarity retrieval using the 2D projection interval representation[J].IEEE Transactions Knowledge and Data Engineering,1996,8(4):533-539.
[8] 周良.基于內(nèi)容的工程圖檔檢索及其關鍵技術研究[D].南京:南京航空航天大學,2008.
[9] 王飛,張樹生,白曉亮,等.基于子圖同構的三維CAD模型局部匹配[J].計算機輔助設計與圖形學報,2008,20(8):1079-1084.