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