李 雪,顧 明,趙 尚,陳 鋒
(鎮(zhèn)江船艇學(xué)院工程系,江蘇鎮(zhèn)江 212003)
船艇柴油機(jī)實(shí)裝維修訓(xùn)練存在以下弊端:一是船用柴油機(jī)價(jià)格昂貴,不可能投入大量的實(shí)裝用于訓(xùn)練,無(wú)法滿足眾多參訓(xùn)學(xué)員的需求。二是實(shí)裝訓(xùn)練耗材量大,訓(xùn)練成本高。虛擬維修訓(xùn)練的對(duì)象是虛擬三維模型,可以克服上述缺點(diǎn),是進(jìn)行柴油機(jī)維修訓(xùn)練的主要趨勢(shì)[1]。本文以柴油機(jī)運(yùn)動(dòng)機(jī)件為研究對(duì)象,對(duì)三維虛擬模型的建模方法和關(guān)鍵技術(shù)進(jìn)行研究。
實(shí)驗(yàn)室實(shí)習(xí)用柴油機(jī)各零件沒有零件圖,需要在畫模型前測(cè)量零件的結(jié)構(gòu)尺寸。零件尺寸包括長(zhǎng)、寬、高3個(gè)方向,按尺寸的類別分為定形尺寸、定位尺寸和總體尺寸。非標(biāo)準(zhǔn)件(如曲軸、連桿、飛輪等)主要結(jié)構(gòu)長(zhǎng)、寬、高3個(gè)方向的定形尺寸、定位尺寸測(cè)量要完整,不能遺漏。零件的倒角尺寸可以查閱有關(guān)國(guó)家標(biāo)準(zhǔn),不直接測(cè)量。標(biāo)準(zhǔn)件(如螺栓、螺母)尺寸的確定,需測(cè)量決定螺紋牙形狀的參數(shù)(螺距、螺紋大徑等)及螺栓長(zhǎng)度,其他各部分尺寸查閱有關(guān)國(guó)家標(biāo)準(zhǔn)確定。有些尺寸可以根據(jù)柴油機(jī)的主要性能參數(shù)表來確定,如曲柄銷和主軸徑之間曲臂的長(zhǎng)度為發(fā)動(dòng)機(jī)活塞行程的1/2。
在AutoCAD中,繪制各零件的實(shí)體三維模型時(shí),首先,根據(jù)零件的結(jié)構(gòu)特點(diǎn),構(gòu)思零件的截面形狀。然后,畫出截面圖形,并將各段線合并成一個(gè)封閉的多段線(命令為Pedit)。接著,將其轉(zhuǎn)化成面域(region)。最后,用旋轉(zhuǎn)、拉伸、掃掠等方法創(chuàng)建出零件的三維實(shí)體模型。
采用CAD軟件繪制的柴油機(jī)運(yùn)動(dòng)機(jī)件的三維模型必須在該軟件環(huán)境才能展示,虛擬仿真模型可以脫離軟件環(huán)境實(shí)現(xiàn)三維模型的交互演示。VRML是虛擬現(xiàn)實(shí)建模語(yǔ)言(Virtual reality modeling language)的簡(jiǎn)稱,作為一種描述虛擬環(huán)境中場(chǎng)景的標(biāo)準(zhǔn),利用它可以在Internet建立交互式的三維多媒體的境界[2]。VRML是一種建模腳本語(yǔ)言,利用VRML本身的造型功能建立復(fù)雜的三維模型就顯得力不從心了??紤]柴油機(jī)運(yùn)動(dòng)總成各組成零件結(jié)構(gòu)較為復(fù)雜,采用AutoCAD強(qiáng)大的三維造型功能來實(shí)現(xiàn)。AutoCAD生成的文件格式為dwg,它不能直接轉(zhuǎn)換為VRML文件,必須借助第三方軟件如3ds max 才能實(shí)現(xiàn)[3]。
柴油機(jī)三維模型采用AutoCAD 2007來創(chuàng)建。由于3ds max無(wú)法導(dǎo)入用高版本AutoCAD建立的模型文件,需要將在AutoCAD 2007中創(chuàng)建的三維模型保存為 R14格式,以連桿體為例,如圖1所示[4]。啟動(dòng)3ds max軟件,在“文件”菜單中應(yīng)用“import命令”,將AutoCAD生成的三維模型(dwg格式)導(dǎo)入到3ds max中,添加材質(zhì)、燈光等,使其更具有真實(shí)感[5],如圖2 所示。將模型的坐標(biāo)移到(0,0,0)上,并定義模型的名字。最后,選擇“文件”菜單中“輸出”項(xiàng),保存成VRML文件。
圖1 AutoCAD中創(chuàng)建活塞模型
圖2 3ds max導(dǎo)入AutoCAD模型
由于零件結(jié)構(gòu)較復(fù)雜,在建模過程中普遍用到拉伸、旋轉(zhuǎn)、交集和并集等命令來實(shí)現(xiàn)。雖然模型的細(xì)節(jié)表現(xiàn)得比較好,但與之相對(duì)應(yīng)的文件體積較大。建模所采用的是普通的PC機(jī),CPU和內(nèi)存資源有限,將全部模型零件導(dǎo)入場(chǎng)景時(shí),會(huì)導(dǎo)致系統(tǒng)資源嚴(yán)重不足甚至崩潰。建模過程中,要在不影響模型細(xì)節(jié)表達(dá)的基礎(chǔ)上,充分減小模型的大小,減輕系統(tǒng)的負(fù)擔(dān)。主要從2個(gè)方面來實(shí)現(xiàn)。
1)在利用3ds max轉(zhuǎn)化格式時(shí),選中模型,打開“修改”面板,找到“優(yōu)化”選項(xiàng),修改面閾值到合適大小。面閾值越大,組成模型的片面數(shù)越少,模型所占存貯空間就越小。修改過程如圖3所示。通過比較可知,當(dāng)面閾值選擇15.0時(shí),導(dǎo)出的VRML模型所占空間大小約是當(dāng)面閾值選擇默認(rèn)值4.0時(shí)的1/2。
圖3 修改面閾值
2)對(duì)wrl格式文件進(jìn)行壓縮,方法有2種。一種是采用專門的壓縮軟件,如Internet Model Optimizer,但是這個(gè)軟件在網(wǎng)絡(luò)上很難找到破解版。因此,在這里筆者選用第二種方法,即直接利用虛擬現(xiàn)實(shí)軟件VRMLPad自帶的壓縮功能來達(dá)到所需的效果[6]。在“File”菜單中點(diǎn)擊“Save As命令”行,在彈出如圖4所示的對(duì)話框中選中“Save compressed”單選框,再單擊“保存”即可。
圖4 VrmlPad中對(duì)模型進(jìn)行修改
經(jīng)測(cè)試證明,壓縮后的文件體積比原文件縮小了80%左右,而它的細(xì)節(jié)層次幾乎不受任何影響,運(yùn)行速度基本令人滿意。
2.4.1 視點(diǎn)和背景
經(jīng)過以上建模,模型位置可能不在瀏覽器的正中間,而且瀏覽器的顏色默認(rèn)為黑色。為了模擬真實(shí)的視覺效果,需要利用VrmlPad軟件定義視點(diǎn)(Viewpoint)語(yǔ)句和背景(Background)語(yǔ)句。視點(diǎn)語(yǔ)句主要確定在虛擬環(huán)境下人眼看虛擬實(shí)體的相對(duì)位置、方向和視覺范圍。背景語(yǔ)句主要定義窗口背景顏色,開發(fā)者可以根據(jù)自己的喜好和視覺效果設(shè)定[7]。
2.4.2 觀察及交互功能
現(xiàn)在,觀察者與模型還不能靈活交互,不便于觀察。需要用VrmlPad軟件定義傳感器實(shí)現(xiàn)交互功能。定義球面?zhèn)鞲衅鞯恼Z(yǔ)句為:
DEF ss Sphere Sensor{}
ROUTE ss.rotation_changed TO huosai.set_rotation;(huosai為模型名)
VRML的動(dòng)畫效果實(shí)質(zhì)上是依靠1個(gè)給定的時(shí)間傳感器(Time Sensor)、一系列插補(bǔ)器節(jié)點(diǎn)(如Orientation Interpolator,Position Interpolator等)和路由(ROUTE)語(yǔ)句來實(shí)現(xiàn)的關(guān)鍵幀動(dòng)畫[7]。如圖5,圖6所示,其基本原理是,時(shí)間傳感器給出一個(gè)控制動(dòng)畫效果的時(shí)鐘,通過這個(gè)時(shí)鐘的fraction_changed在虛擬場(chǎng)景中驅(qū)動(dòng)各種插補(bǔ)器節(jié)點(diǎn)。插補(bǔ)器節(jié)點(diǎn)中定義了n個(gè)關(guān)鍵點(diǎn)(key)和n個(gè)關(guān)鍵值(keyvalue)。VRML瀏覽器根據(jù)插補(bǔ)器節(jié)點(diǎn)的設(shè)置,通過線性插值的方法完成整個(gè)動(dòng)畫過程。ROUTE語(yǔ)句在這些節(jié)點(diǎn)間傳遞信息。
除了插補(bǔ)器節(jié)點(diǎn)外,VRML還提供了用于更復(fù)雜動(dòng)畫的接口,即腳本節(jié)點(diǎn)(Script)。腳本節(jié)點(diǎn)實(shí)際上是VRML與外部編程語(yǔ)言的接口,一些需要在虛擬場(chǎng)景中實(shí)現(xiàn)的復(fù)雜行為可以通過該節(jié)點(diǎn)使用Java或JavaScript編程實(shí)現(xiàn)。
圖5 VRML事件傳遞過程
圖6 虛擬現(xiàn)實(shí)柴油機(jī)機(jī)構(gòu)運(yùn)動(dòng)仿真
利用Dreamweaver網(wǎng)頁(yè)制作軟件創(chuàng)建以網(wǎng)頁(yè)形式顯示的柴油機(jī)運(yùn)動(dòng)機(jī)件虛擬模型庫(kù)。主頁(yè)如圖7所示。章節(jié)目錄主要包括運(yùn)動(dòng)組件和組件裝配2部分。點(diǎn)擊“鏈接”(如活塞組)進(jìn)入下一級(jí)界面,如圖8所示。
圖7 主頁(yè)面
圖8 模型頁(yè)面
該頁(yè)面采用框架結(jié)構(gòu),將虛擬模型嵌入網(wǎng)頁(yè)。點(diǎn)擊左側(cè)的“鏈接”(如活塞),則在右側(cè)的框架里出現(xiàn)活塞的虛擬模型,利用鼠標(biāo)點(diǎn)擊,可以從任何角度觀察模型。
采用CAD繪制柴油機(jī)運(yùn)動(dòng)機(jī)件三維模型,利用3ds max軟件對(duì)文件進(jìn)行格式轉(zhuǎn)換,利用VRML語(yǔ)言對(duì)虛擬模型環(huán)境及交互性進(jìn)行編輯。將虛擬模型以網(wǎng)頁(yè)形式展示,模型顯示的視覺效果可以和真實(shí)模型相媲美。虛擬模型可以單機(jī)運(yùn)行,亦可以在校園局域網(wǎng)發(fā)布。該虛擬模型的建立即可以為課堂教學(xué)提供虛擬模型,也可以為后續(xù)柴油機(jī)虛擬維修訓(xùn)練系統(tǒng)的開發(fā)打下堅(jiān)實(shí)的基礎(chǔ)。
[1]李林,吳衛(wèi)玲.虛擬維修綜述[J].科技信息,2009(33):63-64.
[2]王曉霞.采用VRML的齒輪變速箱虛擬模型的實(shí)現(xiàn)[J].工程圖學(xué)學(xué)報(bào),2008(3):23-29.
[3]謝杰.VRML技術(shù)及應(yīng)用[J].洛陽(yáng)工業(yè)高等專科學(xué)校學(xué)報(bào),2006,16(3):28-30.
[4]賈東永.AutoCAD機(jī)械制圖與工程實(shí)踐[M].北京:清華大學(xué)出版社,2008:424-441.
[5]漢龍.3ds max6三維與動(dòng)畫設(shè)計(jì)實(shí)例導(dǎo)航[M].上海:上??茖W(xué)普及出版社,2004:117-154.
[6]晏洪濤.基于VRML與 Java的柴油機(jī)虛擬裝配仿真[D].武漢:武漢理工大學(xué)能源與動(dòng)力工程學(xué)院,2005:31-32.
[7]吳小華.VRML從入門到精通[M].北京:國(guó)防工業(yè)出版社,2002:34-49.