在建模過(guò)程中系統(tǒng)使用VisualC6.0語(yǔ)言來(lái)編碼,采用標(biāo)準(zhǔn)的圖形接口,實(shí)現(xiàn)對(duì)OpenGL的支持。由于OpenGL良好的可移植性,特別是與VisualC面向?qū)ο缶幊誊浖Y(jié)合,利用MFC類庫(kù)作為OpenGL與Windows的接口,編譯出動(dòng)態(tài)連接庫(kù),加強(qiáng)了其它應(yīng)用程序調(diào)用的能力。開(kāi)發(fā)出不但具有立體感強(qiáng)的三維效果,而且能夠提供良好的交互式功能的圖形軟件,使圖形的效果得到直接控制。因此,系統(tǒng)的開(kāi)發(fā)采用OpenGL來(lái)實(shí)現(xiàn)虛擬現(xiàn)實(shí)接口。
用OpenGL建立數(shù)控加工系統(tǒng)的三維模型在Windows下用GDI作圖通過(guò)設(shè)備描述表(DC)調(diào)用相應(yīng)的函數(shù);用OpenGL作圖也是類似,OpenGL函數(shù)是通過(guò)渲染描述表(RC)完成三維圖形的繪制。Windows下的窗口和設(shè)備描述表支持位圖格式屬性,與RC有著位圖結(jié)構(gòu)上的一致。只要在創(chuàng)建RC時(shí)與一個(gè)DC建立聯(lián)系,OpenGL的函數(shù)就可以通過(guò)RC對(duì)應(yīng)的DC畫到相應(yīng)的顯示設(shè)備上。
經(jīng)過(guò)上面的分析,用VisualC建立基于OpenGL的仿真模型步驟如下:創(chuàng)建項(xiàng)目文件NCSystem,包含頭文件與函數(shù)庫(kù)文件glgl.h、glglu.h、glglaux.h、opengl32.lib、glu32.lib、glaux.lib文件。
自定義返回類型為BOOL的保護(hù)成員函數(shù)bSetupPixelFormat設(shè)置像素格式,在View類中的OnCreate函數(shù)中調(diào)用它。定義返回類型為void的Protected成員函數(shù)Init,創(chuàng)建著色描述表并當(dāng)前化著色描述表,執(zhí)行完成后,用View類中OnDestroy函數(shù)完成刪除該著色描述表以及綁定上該著色描述表的設(shè)備描述表。在OnCreate函數(shù)中調(diào)用Init,使OpenGL內(nèi)核得到通知已正確地創(chuàng)建了像素格式和著色描述表并對(duì)其進(jìn)行了有效的管理。在PreCreateWindows函數(shù)中添加cs.style|=WS_CLIPCHILDREN|WS_CLIPSIBLINGS.接下來(lái)在Init函數(shù)中編輯程序以獲得客戶區(qū)的大小、消除深度緩存、啟動(dòng)深度測(cè)試及啟動(dòng)OpenGL模型變換。在View類中的OnDraw函數(shù)中調(diào)用自定義的DrawScene函數(shù)來(lái)完成模型繪制工作。用SwapBuffers函數(shù)交換兩個(gè)緩存中的內(nèi)容顯示模型。
這樣就構(gòu)造了一個(gè)基于OpenGL標(biāo)準(zhǔn)的數(shù)控加工可視化仿真模型框架。主界面完成的功能及設(shè)計(jì)主界面分3個(gè)區(qū):數(shù)據(jù)的動(dòng)態(tài)顯示區(qū)、軌跡動(dòng)態(tài)顯示區(qū)、加工程序顯示區(qū)。數(shù)據(jù)的動(dòng)態(tài)顯示區(qū)包括工件坐標(biāo)和機(jī)床坐標(biāo)值、每個(gè)加工段的相對(duì)坐標(biāo)值顯示以及加工時(shí)的刀號(hào)、主軸轉(zhuǎn)速、進(jìn)給速度的顯示。從主界面中直接進(jìn)入機(jī)床調(diào)整界面、NC代碼的編輯和編譯界面、自動(dòng)加工界面、系統(tǒng)參數(shù)設(shè)置界面。
結(jié)語(yǔ)在VC開(kāi)發(fā)環(huán)境下構(gòu)建了一個(gè)基于OpenGL的標(biāo)準(zhǔn)程序框架,實(shí)現(xiàn)了數(shù)控加工銑削運(yùn)動(dòng)的仿真系統(tǒng),縮短了研發(fā)周期,節(jié)省資金,并為新的研究方法及理論搭建了一個(gè)可視化測(cè)試平臺(tái),亦可作為虛擬制造中的一個(gè)制造單元工具,實(shí)現(xiàn)產(chǎn)品的數(shù)字化生產(chǎn)。同時(shí)系統(tǒng)具有如下的特點(diǎn):(1)易移植性:雖然是在WindowsXP平臺(tái)上開(kāi)發(fā)的,但采用OpenGL生成圖形,它獨(dú)立于窗口系統(tǒng)和操作系統(tǒng),因此十分方便地在各種平臺(tái)間移植;(2)真實(shí)性:由于采用實(shí)體造型,結(jié)合光照、紋理、顏色等一系列特殊處理,使得仿真加工環(huán)境更接近真實(shí);(3)易開(kāi)發(fā)性:OpenGL的使用,使系統(tǒng)圖形的編程量減少,開(kāi)發(fā)者無(wú)須掌握大量的圖形學(xué)知識(shí),而可以集中精力掌握困難的算法問(wèn)題。