王 楠 侯志敏 陳慧珍
?
基于SolidWorks軟件實(shí)現(xiàn)三維模型的自動(dòng)化裝配
王 楠 侯志敏 陳慧珍
沈陽(yáng)科技學(xué)院,遼寧 沈陽(yáng) 110167
把虛擬裝配系統(tǒng)中的模型轉(zhuǎn)換為零件模型和裝配約束模型這兩個(gè)重要部分是實(shí)現(xiàn)SolidWorks裝配模型轉(zhuǎn)換的最佳方式。在使用虛擬仿真格式后,可以讓OpenFlight的數(shù)據(jù)庫(kù)表達(dá)方式更具有層級(jí)化,在面對(duì)對(duì)象層次虛擬裝配以后能實(shí)現(xiàn)裝配模型的重塑。
SolidWorks軟件;三維模型;自動(dòng)化裝配
模擬裝配是整個(gè)產(chǎn)品在實(shí)物模擬以及裝配時(shí)兩者進(jìn)行的模擬映射,對(duì)它進(jìn)行改進(jìn)能轉(zhuǎn)變傳統(tǒng)實(shí)物模型的驗(yàn)證裝配性,最終用戶就能在虛擬的環(huán)境中對(duì)驗(yàn)證產(chǎn)品的裝配性進(jìn)行深入了解。裝配建模的主要任務(wù)之一是在虛擬的環(huán)境中建立對(duì)應(yīng)的產(chǎn)品零件模型,通過(guò)對(duì)裝配的約束建立對(duì)應(yīng)的通用虛擬方式,然后再將CAD轉(zhuǎn)換為虛擬裝配模型。
虛擬裝配系統(tǒng)的模型轉(zhuǎn)換方式有如下兩類方式:第一,圖形交換中使用中性的文件定義法,可以在使用IGS格式、STEP格式等時(shí)自定義格式,但是由于中性文件格式異常復(fù)雜,所以在信息組織煩瑣的同時(shí),會(huì)缺少裝配信息,這就致使整個(gè)裝配的效果欠佳。第二,在與共享底層數(shù)據(jù)庫(kù)進(jìn)行CAD系統(tǒng)裝配的時(shí)候,可以讓CAD系統(tǒng)與虛擬裝配系統(tǒng)兩者相互統(tǒng)一,最終達(dá)成底層數(shù)據(jù)庫(kù)。但是由于這種方法的難度偏大,所以無(wú)論是通用性亦或是擴(kuò)展性均會(huì)受到限制。
通過(guò)對(duì)CAD軟件的二次開發(fā),可以在提取部分產(chǎn)品信息的同時(shí),對(duì)拓?fù)湫畔ⅰ⒚嫫畔⒑脱b配信息等數(shù)據(jù)有深刻的認(rèn)識(shí),從而在整個(gè)裝配約束存儲(chǔ)中進(jìn)行文本格式的存儲(chǔ),特別是在以O(shè)penGL PERformer的虛擬裝配環(huán)境中加入了新的文件,以實(shí)現(xiàn)裝配模型的虛擬重構(gòu)[1]。其實(shí)這種方法很難對(duì)整個(gè)產(chǎn)品的裝配信息進(jìn)行系統(tǒng)性表達(dá),尤其在很多細(xì)節(jié)方面還是不夠完善的,所以可以先把拓?fù)湫畔⒑兔嫫畔⒌忍卣鲄?shù)填入標(biāo)準(zhǔn)化層次數(shù)據(jù)庫(kù)結(jié)點(diǎn)中,然后通過(guò)輸入不同結(jié)點(diǎn)的信息,建立系統(tǒng)映射。其實(shí)這種虛擬映射不是在各類信息加載中運(yùn)用程序映射的方式,而是現(xiàn)實(shí)面片信息和參數(shù)信息的集成與轉(zhuǎn)換。

圖1 虛擬裝配模型轉(zhuǎn)換流程圖
OpenFlight作為一種場(chǎng)景數(shù)據(jù)庫(kù)模擬規(guī)范系統(tǒng),可以在仿真虛擬界實(shí)現(xiàn)工業(yè)化標(biāo)準(zhǔn)[2]。現(xiàn)在較為常見的虛擬軟件包括MultiGen Creator、圖形系統(tǒng)OpenGVS,World Tool Kit等均是以O(shè)penFlight場(chǎng)景為主要的數(shù)據(jù)庫(kù)規(guī)范場(chǎng)景。
OpenFlight數(shù)據(jù)庫(kù)結(jié)構(gòu)可以如圖2所示,通過(guò)分層技術(shù)場(chǎng)景的規(guī)劃,讓結(jié)點(diǎn)構(gòu)成樹狀結(jié)構(gòu),然后不同的結(jié)點(diǎn)與子結(jié)點(diǎn)進(jìn)行連接,這樣就能讓每個(gè)節(jié)點(diǎn)的數(shù)據(jù)屬性得以精準(zhǔn)的定義,然后在該節(jié)點(diǎn)中使用這項(xiàng)功能。由于這種層次化的結(jié)構(gòu)既能表達(dá)出零件的拓?fù)湫畔⒑兔嫫畔ⅲ挚梢栽诮Y(jié)點(diǎn)中添加部分附加信息,譬如特征參數(shù)等對(duì)應(yīng)信息,使用OpenGL Performr加載OpenFlight數(shù)據(jù)庫(kù)模型以后,通過(guò)對(duì)OpenGL Performer API等函數(shù)進(jìn)行數(shù)據(jù)模型訪問(wèn)的方式,讓不同的模型層次結(jié)構(gòu)點(diǎn)之間形成緊密聯(lián)系。正是使用這一特性,才能實(shí)現(xiàn)OpenGL Performr和OpenFlight集成的特點(diǎn)能滿足零件信息重構(gòu)[3]。

圖2
對(duì)SolidWorks系統(tǒng)的二次開發(fā),能對(duì)裝配模型的底層數(shù)據(jù)進(jìn)行系統(tǒng)化提取,這樣就能深入了解裝配約束信息和裝配零件信息,使用具有裝配特征的裝配信息,先要讓函數(shù)get-IActiveDoc獲得對(duì)應(yīng)的裝配模型,然后使用IFirstFeature函數(shù)裝配系統(tǒng),通過(guò)對(duì)應(yīng)MateGroup的特征,既使用裝配特征,又讓裝配定義零件約束信息系統(tǒng)的裝配效果更佳。
首先,要從CAD模型中針對(duì)性地模型轉(zhuǎn)換所需要的信息,之后再將這些提取出來(lái)的信息以固定的模型存儲(chǔ)。最后,將數(shù)據(jù)模型提取到虛擬裝配系統(tǒng)中。數(shù)據(jù)信息本身應(yīng)具有完整性和簡(jiǎn)單性,能夠非常清晰地將零件模型的層次表達(dá)出來(lái);不同信息之間應(yīng)盡可能地減少匹配,尤其是在加載數(shù)據(jù)模型的過(guò)程中,更應(yīng)減少不同信息的映射。要將所提取的信息以固定規(guī)則導(dǎo)入OpenFlight數(shù)據(jù)庫(kù)中,并在裝配約束條件下,將所需進(jìn)行匹配的零件裝配面進(jìn)行映射,從而減少映射時(shí)的不同信息之間的關(guān)系。
將信息以虛擬現(xiàn)實(shí)格式進(jìn)行保存就需要使用OpenFlight接口。設(shè)計(jì)者可以將零部件的模型在建模軟件中進(jìn)行顯示,同時(shí)也可以將提取出來(lái)的信息進(jìn)行一系列的編輯工作,使得數(shù)據(jù)信息能夠更好地滿足建模要求。為了使得零件模型能夠具有更好的層次,就需要對(duì)零件進(jìn)行邏輯建模,同時(shí)還需要提取OpenFlight數(shù)據(jù)庫(kù)和SolidWorks信息映射關(guān)系,再將信息分別寫入各個(gè)不同層面的結(jié)點(diǎn)中。映射關(guān)系如圖2所示,將零件進(jìn)行分層處理,從而將不同層與OpenFlight結(jié)點(diǎn)形成映射。用Group結(jié)點(diǎn)進(jìn)行拓?fù)湫畔⒌拇鎯?chǔ)工作,并對(duì)特征參數(shù)和面片進(jìn)行編號(hào)處理。
拓?fù)湫畔⑹遣煌Y(jié)點(diǎn)之間所存在的拓?fù)潢P(guān)系。譬如以圓柱面做為父節(jié)點(diǎn)的面片,那么這個(gè)父節(jié)點(diǎn)的特征便是拉伸[4]。寫入信息時(shí),需要對(duì)面片層和特征面層進(jìn)行分別寫入,并以固定的規(guī)則進(jìn)行命名。
模型的特征以及參數(shù)是規(guī)則面的參數(shù)。譬如當(dāng)前只有一個(gè)裝配面的情況下我們便可以得到相關(guān)的參數(shù)和裝配面的類型,以及裝配面的特征等等。裝配類型包括圓柱面以及平面等等。裝配參數(shù)則包括例如圓心的坐標(biāo)以及圓的邊界和圓的半徑等等。
面片的信息主要指的是三角面片所代表的編號(hào)、坐標(biāo)以及相關(guān)的顏色等等[5]。面片信息的功能主要是用于顯示裝配條件以及虛擬環(huán)境下需要做的碰撞檢測(cè)等。
拓?fù)湫畔⒖梢允菇Y(jié)點(diǎn)信息在查詢功能上實(shí)現(xiàn)雙向信息流通,從而使相關(guān)結(jié)點(diǎn)所包含的參數(shù)信息能夠被快速地查詢到。拓?fù)涞慕Y(jié)點(diǎn)中存儲(chǔ)了特征參數(shù)的所有相關(guān)信息,所以這兩部分信息中所包含的內(nèi)容都可以根據(jù)不同的需求進(jìn)行擴(kuò)展。
模型中所提取出來(lái)的信息和參數(shù)需要寫入OpenFlight的數(shù)據(jù)結(jié)點(diǎn)中。為了滿足這項(xiàng)功能要求,就必須命名數(shù)據(jù)結(jié)點(diǎn),只有這樣才能使這部分信息得到表達(dá)。所有從CAD模型中獲得的相關(guān)信息在結(jié)點(diǎn)中都可以表達(dá)出來(lái)。
本文提出了由SolidWorks模型直接到虛擬裝配模型的系統(tǒng)化表達(dá)方式。由于該方式需要從SolidWorks軟件中提取部分拓?fù)湫畔ⅰ⒚嫫畔⒌葦?shù)據(jù)信息。所以使用以O(shè)penFLIght格斯層次化模型的表達(dá)方式,能通過(guò)對(duì)層次模式化表達(dá)的產(chǎn)品進(jìn)行裝配約束。兩個(gè)模型在對(duì)其零件名稱進(jìn)行特征變化映射關(guān)系建立時(shí),應(yīng)從虛擬裝配模型重構(gòu)的角度思考問(wèn)題,這樣能讓虛擬仿真標(biāo)準(zhǔn)格式的表達(dá)更具完整性,減少信息之間的不對(duì)稱映射操作,通過(guò)實(shí)例能讓該方法的表達(dá)更為簡(jiǎn)明,也能切實(shí)感受產(chǎn)品的裝配信息,最終提升產(chǎn)品的可拓展性。
[1]陸培華,傅烽.淺談SolidWorks軟件在機(jī)械制圖教學(xué)中的應(yīng)用[J].陜西教育(高教版),2015(6):14-15.
[2]郭黨號(hào).基于SolidWorks的船舶柴油機(jī)虛擬裝配及運(yùn)動(dòng)仿真[J].船海工程,2016(11):12-13.
[3]武文亮.利用GoogleSketchUp快速構(gòu)建滑坡三維模型[J].現(xiàn)代商業(yè),2014(1):12-13.
[4]毛華揚(yáng),劉加利.面向內(nèi)容的三維模型數(shù)據(jù)庫(kù)設(shè)計(jì)及其檢索系統(tǒng)的實(shí)現(xiàn)[J].北方經(jīng)貿(mào),2016(16):12-13.
[5]徐純.一種基于空間對(duì)稱變換的三維模型形狀描述方法[J].大慶社會(huì)科學(xué),2015(9):2-3.
Automated Assembly of 3D Models Based on SolidWorks Software
Wang Nan Hou Zhimin Chen Huizhen
Shenyang Institute of Science and Technology, Liaoning Shenyang 110167
It is the best way to convert the models in virtual assembly system into parts model and assembly constraint model. After using the virtual simulation format, you can make the king of OpenFlight database expression more hierarchical, in the face of object-level virtual assembly to achieve assembly model remodeling.
SolidWorks software; three-dimensional model; automated assembly
TP391.9
A
1009-6434(2017)9-0068-03