礦山設(shè)備一般工況較差,受環(huán)境場地的影響很大,通過現(xiàn)有的CAD方法無法預(yù)知設(shè)計的設(shè)備是否適合某些工作環(huán)境。當(dāng)生成物理樣機(jī)后,進(jìn)行現(xiàn)場操作時,發(fā)現(xiàn)設(shè)計缺陷,再修改設(shè)計,必將造成人力、物力和財力的浪費、開發(fā)周期的延長。為了彌補(bǔ)已有的CAD設(shè)計的不足,在集成現(xiàn)有數(shù)字仿真程序和視景仿真平臺,再充分發(fā)揮視景仿真直觀逼真效果的基礎(chǔ)上,結(jié)合計算機(jī)圖形學(xué),設(shè)計了一套礦山設(shè)備虛擬現(xiàn)實系統(tǒng)。在礦山設(shè)備虛擬現(xiàn)實系統(tǒng)中,可以模擬各種工況,及早地發(fā)現(xiàn)不足,在設(shè)計時及時進(jìn)行修改。礦山設(shè)備虛擬現(xiàn)實系統(tǒng)不僅是降低風(fēng)險和生產(chǎn)成本的有效途徑之一,而且對進(jìn)一步的分析和研究也有著非常重要的意義。
1、礦山設(shè)備虛擬現(xiàn)實系統(tǒng)的結(jié)構(gòu)與功能分析
從結(jié)構(gòu)上分析,礦山設(shè)備虛擬現(xiàn)實系統(tǒng)包括多個功能模塊,其中有立體顯示、運行模擬、各零部件的信息查詢和虛擬裝配等。先做好系統(tǒng)框架,然后自下而上逐步實現(xiàn)各項子功能。該系統(tǒng)主要實現(xiàn)礦山設(shè)備的交互式虛擬可視化顯示和操作,可以加深使用者對生產(chǎn)制造過程的認(rèn)識和理解,更好地指導(dǎo)實際設(shè)計生產(chǎn),可以及時發(fā)現(xiàn)問題并做出正確決策。
1.1礦山設(shè)備的立體顯示
立體顯示是虛擬實現(xiàn)系統(tǒng)中基本而又獨特的功能.在該系統(tǒng)中包括:礦山設(shè)備被動式立體顯示,即輸出至e - desk硬件系統(tǒng),通過立體眼鏡即可觀看到立體的礦山設(shè)備;各種顯示方式以及相互疊加、切換,如線框方式,光照效果,是否帶紋理顯示等;鍵盤、鼠標(biāo)或操縱桿交互操作,從不同的視角瀏覽礦山設(shè)備按照系統(tǒng)預(yù)設(shè)的路徑自動在場景中漫游導(dǎo)航;環(huán)境聲音的應(yīng)用;任意零部件的顯示和隱藏。
1.2礦山設(shè)備的運行模擬功能
運行模擬功能是指系統(tǒng)模擬設(shè)備在工作時的運轉(zhuǎn)狀況并且可以進(jìn)行人機(jī)交互控制,鼠標(biāo)或操縱桿交互控制整個設(shè)備的運行和停止;對于一些自由度沒有完全限制,但設(shè)備運行時不參與的零部件,需要對其進(jìn)行單獨的交互仿真,比如使用鼠標(biāo)左鍵點擊門以模擬檢修門的打開與關(guān)閉等。
1.3各零部件的信息查詢功能
利用數(shù)據(jù)庫原理實現(xiàn)信息的查詢功能。將設(shè)備中的零部件的信息、如零部件的介紹、作用、機(jī)械性能、材料、數(shù)量等記錄在數(shù)據(jù)庫中,系統(tǒng)將圖形界面與數(shù)據(jù)庫連接以實現(xiàn)信息查詢功能。而且,一旦零部件的信息改變,只需改變數(shù)據(jù)庫中的相關(guān)內(nèi)容即可,方便日后數(shù)據(jù)的維護(hù)和更新。
1.4虛擬裝配功能
虛擬裝配在虛擬設(shè)計和虛擬制造中有著舉足輕重的作用。虛擬裝配可以更直觀地表達(dá)礦山設(shè)備的內(nèi)部結(jié)構(gòu),各個零部件的相對位置以及裝配關(guān)系,模擬出裝配過程中的各種狀態(tài),可以使設(shè)計工程師更好地理解產(chǎn)品,及時發(fā)現(xiàn)裝配過程中可能出現(xiàn)的問題,以便正確地制定出合理的裝配工藝,縮短設(shè)計周期;使用產(chǎn)品時,配合系統(tǒng)中的信息查詢功能,能很好地理解產(chǎn)品的結(jié)構(gòu)和性能,并可以作為產(chǎn)品調(diào)試和維修的依據(jù)。
2、礦山設(shè)備三維交互仿真系統(tǒng)的實現(xiàn)
從實際應(yīng)用出發(fā),以一種經(jīng)典的
顎式破碎機(jī)為例,將原有的Solidworks模型轉(zhuǎn)化為MultiGen Crea-tor支持的VR模型(Openflight格式),以Vega和Visual C++作為軟件平臺,實現(xiàn)了其三維交互仿真系統(tǒng)。
2.1破碎機(jī)VR模型的建立
虛擬現(xiàn)實系統(tǒng)中建模包括幾何建模、運動建模、物理建模和行為建模。本系統(tǒng)需要的是顎式破碎機(jī)VR模型的建立。
(1)利用原有的CAD資源,將Solidworks的三維模型通過中間格式轉(zhuǎn)換成Creator支持的Open-flight格式的VR模型,并將其模型數(shù)據(jù)庫簡化、優(yōu)化和完善,包括添加紋理映射、燈光、材質(zhì)、場景模型等。
(2)在MultiGen Creator軟件中進(jìn)行運動建模,如觀察者Observer的視角等;物理建模,如碰撞檢測等;行為建模和模型管理,包括構(gòu)造LOD層次,設(shè)定DOF和Switch節(jié)點等。生成flt格式的模型數(shù)據(jù)庫。
(3)將優(yōu)化的模型(.nt格式)導(dǎo)入Vega提供的圖形化的用戶界面Lynx中,并在Lynx中建立系統(tǒng)所必需的對象,包括場景、窗口、通道、運動方式、觀察者、碰撞方式等,建立對象之間的相互聯(lián)系,生成一個ADF( Application Definition File)格式的文件。
(4)將生成的ADF文件在DOS窗口中使用命令“objconvert -A crusher. adf -s fst -i”轉(zhuǎn)化成FST格式的文件。FST文件格式是Vega的Fast格式,包含場景中模型的紋理等信息,為系統(tǒng)快速加載模型到場景中提供了有效的途徑,可提高運行效率。
具體方案如圖2所示。
2.2系統(tǒng)應(yīng)用程序框架
在Windows NT平臺上的Vega應(yīng)用,主要有3種類型,即控制臺程序、傳統(tǒng)的Windows應(yīng)用程序和基于MFC( Microsoft Foundation Classes)的應(yīng)用。無論是哪一種Vega應(yīng)用程序,都有3個必需的步驟:
(1)初始化。這一步初始化Vega系統(tǒng)并創(chuàng)建共享內(nèi)存以及信號量等。
(2)定義。通過.ADF應(yīng)用定義文件創(chuàng)建三維模型或是通過顯式的函數(shù)調(diào)用來創(chuàng)建三維模型。
(3)配置。通過調(diào)用配置函數(shù)來完成配置設(shè)置完Vega系統(tǒng)后,就開始了Vega應(yīng)用的主循環(huán),主循環(huán)的作用是對三維視景進(jìn)行渲染驅(qū)動。它主要分2步:①對于給定的幀速進(jìn)行幀同步;②對當(dāng)前的顯示幀進(jìn)行必要的處理。
為了便于開發(fā)者能容易地開發(fā)出基于MFC的Vega應(yīng)用程序,Vega通過繼承MFC中的CView類而派生出一個子類zsVegaView。其類層次結(jié)構(gòu)如圖3所示。
因此,創(chuàng)建基于MFC的Vega應(yīng)用程序的具體步驟如下:
(1)創(chuàng)建基于單文檔的MFC應(yīng)用程序,視圖類的基類確定為CView類;
(2)將zsVegaView的.h和.cpp文件引入到工程;
(3)修改單文檔的視圖基類,即將CView類修改為zsVegaView類;
(4)重載必要的虛函數(shù);
(5)使用vzsVegaView::runVega()啟動Vega。
2.3 Vega API和OpenCL混合編程實現(xiàn)交互仿真功能
從底層實現(xiàn)來看,Vega實際上是基于場景圖(Scene Craph)之上的,而場景圖管理系統(tǒng)本身又建立在OpenGL標(biāo)準(zhǔn)圖形庫之上。Vega提供的一個圖形界面的應(yīng)用程序定義文件工具-LynX,可以大大降低視景仿真應(yīng)用開發(fā)難度。但要完成比較復(fù)雜的功能還是必須通過Vega API編程實現(xiàn),更復(fù)雜的功能或一些特殊操作則需要使用更底層的OpenGL編程實現(xiàn)。
Vega與OpenCL進(jìn)行混合編程時,OpenGL所要實現(xiàn)的功能一般都是在Vega的回調(diào)函數(shù)中來實現(xiàn)的,但因為兩者坐標(biāo)系的不一致,所以必須要將場景融合。
(1)在VC中首先要配置編譯系統(tǒng)為多線方程式,因為Vega本身就是基于多線程的。
(2)在Vega中混合OpenCL代碼主要是使用回調(diào)函數(shù)AddFunc,在MyFun函數(shù)中,進(jìn)行OpenGL的代碼加入.
(3)回調(diào)函數(shù)在主循環(huán)之前調(diào)用,在系統(tǒng)配置之后調(diào)用。
使用Vega API提供的函數(shù)庫,結(jié)合進(jìn)行Open-GL編程技術(shù)實現(xiàn)系統(tǒng)的各項子功能。如:使用Vg-Picker類實現(xiàn)系統(tǒng)中對象的拾。徽{(diào)用vgSyncFrame()和vgFrame()函數(shù)控制場景中對象的運動;使用OpenGL實現(xiàn)漢字的繪制等。將這些功能模塊添加到系統(tǒng)應(yīng)用程序框架中即可生成完整的礦山設(shè)備虛擬現(xiàn)實系統(tǒng)。
2.4礦山設(shè)備三維交互仿真系統(tǒng)的運行界面
礦山設(shè)備三維交互仿真系統(tǒng)的運行界面如圖4所示。
3、結(jié)論
對虛擬現(xiàn)實技術(shù)應(yīng)用于破碎機(jī)進(jìn)行了研究,提出了一套開發(fā)礦山設(shè)備三維交互仿真系統(tǒng)的有效方法。所實現(xiàn)的虛擬現(xiàn)實系統(tǒng)具有通用性和可移植性。這一技術(shù)適用于各種產(chǎn)品,其應(yīng)用和推廣必將大大縮短設(shè)計周期和減少設(shè)計費用。