何楊博,趙 勇,楊建鳴
(內(nèi)蒙古科技大學 機械工程學院,內(nèi)蒙古 包頭 014000)
隨著CAD等先進技術在裝備制造業(yè)的迅速普及和應用,國內(nèi)已有相當數(shù)量的企業(yè)和科研院所完成了工程圖紙的數(shù)字化轉換,建立了電子圖檔。CAD應用[1]水平的不斷提高為三維建模技術的大規(guī)模應用打下了基礎。
而對加快圖形的二維轉三維,使得二、三維模型在設計過程中提高信息的關聯(lián)性,讓產(chǎn)品在設計的后處理中協(xié)調(diào)一致,自動更新,已經(jīng)成為CAD應用過程中的重點和難點。
三維實體通過投影原理,向水平、鉛垂、側垂平面投影,形成能夠清楚地表達內(nèi)部結構較為簡單的零件形體特征和幾何尺寸的正三視圖。目前,工程圖仍然是默認的指導產(chǎn)品設計和制造的唯一法定和通用技術文檔,在今后一段時間內(nèi),仍然無法取代。但三維設計的趨勢已經(jīng)顯而易見,三維實體可視化程度高,共享性好,尤其是在設計的后處理階段,比如逆向工程、虛擬裝配、CNC制造等,具有二維設計無法比擬的優(yōu)勢。
兩者都是基于特征,先進行二維平面視圖的識別,再通過計算機模擬工程師讀圖的方法,將現(xiàn)有的制、識圖方法規(guī)范編纂成計算機能夠識別的邏輯流程和算法,通過其中所包含的幾何與拓撲信息來完成三維空間實體的構建。不同之處在于兩方面:
(1)前者需要在建模時先進行二維草圖的繪制,再進行特征建模,而后者是直接利用現(xiàn)有的二維工程圖,在經(jīng)過一定的視圖預處理之后,直接進行三維重建,跳過了草圖繪制的過程。
(2)前者在建模時,以單個特征為基元,僅能處理單個特征所對應的二維草圖,所以導致在主流的三維建模軟件中擁有海量的特征種類個數(shù),給軟件的學習與普及應用帶來了相當大的困難;而后者以包含多個特征的某類零件為基元,能夠處理多個特征所對應的二維草圖。通俗的講,就是后者將原來三維建模中需要多個特征、多個步驟完成的過程一步完成,充分地挖掘了現(xiàn)有工程圖中的潛在價值,極大提高了建模效率。
Idesawa[2]在1973年提出了三維重建的思想,Markowsky與Welsley[3]在1980年提出了基于線框的重建思路,此后各種重建算法蓬勃涌現(xiàn)。1983年,Aldefeld[4]提出以模型引導的方法來完成三維模型重建。1983年,Sakurai[5]在文獻[4]的基礎上提出面向曲面體的重建算法。1988年,Chen等[6]提出面向體切削的重建算法。
1988年,Nagendra與Gujia[7]對從1973年接下來的十年內(nèi)產(chǎn)生的具有代表性的算法進行了綜述。2002年,耿衛(wèi)東等[8]綜合了基于體與基于線框的重建算法,摻入一定的人工交互操作,提出了一種混合算法。
2003年,Soni S[9]等提出了一種面向軸對齊類旋轉體的重建算法。該算法通過對工程圖投影邊進行結構分析,通過構造匹配序列,利用其中的參數(shù)信息,構建出正確的重建實體。2012年,文雅玫[10]面向剖視圖提出了一種交互式驗證算法,針對性地解決了軸類基本形體的重建,同時也擴展了涉及剖視圖三維重建的范圍。
從一張工程圖紙開始到生成三維空間實體的過程分四大部分,文中側重于后兩部分的研究和實現(xiàn),重建的基本完整流程如圖1所示。
以下是算法中涉及到的一些新名詞定義和專業(yè)術語(部分來自文獻[9])。
圖1 重建基本流程
(1)面環(huán):由邊組成的封閉環(huán),如圖2中的面環(huán){1,2,1}。
(2)二重點:與投影方向平行的邊在向該投影方向投影時,該邊上的點會在該投影面內(nèi)積聚為一點,該點即為輪廓點,如圖2中正視視角中的點7、8。
圖2 術語定義例圖
(3)端點:面環(huán)內(nèi)處于極限位置的點,即為端點,如圖2中的點1、8分別是面環(huán){1,2,3,11,12,6,7,8,9,10,1}的左右極限點。
(4)面環(huán)關系:
內(nèi)、外環(huán):若面環(huán)M1的所有邊均位于M2外,則稱M2為M1的外環(huán),M1為M2的內(nèi)環(huán)。例如,圖2中俯視視角中的環(huán){1,2,1}是環(huán){4,5,6,7,8,3,4}的內(nèi)環(huán)。
內(nèi)交環(huán):若面環(huán)M1有的邊在M2的內(nèi)部,有的邊在M2上(邊界),則稱M1為M2的內(nèi)交環(huán)。例如,圖2中俯視視角中的環(huán){5,6,9,10,5}是環(huán){4,5,6,7,8,3,4}的內(nèi)交環(huán)。
外交環(huán):若面環(huán)M1有的邊在M2的內(nèi)部,有的邊在M2的外部(不含邊界),則稱M1為M2的外交環(huán)。例如,圖2中正視視角中的環(huán){4,5,6,12,11,3}是環(huán){1,10,9,8,7,6,12,11,3,2,1}的外交環(huán)。
(5)實環(huán)與虛環(huán):全由實線組成的面環(huán)稱為實環(huán),反之如果環(huán)面全由虛線組成則稱為虛環(huán)。
(6)基點:兩投影視圖中沿某一方向重合的點稱為基點,基點可以一對一,也可以一對多。例如,圖2中俯視視角中的點8在正視視角中的匹配點為點7和點8。
(7)基元環(huán):如果M1中的基點在M2中均能找到匹配基點,反之亦然,則稱面環(huán)M1與M2匹配。
(8)基元體:將所有的基元環(huán)沿著環(huán)法向進行掃掠,求出初步的基元體,然后通過一系列相關的布爾操作,得到最后的重建實體。
2.3.1 視圖預處理
矢量化文件采用開放性、兼容性好、可讀性高的DXF[11]格式輸入。由于三視圖位于同一幅圖中,較難從中獲取需要的圖形屬性信息,所以必須對視圖進行分割,將三視圖進行坐標轉換,然后完成圖素的拼接和打斷處理[8],得到從DXF文件中提取到的點、線以及點線鏈表、所屬關系等數(shù)據(jù),作為三維重建的輸入。
2.3.2 視圖輪廓的提取與參考體、基元體的構建。
完成視圖預處理后,進入重建部分。首先提取三視圖的輪廓,以其各個視圖的最大外輪廓為參考基準,利用角度判別法[8]進行遍歷搜索,構建最大輪廓參考體,提取文件中的點、線,構建對應的匹配點、面環(huán),生成對應的虛、實基元體。然后將基元體依次同參考體做對應的布爾運算,不斷更新參考體后,生成初步重建實體。
2.3.3 重建結果的校驗
生成初步重建實體后,選取某一投影方向,將重建結果反投影至該投影方向,并創(chuàng)建一個新的草圖,驗證該草圖是否與原草圖匹配。如果匹配,則算法結束;如果不匹配,則通過Solidedge中的同步建模模塊(后文詳細敘述),適當?shù)娜藱C交互步驟輔助重建,直至投影相匹配。
整個算法的運行流程如圖3所示。
圖3 算法運行流程
西門子公司UGS旗下的Solidedge ST7軟件是一款以Windows系統(tǒng)平臺開發(fā)的中端CAD建模軟件[12],能夠高效地實現(xiàn)零件的建模、裝配鈑金以及工程圖的設計,同時也是西門子公司推出的極具特色的同步建模軟件。在同步建模模塊中,有一個2D轉3D的功能,能夠較為方便地通過人工交互界面完成2D到3D的轉換,同時還能完成在重建過程視圖預處理步驟中的一部分內(nèi)容,如圖素的拼接與打斷可通過Solidedge中的解塊功能來實現(xiàn),三視圖的分割與坐標系的轉換可由Solidedge中2D轉3D工具條中的內(nèi)置嵌入功能來實現(xiàn),如圖4所示。以上2項軟件內(nèi)嵌自帶功能給視圖的預處理工作帶來了極大的便利,大大地減輕了重建的工作量,因此文中選用Solidedge作為開發(fā)平臺。
圖4 坐標系的轉換
Solidedge提供了多種數(shù)據(jù)接口,最常見的是通過ActiveX Automation方法,運用VB、VC等編程語言,實現(xiàn)對ActiveX Automation技術的運用[13-16]。文中選用VB作為開發(fā)工具,實現(xiàn)重建過程,首先在VB中需要調(diào)用Solidedge中的相關類型庫,實現(xiàn)VB編寫代碼,訪問Solidedge軟件內(nèi)部提供的數(shù)據(jù)服務,如圖5所示。然后再通過代碼編寫的ActiveX Automation(client)生成.exe文件,完成三視圖實例的重建。
圖5 對Solidedge類型庫的引用
算法由VB6.0編寫,基于Solidedge平臺運行,如圖6所示。法蘭零件的三視圖如圖4所示,其中圖6(d)為三視圖經(jīng)掃掠得到的參考體,將圖中生成的基元體分別與參考體做布爾運算,得到最終的重建實體,其三視圖與圖4完全匹配,故此實體為目標實體。
圖6 重建算例的實施
通過對三視圖特點以及相關制圖規(guī)范的分析與理解,提出了針對簡單法蘭類零件的重建算法,并結合相關的二次開發(fā)技術進行了實例驗證。該課題最大的難點是如何將經(jīng)過大量工程師長期工程實踐得出的經(jīng)驗化制圖規(guī)范,轉化為邏輯嚴謹、嚴格的計算機能夠識別的形式化描述,賦予計算機模擬人工理解識圖的能力,隨著人工智能的發(fā)展,相信在之后會有所突破。而對結構更為復雜、制圖規(guī)則更多的形體還有待深入研究。