鄭 旺,張樹(shù)生,張孝龍
(西北工業(yè)大學(xué)現(xiàn)代設(shè)計(jì)與集成制造技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,西安 710072)
隨著信息化建設(shè)的不斷深入和三維CAD 技術(shù)的成熟和普及,數(shù)字化產(chǎn)品定義經(jīng)歷了二維工程圖、二維工程圖加三維模型、三維模型加簡(jiǎn)化標(biāo)注的二維圖紙三個(gè)階段[1]。MBD 集成的三維模型完整表達(dá)了產(chǎn)品定義信息的方法,詳細(xì)規(guī)定了三維數(shù)模中產(chǎn)品尺寸、公差的標(biāo)注規(guī)則和工藝信息的表達(dá)方法[2]。當(dāng)前,國(guó)外航空業(yè)已經(jīng)在逐步向全三維數(shù)字化定義轉(zhuǎn)變。在國(guó)內(nèi)的制造環(huán)境中,在數(shù)字化定義的內(nèi)容上仍處在三維模型與工程圖共存的狀態(tài)。其存在的問(wèn)題之一是:企業(yè)仍以二維工程圖作為指導(dǎo)生產(chǎn)的依據(jù),因而積累了大量電子三維模型(只有幾何信息)及匹配的二維工程圖(包含幾何和非幾何信息)的模型庫(kù)。要將這些三維模型進(jìn)行三維標(biāo)注需要人工交互的方式,這使得標(biāo)注的智能化和標(biāo)準(zhǔn)化程度較低,進(jìn)而影響了CAD 技術(shù)的發(fā)展。因此,要想將三維模型當(dāng)做傳遞設(shè)計(jì)信息的唯一載體,必須解決尺寸公差、表面粗糙度、表面處理方法等非幾何制造信息在三維模型中的組織、表達(dá)與顯示問(wèn)題。
另外在新產(chǎn)品的設(shè)計(jì)過(guò)程中,為了縮短產(chǎn)品生產(chǎn)周期、降低產(chǎn)品成本以增強(qiáng)市場(chǎng)競(jìng)爭(zhēng)能力、提高企業(yè)相應(yīng)的加工設(shè)備利用率、保證產(chǎn)品的質(zhì)量,設(shè)計(jì)人員常常需要參考企業(yè)內(nèi)部已有的CAD 模型,從而進(jìn)行快速的相似性設(shè)計(jì)和改型設(shè)計(jì),以提高設(shè)計(jì)效率[3]。基于內(nèi)容的CAD 模型檢索可以幫助設(shè)計(jì)人員在海量的CAD 模型中準(zhǔn)確地找到能夠滿足或基本滿足新要求的模型并加以重用。未來(lái)三維CAD模型語(yǔ)義檢索研究和發(fā)展的方向是如何實(shí)現(xiàn)基于MBD 技術(shù)的語(yǔ)義檢索,如何將公差等非幾何制造信息集成到三維模型檢索系統(tǒng)上去。針對(duì)這一問(wèn)題,通過(guò)工程圖標(biāo)注映射技術(shù),工廠可以根據(jù)已有工程圖快速建立有尺寸公差約束的三維CAD 模型庫(kù),為后續(xù)的模型檢索及設(shè)計(jì)重用提供便利,并啟發(fā)基于尺寸約束的三維CAD 模型檢索的研究。
基于以上兩點(diǎn)內(nèi)容,結(jié)合陶俊、唐啟亮[4-5]對(duì)工程圖線性標(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)注平面的映射。
法國(guó)Matra Datavision 公司開(kāi)發(fā)的面向C ++的開(kāi)源庫(kù)OpenCASCADE(簡(jiǎn)稱OCC)對(duì)三維模型進(jìn)行讀取和投影。OCC 可以對(duì)三維模型進(jìn)行任意方向的投影。根據(jù)三維模型的建造和二維工程圖的特點(diǎn),主要考慮對(duì)工程圖中的三視圖方向進(jìn)行投影,另外在投影過(guò)程中會(huì)記錄與投影圖圖元關(guān)聯(lián)的三維模型中的面信息(面的類(lèi)型、基點(diǎn)、法矢信息),這就保證了圖1 中第二層映射的實(shí)現(xiàn)。
因此,工程圖形位公差和粗糙度標(biāo)注映射技術(shù)的關(guān)鍵是,基于DXF的形位公差和粗糙度提取,形位公差和粗糙度與圖元的關(guān)聯(lián),工程圖和三維模型投影視圖的精確匹配。
中性文件DXF(Drawing Exchange Format)是美國(guó)Autodesk 公司制定并首先用于AutoCAD的圖形交換文件格式,它是一種基于矢量的ASCII 格式,用于外部程序和圖形系統(tǒng)或不同的圖形系統(tǒng)之間交換圖形信息。由于它結(jié)構(gòu)簡(jiǎn)單、可讀性好,易于被其他程序處理,因此已是事實(shí)上的工業(yè)標(biāo)準(zhǔn)。目前,絕大多數(shù)CAD 系統(tǒng)都能讀入或輸出DXF 文件。
DXF 文件的最小構(gòu)成單元稱做一個(gè)組,每組占兩行,兩行分別為組代碼和組值。一個(gè)完整的DXF文件由六個(gè)段(SECTION)和一個(gè)文件結(jié)束標(biāo)志組成,每個(gè)段都以組“0 SECTION”開(kāi)始,以組“0 ENDSEC”結(jié)束。
形位公差分為形狀公差和位置公差,主要包括直線度、平面度、圓度、圓柱度、垂直度、傾斜度、位置度、同軸度、對(duì)稱度、跳動(dòng)等。所有的形位公差都位于DXF 文件的實(shí)體段(ENTITIES)中,組碼為0,組值為T(mén)OLERANCE,它們的區(qū)分是以Fgdt為標(biāo)記后的一個(gè)代碼來(lái)表示。例如,直線度在DXF 文件中用Fgdt:u 表示;同軸度用Fgdt:r 表示。DXF 文件中形位公差信息的讀取流程圖如圖2(a)所示。
粗糙度由直線和直線,或是圓和直線所組成,另外通常在粗糙度符號(hào)的周?chē)袠?biāo)注字符信息。記直線式粗糙度中最長(zhǎng)的直線為L(zhǎng)1,記與L1相連較短的直線為L(zhǎng)2,記第三條線為L(zhǎng)3,依照粗糙度符號(hào)的角度和長(zhǎng)度等參數(shù),遍歷DXF 文件的直線集合,通過(guò)基于粗糙度知識(shí)的判據(jù)篩選,實(shí)現(xiàn)粗糙度的提取和分類(lèi)。具體提取流程圖如圖2(b)所示。

圖2 基于DXF的形位公差和粗糙度的提取流程
如圖3 所示,把粗糙度依次分為基本粗糙度、直線粗糙度、圓形粗糙度。

圖3 三種粗糙度符號(hào)表示
雖然通過(guò)解析DXF 文件可以得到形位公差和粗糙度單元插入點(diǎn)的坐標(biāo)信息、公差內(nèi)容、粗糙度值等,但標(biāo)注單元和二維工程圖中的圖元是孤立存在的,它們之間還無(wú)法建立起關(guān)聯(lián),所以需要分析工程圖中的標(biāo)注特點(diǎn),進(jìn)行形位公差和粗糙度和二維圖元之間的關(guān)聯(lián)處理。
如圖4 中的形位公差,已獲得公差標(biāo)注的插入點(diǎn)信息,因此它跟工程圖圖元的關(guān)聯(lián)可以通過(guò)引出線來(lái)搭橋。通常,在DXF 文件中,一條引出線可以由三個(gè)點(diǎn)來(lái)描述,如圖4 中的A、B、C 三點(diǎn)。
(1)形位公差與工程圖圖元關(guān)聯(lián)的具體步驟如下:
a)遍歷搜索工程圖所有的形位公差,并記錄插入點(diǎn)信息;
b)遍歷搜索DXF的所有引出線圖元,如果有某條引出線的一個(gè)點(diǎn)與形位公差的插入點(diǎn)重合,記錄下這條引出線;
c)遍歷搜索DXF的所有直線圖元,若步驟2 中記錄引出線的一個(gè)點(diǎn)在該直線上時(shí),記錄下來(lái)這條直線圖元的信息;
d)從容器中依次讀出步驟1 記錄的形位公差信息和步驟c)記錄的直線圖元信息,保存關(guān)聯(lián)結(jié)果并存儲(chǔ);
e)進(jìn)行下一個(gè)形位公差判斷,直到遍歷完成。

圖4 形位公差與圖元關(guān)聯(lián)示意圖
(2)粗糙度與工程圖圖元關(guān)聯(lián)的具體步驟如下:
a)遍歷搜索工程圖所有的粗糙度,并記錄插入點(diǎn)信息;
b)遍歷搜索DXF的所有直線圖元,若粗糙度的插入點(diǎn)在該直線上時(shí),記錄下來(lái)這條直線圖元的信息;
c)從容器中依次讀出步驟a)記錄的粗糙度信息和步驟b)記錄的直線圖元信息,保存關(guān)聯(lián)結(jié)果并存儲(chǔ);
d)進(jìn)行下一個(gè)粗糙度判斷,直到遍歷完成。
由于在制圖過(guò)程中存在一些很微小的位置偏差,因此,判斷點(diǎn)是否在直線上,可以轉(zhuǎn)化為判斷該點(diǎn)到直線兩端點(diǎn)距離之和是否等于直線長(zhǎng)度;判斷兩個(gè)點(diǎn)是否重合,可以轉(zhuǎn)化為判斷兩點(diǎn)的距離是否小于一個(gè)閾值。
二維工程圖和三維CAD 模型投影圖通過(guò)構(gòu)建各自空間關(guān)系圖進(jìn)行精確匹配[6]。
工程圖與投影圖可以分解為若干圖元,如線段、圓、圓弧、曲線等。它們由若干基本圖元(線段、圓、圓弧等)所構(gòu)成,通過(guò)擴(kuò)展基本圖的屬性,二維工程圖對(duì)應(yīng)的空間關(guān)系圖可以表示為四元組即G=(V,E,AV,AE)。
其中:V 表示空間關(guān)系圖的結(jié)點(diǎn)集,即V={V1,V2,...,Vn},n為結(jié)點(diǎn)的個(gè)數(shù),等于工程圖中基本圖元的數(shù)目;E:V ×V 表示空間關(guān)系圖的邊集,即E={V1V1,V1V2,...,VnVn};AV 表示空間關(guān)系圖中結(jié)點(diǎn)的屬性集合,即AV={AV1,AV2,...,AVn},AVi表示圖中第i個(gè)結(jié)點(diǎn)的屬性,結(jié)點(diǎn)屬性反映了工程圖中圖元的基本屬性,如圖元的類(lèi)型(線段、圓、圓弧等),圖元的長(zhǎng)度、角度等;AE 表示空間關(guān)系圖中邊的屬性,即AE={AE1,AE2,...,AEn},AEi表示空間關(guān)系圖中第i 條邊的屬性集,邊的屬性反映二維工程圖中圖元之間的空間關(guān)系,如平行、垂直、相對(duì)距離、相對(duì)位置等。
對(duì)于圖匹配問(wèn)題,分為兩部分:結(jié)點(diǎn)屬性匹配和空間結(jié)構(gòu)匹配。設(shè)G1 中的結(jié)點(diǎn)V1 和G2 中的結(jié)點(diǎn)V2,如果V1、V2的結(jié)點(diǎn)屬性相同,并且鄰接邊的數(shù)目也相同,則進(jìn)行空間結(jié)構(gòu)匹配;對(duì)于空間結(jié)構(gòu)匹配,如果屬性相同的鄰接邊數(shù)目超過(guò)一個(gè)閾值,則這兩個(gè)結(jié)點(diǎn)匹配。經(jīng)過(guò)大量的實(shí)驗(yàn),權(quán)衡效率和準(zhǔn)確性,這里選取的閾值為鄰接邊數(shù)目的2/3,即如果V1、V2 屬性相同的鄰接邊數(shù)目大于鄰接邊總數(shù)目的2/3,則這兩個(gè)結(jié)點(diǎn)的空間結(jié)構(gòu)匹配。所以具體匹配算法如下:
a)對(duì)G1 中的結(jié)點(diǎn)Vi,遍歷G2的結(jié)點(diǎn)Vj,如果Vj尚未匹配成功并且二者結(jié)點(diǎn)屬性AV相同,則進(jìn)行步驟b);
b)判斷Vi和Vj的鄰接邊數(shù)目是否相同,如果相同,設(shè)為k,并進(jìn)行步驟c);
c)遍歷Vi和Vj的鄰接邊,如果邊屬性AE相同,則計(jì)數(shù)器p 加1;
d)如果p >k*2/3,則Vi和Vj相匹配,將Vi和Vj輸出到匹配結(jié)果集合Vm中,并且標(biāo)記Vj成功匹配;
e)循環(huán)上述步驟a)-d),直至處理完畢G1 中的每一個(gè)結(jié)點(diǎn)。
以Microsoft Visual Studio 2008為集成開(kāi)發(fā)環(huán)境,OpenCascade為三維模型投影成二維視圖內(nèi)核,UG NX 6.0為三維模型平臺(tái),對(duì)標(biāo)注映射算法進(jìn)行了驗(yàn)證。
以圖5(a)所示二維工程圖和所對(duì)應(yīng)的三維CAD 模型圖5(b)為例,說(shuō)明工程圖形位公差和粗糙度標(biāo)注映射過(guò)程。

圖5 工程圖向三維模型標(biāo)注映射系統(tǒng)的輸入
a)讀取DXF 文件,獲得圖5(a)中的所有圖元 集合,即:

其中iDxf iTolerance iRoughness 分別表示直線圖元,形位公差圖元和粗糙度圖元在各自容器中的序號(hào)。
b)對(duì)三維模型進(jìn)行六個(gè)方向的投影,得到六個(gè)投影視圖與二維工程圖比較,假設(shè)找到與當(dāng)前二維工程圖匹配的投影視圖A,通過(guò)OCC 獲得投影視圖A 中圖元和三維CAD 模型平面的映射。
c)構(gòu)建工程圖和三維模型投影視圖A的空間關(guān)系圖Gdxf 和Gstep,由上文3.3 節(jié)所示步驟,得到二者的匹配結(jié)果Matchresult{iDxf,jStep}。
其中jStep為與工程圖的空間關(guān)系圖標(biāo)號(hào)為i的結(jié)點(diǎn)相匹配的投影視圖A的空間關(guān)系圖結(jié)點(diǎn)。
d)通過(guò)步驟a)-c),輸出二維工程圖形位公差和粗糙度與三維CAD 模型平面的關(guān)聯(lián)文本。利用UG/Open API 中的尺寸標(biāo)注和顯示函數(shù),讀取前面生成的關(guān)聯(lián)文件,將二維標(biāo)注在三維CAD 模型上進(jìn)行標(biāo)注和顯示。
標(biāo)注映射結(jié)果在UG 環(huán)境中顯示如圖6 所示。實(shí)驗(yàn)結(jié)果表明,該算法可以很好的實(shí)現(xiàn)二維工程圖向三維CAD 模型的標(biāo)注映射,有效提高了在三維模型上標(biāo)注尺寸、公差、粗糙度的效率。
為將原來(lái)分離存在的三維CAD 模型和二維工程圖轉(zhuǎn)化為單一的具有三維尺寸標(biāo)注的CAD 模型,針對(duì)工程圖中的形位公差和粗糙度,提出一種基于空間關(guān)系圖匹配的標(biāo)注映射算法。實(shí)驗(yàn)結(jié)果表明,該算法可以很好的實(shí)現(xiàn)工程圖形位公差和粗糙度向三維CAD 模型的標(biāo)注映射。

圖6 工程圖標(biāo)注映射結(jié)果
在下一階段的研究中,針對(duì)三維模型投影視圖多義線的問(wèn)題,將對(duì)現(xiàn)有的基于空間關(guān)系圖的匹配算法進(jìn)行改進(jìn),使其能夠?qū)崿F(xiàn)更準(zhǔn)確的二維工程圖圖元和三維CAD 投影視圖圖元的匹配。
[1]周秋忠,查浩宇.基于三維標(biāo)注技術(shù)的數(shù)字化產(chǎn)品定義方法[J].機(jī)械設(shè)計(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,6(61):497-508.
[3]王飛,張樹(shù)生,白曉亮,陳書(shū)瓊.基于子圖同構(gòu)的三維CAD 模型局部匹配[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)報(bào),2008,20(8):1079-1084.
[4]陶俊,張樹(shù)生,唐啟亮.基于MBD的二維工程圖向三維模型的尺寸映射算法[J].航空制造技術(shù),2012(4):73-76.
[5]唐啟亮,張樹(shù)生,陶俊.一種二維工程圖向三維模型的尺寸映射算法[J].微處理機(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.