陜西烽火電子股份有限公司 支朋飛 呂小剛
本文研究應(yīng)用以Vega Prime三維視景仿真平臺與GL Studio儀表仿真軟件聯(lián)合開發(fā)虛擬數(shù)控機床仿真系統(tǒng),提供了系統(tǒng)結(jié)構(gòu)框架所涉及的某些關(guān)鍵技術(shù)的解決方法,實現(xiàn)了GLS儀表模型在VP三維場景中的移植顯示和數(shù)據(jù)的相互通信,構(gòu)造了逼真的虛擬加工操作環(huán)境。
數(shù)控仿真軟件是運用虛擬現(xiàn)實技術(shù)通過二維或三維圖形界面來模擬真實的數(shù)控加工環(huán)境,要求具有逼真的人機交互界面,避免人為誤操作而達到良好的教學(xué)目的。當前主流的數(shù)控仿真加工系統(tǒng)均是在PC終端上實現(xiàn)的,部分是集成在CAM(計算機輔助制造)軟件中,比如既有德國SYMPlus CNC、日本FREDAM等國際主流系統(tǒng),也有上海宇龍、南京斯沃等國產(chǎn)系統(tǒng)。
本研究的重點在于結(jié)合Vega Prime(簡稱VP)與GL Studio各自的優(yōu)勢,實現(xiàn)二者的混合編程,使該系統(tǒng)具備良好的人機交互界面,將虛擬數(shù)控機床處于逼真的三維場景中,操作人員可借助一定的人機交互手段(如數(shù)據(jù)手套、3D眼鏡),使訓(xùn)練者置身于虛擬的三維環(huán)境并沉浸其中,通過操作虛擬機床面板來模擬控制機床動作,獲得與真實世界相同的體驗感。
該系統(tǒng)在Windows XP Professional操作系統(tǒng)下,所用軟件有:建模工具軟件SolidWorks,模型轉(zhuǎn)化軟件Deep Exploration,模型建立軟件Creator 3.2,儀表仿真軟件GL Studio,仿真平臺軟件Vega Prime,編譯環(huán)境為VS2008,使用上述工具便可進行模型的建立和驅(qū)動的開發(fā)。本數(shù)控仿真系統(tǒng)的實現(xiàn)主要分為兩個部分:場景建模與場景驅(qū)動,如圖1所示。
圖1 技術(shù)路線開發(fā)流程
場景建模是運用數(shù)學(xué)方法將仿真對象的三維數(shù)據(jù)存儲在計算機內(nèi),首先使用三維建模軟件對數(shù)控加工中心的裝配體和零部件建立三維實體模型*.sldprt/*.sldasm,然后通過Deep Exploration軟件將*.sldprt/*sldasm的模型格式轉(zhuǎn)換成*.3ds,最后把*.3ds導(dǎo)入到Creator 3.2中,將*.3ds模型格式轉(zhuǎn)化為Vega Prime可識別的*.flt文件并對其進行顏色渲染。
場景驅(qū)動是將仿真對象的實時狀態(tài)數(shù)據(jù)以圖像的方式輸出,通過使用API函數(shù)來實現(xiàn)對仿真對象的驅(qū)動控制,實現(xiàn)對虛擬儀表、虛擬部件等三維模型的實時交互操作,將VP嵌入到開發(fā)平臺VS2008中完成場景配置。
數(shù)控加工仿真面板的主要操作過程是在GL Studio中設(shè)計完成的,包括面板儀表界面的開發(fā)、各種儀表間的邏輯關(guān)系控制及信息傳遞、儀表與外部Vega Prime的數(shù)據(jù)交互,開發(fā)面板執(zhí)行文件的過程是一個交互循環(huán)的過程。
(1)操作面板的制作:數(shù)控機床操作面板是操作人員與數(shù)控機床系統(tǒng)之間進行交互的橋梁,通過面板可以實現(xiàn)對數(shù)控系統(tǒng)的查詢、編程、調(diào)試、修改等輸入或輸出操作。
(2)儀表間的信息交互:仿真對象的運行是通過編寫的代碼實現(xiàn)驅(qū)動,比如:NC鍵盤信息的顯示、各儀表間的邏輯控制、旋鈕檔位的數(shù)據(jù)傳遞等。
(3)面板動態(tài)鏈接庫的生成:將GL Studio所形成的虛擬仿真界面進行保存并自動生成2個源文件和1個頭文件,其中源文件win_main.cpp是程序的啟動入口文件, C++容器類涵蓋了儀表對象的初始化代碼、顯示代碼、驅(qū)動代碼及主循環(huán)代碼。然后經(jīng)過VS2008編譯環(huán)境進行編譯,在編譯未出現(xiàn)錯誤的情況下,在start的下拉菜單中選擇LiveComponent Debug后最終點擊運行,便可生成*.gls模型的動態(tài)鏈接庫文件*.dll。
在Vega Prime與GL Studio的數(shù)據(jù)交互方面,將GL Studio開發(fā)的虛擬儀表組件在Vega Prime中進行動態(tài)調(diào)用,在安裝了與GL Studio配套的插件vp GLStudioPlugin后,可將GL Studio開發(fā)的虛擬儀表動態(tài)鏈接庫文件(DLL)嵌入到Vega Prime編輯器中,從而實現(xiàn)虛擬儀表與三維視景仿真的功能相結(jié)合,虛擬三維顯示效果如圖2所示。
圖2 數(shù)控機床仿真系統(tǒng)三維場景效果
在數(shù)控機床加工仿真過程中,對機床面板儀表進行操作時,需要將一些按鍵信息和當前儀表狀態(tài)的數(shù)據(jù)傳入VP中進行處理。如在控制刀具的運動過程中,需要將NC鍵盤輸入的刀具編號以及運動數(shù)據(jù)等信息通知VP程序中的主控單元,來完成刀具運動的前期準備。
在開發(fā)過程中,采用在組件生成的DLL中導(dǎo)出全局變量的方法來實現(xiàn)機床操作面板GLS組件與VP進行數(shù)據(jù)共享,刀具移動軌跡如圖5所示,詳細開發(fā)步驟如下:
(1)在GLS組件的頭文件中聲明:__declspec(dllexport)int GlobalData,使其他組件可以訪問全局變量GlobalData。比如:定義按鍵1的變量為int run1,然后在file的頭文件中聲明__declspec(dllexport)int run1,從而便可以通過變量run1來實現(xiàn)GLS組件向Vega Prime進行數(shù)據(jù)傳遞。
(2)生成*.dll和*.lib文件,并在需要使用全局變量GlobalData的組件程序中完成配置。配置過程如下:在Project屬性Linker中選擇general,然后在Additional Library Directories中添加*.lib的路徑;在input中的Additional Dependencies中添加生成的*.lib。
(3)在VP代碼中聲明:extern__declspec(dllimport)int GlobalData;并將生成的*.dll文件拷貝至該組件文件夾下。這樣GlobalData數(shù)據(jù)就以全局變量的形式導(dǎo)入到了VP中。
通過虛擬數(shù)控機床仿真系統(tǒng)的開發(fā)實踐,使用Vega Prime與GL Studio相結(jié)合的方法聯(lián)合開發(fā)數(shù)控仿真系統(tǒng),證明了無論是在三維場景的仿真還是在虛擬儀表的仿真方面都能收到很好的效果,該技術(shù)可廣泛應(yīng)用于三維可視化仿真領(lǐng)域。