鄭 旺,張樹生,張孝龍
(西北工業(yè)大學(xué)現(xiàn)代設(shè)計與集成制造技術(shù)教育部重點實驗室,西安 710072)
隨著信息化建設(shè)的不斷深入和三維CAD 技術(shù)的成熟和普及,數(shù)字化產(chǎn)品定義經(jīng)歷了二維工程圖、二維工程圖加三維模型、三維模型加簡化標(biāo)注的二維圖紙三個階段[1]。MBD 集成的三維模型完整表達了產(chǎn)品定義信息的方法,詳細(xì)規(guī)定了三維數(shù)模中產(chǎn)品尺寸、公差的標(biāo)注規(guī)則和工藝信息的表達方法[2]。當(dāng)前,國外航空業(yè)已經(jīng)在逐步向全三維數(shù)字化定義轉(zhuǎn)變。在國內(nèi)的制造環(huán)境中,在數(shù)字化定義的內(nèi)容上仍處在三維模型與工程圖共存的狀態(tài)。其存在的問題之一是:企業(yè)仍以二維工程圖作為指導(dǎo)生產(chǎn)的依據(jù),因而積累了大量電子三維模型(只有幾何信息)及匹配的二維工程圖(包含幾何和非幾何信息)的模型庫。要將這些三維模型進行三維標(biāo)注需要人工交互的方式,這使得標(biāo)注的智能化和標(biāo)準(zhǔn)化程度較低,進而影響了CAD 技術(shù)的發(fā)展。因此,要想將三維模型當(dāng)做傳遞設(shè)計信息的唯一載體,必須解決尺寸公差、表面粗糙度、表面處理方法等非幾何制造信息在三維模型中的組織、表達與顯示問題。
另外在新產(chǎn)品的設(shè)計過程中,為了縮短產(chǎn)品生產(chǎn)周期、降低產(chǎn)品成本以增強市場競爭能力、提高企業(yè)相應(yīng)的加工設(shè)備利用率、保證產(chǎn)品的質(zhì)量,設(shè)計人員常常需要參考企業(yè)內(nèi)部已有的CAD 模型,從而進行快速的相似性設(shè)計和改型設(shè)計,以提高設(shè)計效率[3]。基于內(nèi)容的CAD 模型檢索可以幫助設(shè)計人員在海量的CAD 模型中準(zhǔn)確地找到能夠滿足或基本滿足新要求的模型并加以重用。未來三維CAD模型語義檢索研究和發(fā)展的方向是如何實現(xiàn)基于MBD 技術(shù)的語義檢索,如何將公差等非幾何制造信息集成到三維模型檢索系統(tǒng)上去。針對這一問題,通過工程圖標(biāo)注映射技術(shù),工廠可以根據(jù)已有工程圖快速建立有尺寸公差約束的三維CAD 模型庫,為后續(xù)的模型檢索及設(shè)計重用提供便利,并啟發(fā)基于尺寸約束的三維CAD 模型檢索的研究。
基于以上兩點內(nèi)容,結(jié)合陶俊、唐啟亮[4-5]對工程圖線性標(biāo)注、直徑/半徑標(biāo)注、角度標(biāo)注等基本幾何信息與三維CAD 模型的映射技術(shù)做出的大量研究,提出了一種將形位公差、粗糙度等非幾何信息從二維工程圖上映射到三維模型中的方法,研究具有較廣泛的應(yīng)用前景。
二維工程圖標(biāo)注向三維CAD 模型映射的總體思路采用五層映射方法,如圖1 所示。
圖1 總體思路示意圖
五層映射方法的具體內(nèi)容是:
第一層:二維工程圖圖元與標(biāo)注的映射;
第二層:三維CAD 模型平面與三維CAD 投影圖的映射;
第三層:二維工程圖圖元與三維CAD 投影圖圖元的映射;
第四層:二維工程圖圖元與三維CAD 模型的映射;
第五層:二維工程圖標(biāo)注和三維CAD 模型相關(guān)標(biāo)注平面的映射。
法國Matra Datavision 公司開發(fā)的面向C ++的開源庫OpenCASCADE(簡稱OCC)對三維模型進行讀取和投影。OCC 可以對三維模型進行任意方向的投影。根據(jù)三維模型的建造和二維工程圖的特點,主要考慮對工程圖中的三視圖方向進行投影,另外在投影過程中會記錄與投影圖圖元關(guān)聯(lián)的三維模型中的面信息(面的類型、基點、法矢信息),這就保證了圖1 中第二層映射的實現(xiàn)。
因此,工程圖形位公差和粗糙度標(biāo)注映射技術(shù)的關(guān)鍵是,基于DXF的形位公差和粗糙度提取,形位公差和粗糙度與圖元的關(guān)聯(lián),工程圖和三維模型投影視圖的精確匹配。
中性文件DXF(Drawing Exchange Format)是美國Autodesk 公司制定并首先用于AutoCAD的圖形交換文件格式,它是一種基于矢量的ASCII 格式,用于外部程序和圖形系統(tǒng)或不同的圖形系統(tǒng)之間交換圖形信息。由于它結(jié)構(gòu)簡單、可讀性好,易于被其他程序處理,因此已是事實上的工業(yè)標(biāo)準(zhǔn)。目前,絕大多數(shù)CAD 系統(tǒng)都能讀入或輸出DXF 文件。
DXF 文件的最小構(gòu)成單元稱做一個組,每組占兩行,兩行分別為組代碼和組值。一個完整的DXF文件由六個段(SECTION)和一個文件結(jié)束標(biāo)志組成,每個段都以組“0 SECTION”開始,以組“0 ENDSEC”結(jié)束。
形位公差分為形狀公差和位置公差,主要包括直線度、平面度、圓度、圓柱度、垂直度、傾斜度、位置度、同軸度、對稱度、跳動等。所有的形位公差都位于DXF 文件的實體段(ENTITIES)中,組碼為0,組值為TOLERANCE,它們的區(qū)分是以Fgdt為標(biāo)記后的一個代碼來表示。例如,直線度在DXF 文件中用Fgdt:u 表示;同軸度用Fgdt:r 表示。DXF 文件中形位公差信息的讀取流程圖如圖2(a)所示。
粗糙度由直線和直線,或是圓和直線所組成,另外通常在粗糙度符號的周圍有標(biāo)注字符信息。記直線式粗糙度中最長的直線為L1,記與L1相連較短的直線為L2,記第三條線為L3,依照粗糙度符號的角度和長度等參數(shù),遍歷DXF 文件的直線集合,通過基于粗糙度知識的判據(jù)篩選,實現(xiàn)粗糙度的提取和分類。具體提取流程圖如圖2(b)所示。
圖2 基于DXF的形位公差和粗糙度的提取流程
如圖3 所示,把粗糙度依次分為基本粗糙度、直線粗糙度、圓形粗糙度。
圖3 三種粗糙度符號表示
雖然通過解析DXF 文件可以得到形位公差和粗糙度單元插入點的坐標(biāo)信息、公差內(nèi)容、粗糙度值等,但標(biāo)注單元和二維工程圖中的圖元是孤立存在的,它們之間還無法建立起關(guān)聯(lián),所以需要分析工程圖中的標(biāo)注特點,進行形位公差和粗糙度和二維圖元之間的關(guān)聯(lián)處理。
如圖4 中的形位公差,已獲得公差標(biāo)注的插入點信息,因此它跟工程圖圖元的關(guān)聯(lián)可以通過引出線來搭橋。通常,在DXF 文件中,一條引出線可以由三個點來描述,如圖4 中的A、B、C 三點。
(1)形位公差與工程圖圖元關(guān)聯(lián)的具體步驟如下:
a)遍歷搜索工程圖所有的形位公差,并記錄插入點信息;
b)遍歷搜索DXF的所有引出線圖元,如果有某條引出線的一個點與形位公差的插入點重合,記錄下這條引出線;
c)遍歷搜索DXF的所有直線圖元,若步驟2 中記錄引出線的一個點在該直線上時,記錄下來這條直線圖元的信息;
d)從容器中依次讀出步驟1 記錄的形位公差信息和步驟c)記錄的直線圖元信息,保存關(guān)聯(lián)結(jié)果并存儲;
e)進行下一個形位公差判斷,直到遍歷完成。
圖4 形位公差與圖元關(guān)聯(lián)示意圖
(2)粗糙度與工程圖圖元關(guān)聯(lián)的具體步驟如下:
a)遍歷搜索工程圖所有的粗糙度,并記錄插入點信息;
b)遍歷搜索DXF的所有直線圖元,若粗糙度的插入點在該直線上時,記錄下來這條直線圖元的信息;
c)從容器中依次讀出步驟a)記錄的粗糙度信息和步驟b)記錄的直線圖元信息,保存關(guān)聯(lián)結(jié)果并存儲;
d)進行下一個粗糙度判斷,直到遍歷完成。
由于在制圖過程中存在一些很微小的位置偏差,因此,判斷點是否在直線上,可以轉(zhuǎn)化為判斷該點到直線兩端點距離之和是否等于直線長度;判斷兩個點是否重合,可以轉(zhuǎn)化為判斷兩點的距離是否小于一個閾值。
二維工程圖和三維CAD 模型投影圖通過構(gòu)建各自空間關(guān)系圖進行精確匹配[6]。
工程圖與投影圖可以分解為若干圖元,如線段、圓、圓弧、曲線等。它們由若干基本圖元(線段、圓、圓弧等)所構(gòu)成,通過擴展基本圖的屬性,二維工程圖對應(yīng)的空間關(guān)系圖可以表示為四元組即G=(V,E,AV,AE)。
其中:V 表示空間關(guān)系圖的結(jié)點集,即V={V1,V2,...,Vn},n為結(jié)點的個數(shù),等于工程圖中基本圖元的數(shù)目;E:V ×V 表示空間關(guān)系圖的邊集,即E={V1V1,V1V2,...,VnVn};AV 表示空間關(guān)系圖中結(jié)點的屬性集合,即AV={AV1,AV2,...,AVn},AVi表示圖中第i個結(jié)點的屬性,結(jié)點屬性反映了工程圖中圖元的基本屬性,如圖元的類型(線段、圓、圓弧等),圖元的長度、角度等;AE 表示空間關(guān)系圖中邊的屬性,即AE={AE1,AE2,...,AEn},AEi表示空間關(guān)系圖中第i 條邊的屬性集,邊的屬性反映二維工程圖中圖元之間的空間關(guān)系,如平行、垂直、相對距離、相對位置等。
對于圖匹配問題,分為兩部分:結(jié)點屬性匹配和空間結(jié)構(gòu)匹配。設(shè)G1 中的結(jié)點V1 和G2 中的結(jié)點V2,如果V1、V2的結(jié)點屬性相同,并且鄰接邊的數(shù)目也相同,則進行空間結(jié)構(gòu)匹配;對于空間結(jié)構(gòu)匹配,如果屬性相同的鄰接邊數(shù)目超過一個閾值,則這兩個結(jié)點匹配。經(jīng)過大量的實驗,權(quán)衡效率和準(zhǔn)確性,這里選取的閾值為鄰接邊數(shù)目的2/3,即如果V1、V2 屬性相同的鄰接邊數(shù)目大于鄰接邊總數(shù)目的2/3,則這兩個結(jié)點的空間結(jié)構(gòu)匹配。所以具體匹配算法如下:
a)對G1 中的結(jié)點Vi,遍歷G2的結(jié)點Vj,如果Vj尚未匹配成功并且二者結(jié)點屬性AV相同,則進行步驟b);
b)判斷Vi和Vj的鄰接邊數(shù)目是否相同,如果相同,設(shè)為k,并進行步驟c);
c)遍歷Vi和Vj的鄰接邊,如果邊屬性AE相同,則計數(shù)器p 加1;
d)如果p >k*2/3,則Vi和Vj相匹配,將Vi和Vj輸出到匹配結(jié)果集合Vm中,并且標(biāo)記Vj成功匹配;
e)循環(huán)上述步驟a)-d),直至處理完畢G1 中的每一個結(jié)點。
以Microsoft Visual Studio 2008為集成開發(fā)環(huán)境,OpenCascade為三維模型投影成二維視圖內(nèi)核,UG NX 6.0為三維模型平臺,對標(biāo)注映射算法進行了驗證。
以圖5(a)所示二維工程圖和所對應(yīng)的三維CAD 模型圖5(b)為例,說明工程圖形位公差和粗糙度標(biāo)注映射過程。
圖5 工程圖向三維模型標(biāo)注映射系統(tǒng)的輸入
a)讀取DXF 文件,獲得圖5(a)中的所有圖元 集合,即:
其中iDxf iTolerance iRoughness 分別表示直線圖元,形位公差圖元和粗糙度圖元在各自容器中的序號。
b)對三維模型進行六個方向的投影,得到六個投影視圖與二維工程圖比較,假設(shè)找到與當(dāng)前二維工程圖匹配的投影視圖A,通過OCC 獲得投影視圖A 中圖元和三維CAD 模型平面的映射。
c)構(gòu)建工程圖和三維模型投影視圖A的空間關(guān)系圖Gdxf 和Gstep,由上文3.3 節(jié)所示步驟,得到二者的匹配結(jié)果Matchresult{iDxf,jStep}。
其中jStep為與工程圖的空間關(guān)系圖標(biāo)號為i的結(jié)點相匹配的投影視圖A的空間關(guān)系圖結(jié)點。
d)通過步驟a)-c),輸出二維工程圖形位公差和粗糙度與三維CAD 模型平面的關(guān)聯(lián)文本。利用UG/Open API 中的尺寸標(biāo)注和顯示函數(shù),讀取前面生成的關(guān)聯(lián)文件,將二維標(biāo)注在三維CAD 模型上進行標(biāo)注和顯示。
標(biāo)注映射結(jié)果在UG 環(huán)境中顯示如圖6 所示。實驗結(jié)果表明,該算法可以很好的實現(xiàn)二維工程圖向三維CAD 模型的標(biāo)注映射,有效提高了在三維模型上標(biāo)注尺寸、公差、粗糙度的效率。
為將原來分離存在的三維CAD 模型和二維工程圖轉(zhuǎn)化為單一的具有三維尺寸標(biāo)注的CAD 模型,針對工程圖中的形位公差和粗糙度,提出一種基于空間關(guān)系圖匹配的標(biāo)注映射算法。實驗結(jié)果表明,該算法可以很好的實現(xiàn)工程圖形位公差和粗糙度向三維CAD 模型的標(biāo)注映射。
圖6 工程圖標(biāo)注映射結(jié)果
在下一階段的研究中,針對三維模型投影視圖多義線的問題,將對現(xiàn)有的基于空間關(guān)系圖的匹配算法進行改進,使其能夠?qū)崿F(xiàn)更準(zhǔn)確的二維工程圖圖元和三維CAD 投影視圖圖元的匹配。
[1]周秋忠,查浩宇.基于三維標(biāo)注技術(shù)的數(shù)字化產(chǎn)品定義方法[J].機械設(shè)計,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,6(61):497-508.
[3]王飛,張樹生,白曉亮,陳書瓊.基于子圖同構(gòu)的三維CAD 模型局部匹配[J].計算機輔助設(shè)計與圖形學(xué)報,2008,20(8):1079-1084.
[4]陶俊,張樹生,唐啟亮.基于MBD的二維工程圖向三維模型的尺寸映射算法[J].航空制造技術(shù),2012(4):73-76.
[5]唐啟亮,張樹生,陶俊.一種二維工程圖向三維模型的尺寸映射算法[J].微處理機,2012(5):39-43.
[6]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.