【摘要】針對目前數控車削加工的實際特點,研究開發了一種數控車削程序校驗軟件。該軟件是基于Windows開發平臺下的Visual C++6.0開發環境和OpenGL圖形設備接口開發的數控車床仿真系統,軟件實現了G、M、F、T、S等常用數控代碼的仿真功能,并且實現了常用三維軟件的各種視圖、平移、旋轉、放大、縮小、渲染、光照、材質等操作。在教學演示、加工程序校驗中具有一定的實際應用價值。
【關鍵詞】數控車削;仿真系統;Visual C++6.0;OpenGL;數控代碼
1.前言
多品種小批量的生產已經成為現代制造業的主要的生產模式,數控車床正是適應這種生產模式柔性化的生產工具。數控加工過程隱含在數控程序中,數控程序中的錯誤不容易發現,因此無論是在實際生產中、還是教學的過程中都造成很大的資源、人力、物力的浪費。從教學的角度說,可以提高學生的學習興趣,使學生可以按照自己的想象力來進行實際練習,又不必擔心浪費資源;從企業培訓的角度來說,可以減少由于培訓過程中實際加工造成的毛胚、刀具的浪費和對機床的損害,同時可以讓學員充分了解加工過程;從實際生產的角度來說,可以在產品實際加工之前確定合理的、優化的加工方案,并且可以進行模擬試切加工,不但提高了生產效率, 產品的質量得到了很大保證[1-2]。
國外的數控車床的水平已經很高,然而我國現代制造業的數控車的水平還不是很高主要原因之一就是,現在的企業或者科研單位都不能花費大量的財力和資源來培養數控車的技術人員,而實際的操作是培養這些人員的必經之路,因此開發一套數控車床的加工過程仿真軟件是十分必要的。
2.仿真系統的實現方法[3-4]
仿真過程的實質是做出符合實際運動規律的動畫,因此核心是計算每一幀工件的輪廓,以往的設計中有使用下面的設計思路:首先把加工的零件離散成空間的點坐標,通過每三個點按照一定的方向科學的生成一個三角面片,只要工件離散的點坐標足夠的密,就可以通過OpenGL顯示非常逼真的模型。通過計算每一時刻的刀具軌跡來改變組成工件的空間坐標系的點坐標。這樣一幀一幀顯示就可以模擬工件的連續的被加工的過程。
考慮上述方法的計算量較大,我們采用只改變要加工的一塊軸段。可以設計一個顯示鏈表,該鏈表的初值就是毛胚鏈表。我們可以通過刀具軌跡判斷出要加工哪個軸段,然后對該軸段進行修改。這樣我們把注意力放在了被加工的軸段上,可以極大的減少計算量。
3.仿真系統的結構[5-7]
(1)設計毛胚模塊
該模塊主要是要求用戶輸入加工零件的毛胚信息。由于軸類零件的毛胚的形狀比較規則,本仿真系統只提供了五種類型的軸段類型,即圓柱、左圓臺、右圓臺、左圓錐、右圓錐。這樣就可以描述一般的軸類零件的毛胚,因此首先要求用戶輸入毛胚的段數,然后設置每段毛胚的幾何信息,如圖3所示。
(3)數控程序的輸入、輸出模塊
該模塊主要是完成用戶的數控代碼導入、導出、編輯。用戶可以導入文本文件也可以在視圖中進行手動編輯,并且可以把滿足仿真要求的代碼導出到文本文件中。
實現該功能可以利用Visial C++6.0 MFC類庫中提供的視圖類CEditView,可以從該類派生出自己的視圖類用來實現數控程序的輸入、輸出。主要用到了CEditView:: SerializeRaw(CArchive ar),該函數通過與文本文件關聯的CArchive對象方便的實現文本文件的輸入、輸出。
(b)計算仿真顯示鏈表
用毛胚鏈表初始化仿真顯示鏈表,通過Status類實例化的對象可以知道加工方式,包括直線差補、圓弧差補、快速走刀;刀的位置信息,包括起始點、下一點坐標信息。這樣我們可以知道將要加工的是在哪個軸段上,然后根據Status參數建立新的軸段并且修改原來的軸段,再將新建的軸段插入到顯示鏈表中,然后將加工哪個軸段信息存入到Status中。
(c)開發和封裝OpenGL與CView的類庫
主要用到了OpenGL的圖形繪制、變換操作(縮放、旋轉、平移)、光照與材質、動畫技術。通過GCamara來封裝與OpenGL有關的取景操作,如視圖變換、投影變換、視口變換,就像一個照相機的取景過程,需要改變照相機的位置、角度、伸縮鏡頭。通過COpenGLDC來封裝OpenGL渲染環境與窗口的關聯、繪圖操作、光源的設計、顏色的設置,并且把GCamara定義為COpenGLDC的數據成員完成取景操作。通過CView派生出COpenGLView,將COpenGLDC實例化的類對象定義為COpenGLView的數據成員,并且在COpenGLView的消息函數中完成COpenGLDC與COpenGLView的連接。這樣我們在使用COpenGLView時功能就很強大了,它封裝了OpenGL的各種功能。使用時只要從COpenGLView派生出自己的視圖,然后在相應的消息函數中調用基類的相應的消息函數,就可以很方便的使用了。
(d)顯示仿真鏈表
顯示仿者鏈表主要就是利用Visual C++6.0提供的SetTimer()函數設置幾個定時器,然后再在相應的響應函數OnTimer()中修改下一偵的顯示數據,這樣就可以看到一個連續的仿真加工過程了。主要是修改加工軸段的信息,其他的軸段直接按照顯示鏈表繪制就行。
(5)系統幫助模塊
主要用于向使用者提供關于軟件的使用說明及相關的技術說明,主要包括仿真的基本步驟、系統說明、設計毛胚、選擇刀具、要求的數控代碼的格式。
4.結論
本文設計開發的數控車削加工仿真系統具有對形狀較復雜的軸類零件進行高效準確的程序校驗的功能,并且可以動態地、直觀地顯示零件的加工過程,實現非實際切削過程中的數控程序檢驗,有效的解決了復雜軸類零件的數控加工程序的校驗問題。本系統簡單實用,根據仿真系統規模可以擴展功能,對提高生產效率和減少加工成本有著重要意義。該軟件在教學實踐中受到廣大師生的一致好評,仿真效果真實。
參考文獻
[1]王太勇,等.數控車床仿真加工系統開發[J].西南交通大學學報,2003(10).
[2]伍鐵軍,等.數控仿真的時時真實感圖形的顯示[J].計算機輔助設計及圖形學學報,2000,4.
[3]和平鴿工作室.OpenGL高級編程與可視化系統開發篇[M].中國水利水電出版社,2003.
[4]和平鴿工作室.OpenGL程序設計指南[M].中國水利水電出版社,1999.
[5]Microsoft, Microsoft Developer NetWork, Online Help, 2000.
[6]楊彬.如何使用Visual C++ 6.0[M].機械工業出版社,1999.
[7]薛萬鵬,等,譯.C++程序設計教程[M].機械工業出版社,2000.
作者簡介:李夢梅(1971—),吉林長春人,長春市機械工業學校講師。