劉 煬, 邵 偉, 王 靜, 石鴿婭, 湯傳玲
(合肥工業(yè)大學(xué)機(jī)械與汽車工程學(xué)院,安徽 合肥 230009)
機(jī)械設(shè)計(jì)中的一個(gè)重要內(nèi)容就是裝配體設(shè)計(jì),傳統(tǒng)的裝配體設(shè)計(jì)是一種自底向上的設(shè)計(jì)過程即先設(shè)計(jì)出各個(gè)零件并制造出來,再把零件按照裝配關(guān)系裝配起來形成一個(gè)完整的裝配體或機(jī)械設(shè)備。這樣很容易出現(xiàn)裝配體各部件的干涉與設(shè)計(jì)目標(biāo)不符合等缺陷。虛擬裝配技術(shù)是為了克服這些缺陷而出現(xiàn)的。狹義的虛擬裝配是指在虛擬環(huán)境中快速的把單個(gè)零部件或部件組裝形成產(chǎn)品的方法,廣義的虛擬裝配是指在虛擬環(huán)境中如何使設(shè)計(jì)人員方便地進(jìn)行結(jié)構(gòu)設(shè)計(jì)、修改,讓設(shè)計(jì)人員專注于產(chǎn)品功能的實(shí)現(xiàn)。
虛擬裝配(Virtual Assembly,VA)是虛擬制造的重要組成部分,利用虛擬裝配,可以驗(yàn)證裝配設(shè)計(jì)和操作的正確與否,以便及早的發(fā)現(xiàn)狀配中的問題,對(duì)模型進(jìn)行修改,并通過可視化顯示裝配過程。虛擬裝配系統(tǒng)允許設(shè)計(jì)人員考慮可行的裝配序列,自動(dòng)生成裝配規(guī)劃,它包括數(shù)值計(jì)算、裝配工藝規(guī)劃、工作面布局、裝配操作模擬等[1]?,F(xiàn)在產(chǎn)品的制造正在向著自動(dòng)化、數(shù)字化的方向發(fā)展,虛擬裝配是產(chǎn)品數(shù)字化設(shè)計(jì)中的一個(gè)重要環(huán)節(jié)。
基于網(wǎng)絡(luò)的虛擬裝配平臺(tái)是在異地設(shè)計(jì)者之間建立一個(gè)可以進(jìn)行裝配操作并顯示裝配過程來判斷產(chǎn)品可裝配性的服務(wù)平臺(tái),因此必須建立一個(gè)基于網(wǎng)絡(luò)的并且具有顯示瀏覽快捷、界面友好、運(yùn)行高效等特點(diǎn)的圖形化人機(jī)交互界面。
一般來說,虛擬裝配首先要在CAD系統(tǒng)中創(chuàng)建裝配模型,從中提取一些模型相關(guān)信息,如零件的幾何特征、裝配約束關(guān)系等,然后利用這些信息在虛擬環(huán)境中實(shí)現(xiàn)虛擬裝配。圖1中虛擬裝配建模和裝配序列規(guī)劃方法。
圖 1 虛擬裝配結(jié)構(gòu)模型
1) 首先確定具體的裝配體,搞清楚該裝配體的工作原理、每個(gè)零件的結(jié)構(gòu)形狀、零件在裝配體中的作用以及零件的拆裝順序等內(nèi)容。
2) 設(shè)計(jì)出虛擬裝配系統(tǒng)的具體內(nèi)容。如Web網(wǎng)頁的版面內(nèi)容設(shè)計(jì),工作原理的動(dòng)畫設(shè)計(jì),拆卸順序的動(dòng)態(tài)路線設(shè)計(jì)等內(nèi)容。
3) 對(duì)應(yīng)虛擬裝配系統(tǒng)的具體內(nèi)容,選擇出能實(shí)現(xiàn)上述內(nèi)容的具體軟件平臺(tái)。
4) 選擇出合成虛擬裝配系統(tǒng)的操作平臺(tái),能夠?qū)崿F(xiàn)操作的方便。
1) 利用Pro/E、UG等三維設(shè)計(jì)軟件創(chuàng)建各個(gè)零件的三維模型。
2) 利用3D Studio MAX8.0軟件對(duì)所有的三維模型進(jìn)行渲染和編輯。
3) 利用VrmlPad軟件編輯模型在虛擬現(xiàn)實(shí)中的位置與關(guān)系。
4) 利用Dreamweaver軟件設(shè)計(jì)Web網(wǎng)頁。
5) 把打包合成的虛擬裝配系統(tǒng)掛在網(wǎng)絡(luò)上運(yùn)行。
VRML——Virtual Reality Modeling Language,即虛擬現(xiàn)實(shí)建模語言,是一種“用來描述可在World Wide Web上運(yùn)行的、可交互的3D世界和對(duì)象的文件格式”,利用它可以在Internet網(wǎng)上建立交互式的三維多媒體的境界。它定義了當(dāng)今3D應(yīng)用中的絕大多數(shù)常見概念,諸如變換層級(jí)、視點(diǎn)、光照、幾何、動(dòng)畫、霧、材質(zhì)屬性以及紋理映射等。幾乎所有的三維建模軟件都支持VRML的文件格式。利用CAD軟件進(jìn)行零件的三維造型,如果所用CAD軟件具有VRML輸出接口如UG、SolidEdge、Pro/Engineer則直接輸出VRML格式的文件,若所用CAD軟件沒有VRML輸出則存為IGES、DXF、STEP等通用CAD軟件交換格式,再利用轉(zhuǎn)換程序或在支持VRML格式.wrl輸出的CAD軟件中打開并存為VRML文件[2]。在圖2中載入所有的零件。
圖 2 載入零件
用一個(gè)單獨(dú)的VRML文件創(chuàng)建一個(gè)逼真的虛擬世界場(chǎng)景是極其困難的,一方面程序的設(shè)計(jì)不符合模塊化設(shè)計(jì)的思想;另一方面VRML文件過大將會(huì)使下載和瀏覽速度大大地降低。VRML中有一個(gè)Inline節(jié)點(diǎn)可以解決這些問題。
下面是一個(gè)球閥造型例子,球閥由多個(gè)零件組成,每個(gè)零件都用一個(gè).wrl文件來表達(dá),通過內(nèi)聯(lián)結(jié)點(diǎn)嵌入主文件中,使主文件的結(jié)構(gòu)簡(jiǎn)單清晰。
VRML中的行為和交互性是通過事件驅(qū)動(dòng)的機(jī)制實(shí)現(xiàn)的,用戶與場(chǎng)景的交互、動(dòng)畫的運(yùn)行等都是通過各種事件的發(fā)送來完成的。通過在幾個(gè)節(jié)點(diǎn)之間事件流的傳送,可以實(shí)現(xiàn)動(dòng)畫過程。
VRML本身具有一定的交互能力,可以實(shí)現(xiàn)一些簡(jiǎn)單的動(dòng)畫,當(dāng)需要實(shí)現(xiàn)復(fù)雜的交互行為時(shí),要借助于JavaScript與Java來補(bǔ)充。對(duì)復(fù)雜性高的實(shí)驗(yàn)對(duì)象,往往采用功能強(qiáng)大的Java來實(shí)現(xiàn)。
基于VRML的顯示模型向用戶提供仿真結(jié)果和過程的三維表示,位于服務(wù)器上的仿真模型在仿真控制器的控制下進(jìn)行仿真運(yùn)算,Java Applet負(fù)責(zé)顯示模型和仿真模型之間的信息傳遞以及和用戶之間的信息交互,它通過EAI完成和VRML模型的控制及交互同時(shí)可以通過Http,RMI,Socket,CORBA等方式與位于Web服務(wù)器的仿真控制器和仿真模型通信[3]。VRML模型僅用于顯示而不參與仿真運(yùn)算,只要建立了合適的仿真模型就可以突破VRML本身的限制,提供有很強(qiáng)適應(yīng)性的三維仿真。其原理體系結(jié)構(gòu)如圖3所示。
圖 3 基于Web和VRML三維仿真交互原理體系結(jié)構(gòu)
VRML場(chǎng)景一般包括場(chǎng)景引擎,幾何造型節(jié)點(diǎn),外觀屬性節(jié)點(diǎn),腳本與動(dòng)畫等,其中幾何節(jié)點(diǎn)包括基本體幾何節(jié)點(diǎn)如長方體、圓柱、圓錐等和以面片為單元包圍形成體的“索引面集”幾何結(jié)點(diǎn)。從專業(yè)CAD軟件輸出的VRML格式產(chǎn)品模型,一般采用“IndexedFaceSet”(索引面集)幾何節(jié)點(diǎn)描述,場(chǎng)景基本結(jié)構(gòu)如圖3所示,對(duì)象的輪廓形狀由point域值給出,對(duì)象的位置由節(jié)點(diǎn)Transform的旋轉(zhuǎn)域rotation和平移域translation決定。這樣,欲實(shí)施對(duì)場(chǎng)景中對(duì)象節(jié)點(diǎn)圖形變換,就需按照“索引面集”幾何節(jié)點(diǎn)構(gòu)造的規(guī)律,依照“層層剝皮”的思路,遍歷到目標(biāo)節(jié)點(diǎn)的變換域,修改域值,從而實(shí)現(xiàn)幾何節(jié)點(diǎn)在場(chǎng)景空間的位置變化。如果進(jìn)一步結(jié)合“路由”與“時(shí)間傳感器”節(jié)點(diǎn),便能實(shí)現(xiàn)幾何節(jié)點(diǎn)的位置連續(xù)變化,從而實(shí)現(xiàn)VRML節(jié)點(diǎn)的動(dòng)畫顯示[4]。
VRML中使用Java還有一種方式,即外部編程接口( EAI),通過該接口,可使用VRML及Java語言構(gòu)造了一個(gè)基于B/S架構(gòu)的分布式虛擬環(huán)境。通過連接到Web服務(wù)器,客戶端從Web服務(wù)器上下載VRML文件以及Java Applet。VRML文件通過瀏覽器中的VRML插件解釋并顯示出虛擬現(xiàn)實(shí)場(chǎng)景,Applet中包含了用戶操作界面以及用于控制VRML場(chǎng)景的EAI。
圖 4 仿真虛擬環(huán)境主界面
仿真虛擬環(huán)境主界面如圖4所示,即瀏覽VRML裝配模型。在后臺(tái)程序通過調(diào)用VRML文件,首先捕捉到當(dāng)前場(chǎng)景(模型)引擎,獲得場(chǎng)景中的節(jié)點(diǎn)集,進(jìn)而得到各個(gè)節(jié)點(diǎn)信息和域值,同時(shí)完成前臺(tái)顯示,這是虛擬裝配平臺(tái)最基本的可視化功能。界面中主要由人機(jī)交互裝配控制區(qū)、裝配過程信息顯示區(qū)、VRML模型顯示區(qū)組成。用戶可以通過裝配控制區(qū)對(duì) VRML模型直接操作,也可以通過鼠標(biāo)操縱VRML區(qū)域的按鈕對(duì)裝配模型進(jìn)行放大、縮小和任意角度旋轉(zhuǎn)的觀察。
論文中的虛擬裝配系統(tǒng)盡管基本實(shí)現(xiàn)了虛擬環(huán)境下的產(chǎn)品裝配仿真功能,但從工程設(shè)計(jì)和CAD專業(yè)的角度出發(fā),還有許多研究工作要做。比如人工在由CAD模型轉(zhuǎn)換而來的VRML模型中添加控制節(jié)點(diǎn)是一項(xiàng)工作量比較大的工作,工作效率的高低取決于初始CAD模型的復(fù)雜程度。因此,需要研制相關(guān)的工具或軟件包代替手工添加控制節(jié)點(diǎn)的工作。
[1]Kris J, Phil S, Nelson Y. VRML programmer′s library [M].Beijing: Publishing House of Electronics Industry,2000: 122-123.
[2]任 浩, 譚慶平. 基于VRML和Java的物理建模方法與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與科學(xué), 2000, 22(2):36-39.
[3]馬 競(jìng). 虛擬制造技術(shù)研究概況綜述[J]. 機(jī)械制造技術(shù), 2005, (10): 10-11.
[4]高建洪, 胡志華. VRML虛擬場(chǎng)景中實(shí)時(shí)交互動(dòng)畫的實(shí)現(xiàn)[J]. 蘇州大學(xué)學(xué)報(bào)(工科版), 2008, (28):23-25.