摘要本文闡述了如何將虛擬現(xiàn)實(shí)技術(shù)應(yīng)用于陶瓷窯的三維仿真。包括使用CAXA實(shí)體設(shè)計(jì)軟件設(shè)計(jì)出整個(gè)三維模型圖,使用VRML實(shí)現(xiàn)陶瓷窯在WEB上的仿真。通過該設(shè)計(jì),不但可以非常方便地設(shè)計(jì)出所需要的陶瓷窯,而且通過在WEB上的三維仿真,客戶還可以更全面地了解所設(shè)計(jì)的陶瓷窯。
關(guān)鍵詞陶瓷窯,CAXA,VRML
隨著市場(chǎng)競(jìng)爭(zhēng)的日益激烈,生產(chǎn)廠家越來越需要及時(shí)、準(zhǔn)確且全面地把產(chǎn)品信息傳遞給用戶。如果充分利用計(jì)算機(jī)技術(shù),使用虛擬現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)陶瓷窯在WEB上的仿真,就可以使用戶通過網(wǎng)絡(luò)訪問自己所設(shè)計(jì)的三維窯爐模型圖并且可以對(duì)它進(jìn)行漫游,從而非常全面地了解所訪問的窯爐的各個(gè)方面。
陶瓷窯在WEB上的仿真可以通過以下三個(gè)階段來實(shí)現(xiàn):
1使用CAXA來實(shí)現(xiàn)陶瓷窯的三維造型
CAXA實(shí)體設(shè)計(jì)具有競(jìng)爭(zhēng)力的特點(diǎn)是它的設(shè)計(jì)速度和效率。它不僅將造型、裝配、鈑金、動(dòng)畫、高級(jí)渲染等集成在一個(gè)統(tǒng)一、易于掌握的操作環(huán)境下,同時(shí)由于采用圖素的拖放式操作造型并結(jié)合智能捕捉與三維球定位技術(shù),使得其它造型軟件無法在設(shè)計(jì)效率與速度上與之匹敵。
在CAXA實(shí)體設(shè)計(jì)過程中,可以把整個(gè)設(shè)計(jì)看成是一個(gè)大的裝配體,整個(gè)裝配體又可以看成是通過定向定位來實(shí)現(xiàn)各個(gè)子裝配體和零件的調(diào)整。這樣整個(gè)設(shè)計(jì)就可以看成由各個(gè)零件構(gòu)成,而在CAXA中零件又可以看成圖素通過不同的定向定位方法來生成。
在CAXA實(shí)體設(shè)計(jì)中,圖素分為兩種:一種是標(biāo)準(zhǔn)智能圖素。另一種是自定義智能圖素。標(biāo)準(zhǔn)智能圖素是CAXA實(shí)體設(shè)計(jì)中最常用、最基本的圖素,經(jīng)常用來構(gòu)建基本的形體和機(jī)構(gòu),可以直接從智能圖素庫(kù)中拖出,再用三維球來實(shí)現(xiàn)定向定位;自定義智能圖素實(shí)際上是由特征造型生成的圖素。當(dāng)所需的幾何圖素在設(shè)計(jì)元素庫(kù)中找不到時(shí),可以利用CAXA實(shí)體設(shè)計(jì)提供的拉伸、旋轉(zhuǎn)、掃描和放樣等四種特征造型方法來生成自定義智能圖素,并可擴(kuò)充設(shè)計(jì)元素庫(kù)。圖1就是通過使用CAXA實(shí)體設(shè)計(jì)技術(shù)設(shè)計(jì)出來的陶瓷窯中高溫帶的三維模型圖。
圖1CAXA實(shí)體設(shè)計(jì)的陶瓷窯高溫帶三維模型圖
2使用VRML實(shí)現(xiàn)陶瓷窯的部分裝配和仿真
VRML(Virtual Reality Modeling Language )是虛擬現(xiàn)實(shí)造型語(yǔ)言的縮寫形式,它是描述虛擬環(huán)境中場(chǎng)景的一種標(biāo)準(zhǔn)。它定義了三維應(yīng)用系統(tǒng)中常用的語(yǔ)言描述,如層次變換、光源、視點(diǎn)、幾何、動(dòng)畫、霧、材料特性和文理映射等,并且具有一定的行為特征描述功能。VRML提供了將三維、二維文字和多媒體集成為一個(gè)混合模型的技術(shù)。將這些媒體類型、腳本語(yǔ)言以及互聯(lián)網(wǎng)的功能結(jié)合起來,就可以開發(fā)出全新的交互應(yīng)用。
以下闡述一下使用VRML實(shí)現(xiàn)陶瓷窯的部分裝配和仿真的過程。
(1) 三維模型的導(dǎo)入和裝配
用CAXA實(shí)體設(shè)計(jì)建立陶瓷窯各個(gè)帶的三維實(shí)體模型后,即可通過輸出方式以VRML格式輸出;然后在新生成的文件中,以記事本或者WORD的方式打開,就可以看到原先的模型圖已經(jīng)生成了VRML程序,最后對(duì)該程序進(jìn)行修改和編輯,就可實(shí)現(xiàn)所需功能。
轉(zhuǎn)換后的陶瓷窯各帶單節(jié)窯的位置,都是由相對(duì)于原始位置的位移及轉(zhuǎn)角決定的,因此必須對(duì)它們進(jìn)行重新定位。在VRML中是用Transform節(jié)點(diǎn)來實(shí)現(xiàn)的,它可以通過改變其段值來改變?cè)撟鴺?biāo)系及實(shí)體的空間位置和方向。如以下程序代碼所示:
Transform {translation 000
children
DEF yuredaiGroup { children [
······
] }}
在上述程序代碼中,我們把預(yù)熱帶單節(jié)的整個(gè)模型定義為一個(gè)Group節(jié)點(diǎn),然后對(duì)該節(jié)點(diǎn)定位,如上所示。通過該方法可以把整個(gè)陶瓷窯各帶的單節(jié)窯爐進(jìn)行裝配。同時(shí)因?yàn)橥粋€(gè)帶的窯爐情況相同,且為了減小文件的大小,可以采用DEF/USE來重用場(chǎng)景以避免進(jìn)行重復(fù)的設(shè)計(jì)工作。如:
Transform {translation 002.1
childrenUSEyuredai
}
當(dāng)整個(gè)陶瓷窯裝配完成后,就可以對(duì)它進(jìn)行仿真了。
(2) 基于VRML的陶瓷窯仿真
VRML增加了交互性及對(duì)動(dòng)畫和行為的描述,這些功能使我們能夠?qū)崿F(xiàn)動(dòng)態(tài)仿真及交互。一般用時(shí)間傳感器、動(dòng)作傳感器、腳本節(jié)點(diǎn)和各種插值節(jié)點(diǎn)配合使用來完成動(dòng)畫效果。
時(shí)間傳感器(TimeSensor)節(jié)點(diǎn)的作用象一個(gè)時(shí)鐘,它可以被用來執(zhí)行開始、停止或者其他控制動(dòng)畫的動(dòng)作,隨著時(shí)間的推移,這個(gè)傳感器就會(huì)產(chǎn)生事件來表示時(shí)間的變化。通過將這些事件從TimeSensor節(jié)點(diǎn)的EventOut路由到其它節(jié)點(diǎn),當(dāng)TimeSensor節(jié)點(diǎn)的時(shí)鐘開始計(jì)時(shí),就可以使這些節(jié)點(diǎn)發(fā)生相應(yīng)的變化。
動(dòng)作傳感器使用交互設(shè)備來感知觀察者的動(dòng)作。當(dāng)觀察者點(diǎn)擊到附帶有感知器的造型時(shí),感知器就輸出一個(gè)事件,這個(gè)事件就被路由到其它節(jié)點(diǎn)來開始一個(gè)動(dòng)畫。動(dòng)作傳感器用來感受瀏覽者來自虛擬世界的動(dòng)作,并將這些動(dòng)作轉(zhuǎn)換成適于空間造型的輸出,使瀏覽者感覺像是在一個(gè)真實(shí)的世界里觀察一樣。
腳本(Script)節(jié)點(diǎn)提供了一種更為復(fù)雜的交互方法,Script節(jié)點(diǎn)可以用來完成許多任務(wù)。
在本設(shè)計(jì)中,需要實(shí)現(xiàn)的功能就是通過接觸傳感器來點(diǎn)擊需要實(shí)現(xiàn)的漫游按鈕,然后輸出一個(gè)事件到時(shí)間傳感器。時(shí)間傳感器再根據(jù)時(shí)間的變化,把這些時(shí)間路由到其它節(jié)點(diǎn),使這些節(jié)點(diǎn)發(fā)生相應(yīng)的變化。其中陶瓷窯的變化主要是通過PositionInterpolator、OrientationInterpolator兩個(gè)插值節(jié)點(diǎn)來實(shí)現(xiàn)的。
以下程序代碼就是該仿真的路由過程。其中Clicker1、Clicker2是兩個(gè)不同的接觸傳感器;TimeSource1、TimeSource2是兩個(gè)不同的時(shí)間傳感器;GuidePI、GuideRI分別是兩個(gè)不同的插值節(jié)點(diǎn);Xform是實(shí)現(xiàn)仿真動(dòng)作的節(jié)點(diǎn)。
ROUTE Clicker1.touchTime TO TimeSource1.startTime
ROUTE Clicker2.touchTime TO TimeSource2.startTime
ROUTE TimeSource1.fraction_changed TO GuidePI.set_fraction
ROUTE TimeSource2.fraction_changed TO GuideRI.set_fraction
ROUTE GuidePI.value_changed TO XForm.translation
ROUTE GuideRI.value_changed TO XForm.rotation
為了得到更好的仿真效果,對(duì)背景節(jié)點(diǎn)和視點(diǎn)節(jié)點(diǎn)做了一定的修改,如:背景節(jié)點(diǎn)全部采用藍(lán)色作為背景,這樣可以增加視覺效果;視點(diǎn)節(jié)點(diǎn)設(shè)置了三個(gè)不同的方向,這樣有利于在不同的方向上觀察陶瓷窯仿真。
圖2是在視點(diǎn)2的模式下所看到的陶瓷窯模型圖,可以通過點(diǎn)擊上面的字,實(shí)現(xiàn)不同的仿真效果。
圖2視點(diǎn)2模式下的陶瓷窯模型圖
3實(shí)現(xiàn)陶瓷窯動(dòng)態(tài)仿真在WEB上的發(fā)布
VRML的訪問方式可以使用基于客戶/服務(wù)器模式。其中服務(wù)器提供VRML文件及支持資源(圖像、視頻、聲音等);客戶端通過網(wǎng)絡(luò)下載希望訪問的文件,并通過本地平臺(tái)上的VRML瀏覽器交互式地訪問該文件描述的虛擬環(huán)境。由于瀏覽器是本地平臺(tái)提供的,從而實(shí)現(xiàn)了平臺(tái)無關(guān)性。
服務(wù)器端可以通過<FRAME SRC=“xxx.w r1”>在整個(gè)網(wǎng)頁(yè)中顯示模型,也可以通過<EMBED SRC=“xxx.w r1”>將模型嵌入至網(wǎng)頁(yè)中,再將其發(fā)布到WEB服務(wù)器上。
客戶端須安裝VRML的插件如:CORTONA,MicrosoftVRML 2.0 Viewer,Cosmo Player等,然后在程序中使用URL。URL(Uniform Resource Locator)指明了一個(gè)文件所位于的服務(wù)器和讀取協(xié)議(如:HTTP),小寫的“url”在VRML中指向域值可能包含URL或在線的編碼數(shù)據(jù)。
參考文獻(xiàn)
1 葉 琳.基于虛擬現(xiàn)實(shí)VRML的機(jī)械產(chǎn)品展示技術(shù)[J].機(jī)電工程技術(shù),2002,31(1)
2 吳 瑋,吳昌林,吳鹿鳴,吳立言.結(jié)合AUTOCAD 、3D MAX及VRML實(shí)現(xiàn)WEB三維動(dòng)畫[J].機(jī)械設(shè)計(jì)與制造,2002,4
3 梁 暉,劉曉明.在Web中利用VRML實(shí)現(xiàn)機(jī)械結(jié)構(gòu)運(yùn)動(dòng)仿真[J].機(jī)械與電子,2002,2
4 李建華,王 瑋,王占禮.VRML在機(jī)械設(shè)計(jì)中的應(yīng)用[J].吉林工學(xué)院學(xué)報(bào),1999,20(3)
5 石教英主編.虛擬現(xiàn)實(shí)基礎(chǔ)及實(shí)用算法[M].科學(xué)出版社,2002
6 楊偉群等編著.CAXA實(shí)體設(shè)計(jì)——應(yīng)用基礎(chǔ)篇[M].北京大學(xué)出版社,2002