王 楠 侯志敏 陳慧珍
?
基于SolidWorks軟件實(shí)現(xiàn)三維模型的自動化裝配
王 楠 侯志敏 陳慧珍
沈陽科技學(xué)院,遼寧 沈陽 110167
把虛擬裝配系統(tǒng)中的模型轉(zhuǎn)換為零件模型和裝配約束模型這兩個重要部分是實(shí)現(xiàn)SolidWorks裝配模型轉(zhuǎn)換的最佳方式。在使用虛擬仿真格式后,可以讓OpenFlight的數(shù)據(jù)庫表達(dá)方式更具有層級化,在面對對象層次虛擬裝配以后能實(shí)現(xiàn)裝配模型的重塑。
SolidWorks軟件;三維模型;自動化裝配
模擬裝配是整個產(chǎn)品在實(shí)物模擬以及裝配時兩者進(jìn)行的模擬映射,對它進(jìn)行改進(jìn)能轉(zhuǎn)變傳統(tǒng)實(shí)物模型的驗(yàn)證裝配性,最終用戶就能在虛擬的環(huán)境中對驗(yàn)證產(chǎn)品的裝配性進(jìn)行深入了解。裝配建模的主要任務(wù)之一是在虛擬的環(huán)境中建立對應(yīng)的產(chǎn)品零件模型,通過對裝配的約束建立對應(yīng)的通用虛擬方式,然后再將CAD轉(zhuǎn)換為虛擬裝配模型。
虛擬裝配系統(tǒng)的模型轉(zhuǎn)換方式有如下兩類方式:第一,圖形交換中使用中性的文件定義法,可以在使用IGS格式、STEP格式等時自定義格式,但是由于中性文件格式異常復(fù)雜,所以在信息組織煩瑣的同時,會缺少裝配信息,這就致使整個裝配的效果欠佳。第二,在與共享底層數(shù)據(jù)庫進(jìn)行CAD系統(tǒng)裝配的時候,可以讓CAD系統(tǒng)與虛擬裝配系統(tǒng)兩者相互統(tǒng)一,最終達(dá)成底層數(shù)據(jù)庫。但是由于這種方法的難度偏大,所以無論是通用性亦或是擴(kuò)展性均會受到限制。
通過對CAD軟件的二次開發(fā),可以在提取部分產(chǎn)品信息的同時,對拓?fù)湫畔?、面片信息和裝配信息等數(shù)據(jù)有深刻的認(rèn)識,從而在整個裝配約束存儲中進(jìn)行文本格式的存儲,特別是在以O(shè)penGL PERformer的虛擬裝配環(huán)境中加入了新的文件,以實(shí)現(xiàn)裝配模型的虛擬重構(gòu)[1]。其實(shí)這種方法很難對整個產(chǎn)品的裝配信息進(jìn)行系統(tǒng)性表達(dá),尤其在很多細(xì)節(jié)方面還是不夠完善的,所以可以先把拓?fù)湫畔⒑兔嫫畔⒌忍卣鲄?shù)填入標(biāo)準(zhǔn)化層次數(shù)據(jù)庫結(jié)點(diǎn)中,然后通過輸入不同結(jié)點(diǎn)的信息,建立系統(tǒng)映射。其實(shí)這種虛擬映射不是在各類信息加載中運(yùn)用程序映射的方式,而是現(xiàn)實(shí)面片信息和參數(shù)信息的集成與轉(zhuǎn)換。
圖1 虛擬裝配模型轉(zhuǎn)換流程圖
OpenFlight作為一種場景數(shù)據(jù)庫模擬規(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場景為主要的數(shù)據(jù)庫規(guī)范場景。
OpenFlight數(shù)據(jù)庫結(jié)構(gòu)可以如圖2所示,通過分層技術(shù)場景的規(guī)劃,讓結(jié)點(diǎn)構(gòu)成樹狀結(jié)構(gòu),然后不同的結(jié)點(diǎn)與子結(jié)點(diǎn)進(jìn)行連接,這樣就能讓每個節(jié)點(diǎn)的數(shù)據(jù)屬性得以精準(zhǔn)的定義,然后在該節(jié)點(diǎn)中使用這項(xiàng)功能。由于這種層次化的結(jié)構(gòu)既能表達(dá)出零件的拓?fù)湫畔⒑兔嫫畔ⅲ挚梢栽诮Y(jié)點(diǎn)中添加部分附加信息,譬如特征參數(shù)等對應(yīng)信息,使用OpenGL Performr加載OpenFlight數(shù)據(jù)庫模型以后,通過對OpenGL Performer API等函數(shù)進(jìn)行數(shù)據(jù)模型訪問的方式,讓不同的模型層次結(jié)構(gòu)點(diǎn)之間形成緊密聯(lián)系。正是使用這一特性,才能實(shí)現(xiàn)OpenGL Performr和OpenFlight集成的特點(diǎn)能滿足零件信息重構(gòu)[3]。
圖2
對SolidWorks系統(tǒng)的二次開發(fā),能對裝配模型的底層數(shù)據(jù)進(jìn)行系統(tǒng)化提取,這樣就能深入了解裝配約束信息和裝配零件信息,使用具有裝配特征的裝配信息,先要讓函數(shù)get-IActiveDoc獲得對應(yīng)的裝配模型,然后使用IFirstFeature函數(shù)裝配系統(tǒng),通過對應(yīng)MateGroup的特征,既使用裝配特征,又讓裝配定義零件約束信息系統(tǒng)的裝配效果更佳。
首先,要從CAD模型中針對性地模型轉(zhuǎn)換所需要的信息,之后再將這些提取出來的信息以固定的模型存儲。最后,將數(shù)據(jù)模型提取到虛擬裝配系統(tǒng)中。數(shù)據(jù)信息本身應(yīng)具有完整性和簡單性,能夠非常清晰地將零件模型的層次表達(dá)出來;不同信息之間應(yīng)盡可能地減少匹配,尤其是在加載數(shù)據(jù)模型的過程中,更應(yīng)減少不同信息的映射。要將所提取的信息以固定規(guī)則導(dǎo)入OpenFlight數(shù)據(jù)庫中,并在裝配約束條件下,將所需進(jìn)行匹配的零件裝配面進(jìn)行映射,從而減少映射時的不同信息之間的關(guān)系。
將信息以虛擬現(xiàn)實(shí)格式進(jìn)行保存就需要使用OpenFlight接口。設(shè)計(jì)者可以將零部件的模型在建模軟件中進(jìn)行顯示,同時也可以將提取出來的信息進(jìn)行一系列的編輯工作,使得數(shù)據(jù)信息能夠更好地滿足建模要求。為了使得零件模型能夠具有更好的層次,就需要對零件進(jìn)行邏輯建模,同時還需要提取OpenFlight數(shù)據(jù)庫和SolidWorks信息映射關(guān)系,再將信息分別寫入各個不同層面的結(jié)點(diǎn)中。映射關(guān)系如圖2所示,將零件進(jìn)行分層處理,從而將不同層與OpenFlight結(jié)點(diǎn)形成映射。用Group結(jié)點(diǎn)進(jìn)行拓?fù)湫畔⒌拇鎯ぷ?,并對特征參?shù)和面片進(jìn)行編號處理。
拓?fù)湫畔⑹遣煌Y(jié)點(diǎn)之間所存在的拓?fù)潢P(guān)系。譬如以圓柱面做為父節(jié)點(diǎn)的面片,那么這個父節(jié)點(diǎn)的特征便是拉伸[4]。寫入信息時,需要對面片層和特征面層進(jìn)行分別寫入,并以固定的規(guī)則進(jìn)行命名。
模型的特征以及參數(shù)是規(guī)則面的參數(shù)。譬如當(dāng)前只有一個裝配面的情況下我們便可以得到相關(guān)的參數(shù)和裝配面的類型,以及裝配面的特征等等。裝配類型包括圓柱面以及平面等等。裝配參數(shù)則包括例如圓心的坐標(biāo)以及圓的邊界和圓的半徑等等。
面片的信息主要指的是三角面片所代表的編號、坐標(biāo)以及相關(guān)的顏色等等[5]。面片信息的功能主要是用于顯示裝配條件以及虛擬環(huán)境下需要做的碰撞檢測等。
拓?fù)湫畔⒖梢允菇Y(jié)點(diǎn)信息在查詢功能上實(shí)現(xiàn)雙向信息流通,從而使相關(guān)結(jié)點(diǎn)所包含的參數(shù)信息能夠被快速地查詢到。拓?fù)涞慕Y(jié)點(diǎn)中存儲了特征參數(shù)的所有相關(guān)信息,所以這兩部分信息中所包含的內(nèi)容都可以根據(jù)不同的需求進(jìn)行擴(kuò)展。
模型中所提取出來的信息和參數(shù)需要寫入OpenFlight的數(shù)據(jù)結(jié)點(diǎn)中。為了滿足這項(xiàng)功能要求,就必須命名數(shù)據(jù)結(jié)點(diǎn),只有這樣才能使這部分信息得到表達(dá)。所有從CAD模型中獲得的相關(guān)信息在結(jié)點(diǎn)中都可以表達(dá)出來。
本文提出了由SolidWorks模型直接到虛擬裝配模型的系統(tǒng)化表達(dá)方式。由于該方式需要從SolidWorks軟件中提取部分拓?fù)湫畔ⅰ⒚嫫畔⒌葦?shù)據(jù)信息。所以使用以O(shè)penFLIght格斯層次化模型的表達(dá)方式,能通過對層次模式化表達(dá)的產(chǎn)品進(jìn)行裝配約束。兩個模型在對其零件名稱進(jìn)行特征變化映射關(guān)系建立時,應(yīng)從虛擬裝配模型重構(gòu)的角度思考問題,這樣能讓虛擬仿真標(biāo)準(zhǔn)格式的表達(dá)更具完整性,減少信息之間的不對稱映射操作,通過實(shí)例能讓該方法的表達(dá)更為簡明,也能切實(shí)感受產(chǎn)品的裝配信息,最終提升產(chǎn)品的可拓展性。
[1]陸培華,傅烽.淺談SolidWorks軟件在機(jī)械制圖教學(xué)中的應(yīng)用[J].陜西教育(高教版),2015(6):14-15.
[2]郭黨號.基于SolidWorks的船舶柴油機(jī)虛擬裝配及運(yùn)動仿真[J].船海工程,2016(11):12-13.
[3]武文亮.利用GoogleSketchUp快速構(gòu)建滑坡三維模型[J].現(xiàn)代商業(yè),2014(1):12-13.
[4]毛華揚(yáng),劉加利.面向內(nèi)容的三維模型數(shù)據(jù)庫設(shè)計(jì)及其檢索系統(tǒng)的實(shí)現(xiàn)[J].北方經(jīng)貿(mào),2016(16):12-13.
[5]徐純.一種基于空間對稱變換的三維模型形狀描述方法[J].大慶社會科學(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