張玉霞,王培俊,扈志遠,聶良兵,潘璇
(西南交通大學國家級機械基礎實驗示范中心,四川成都 610031)
虛擬制造以計算機為平臺,在計算機仿真環(huán)境下進行加工而不消耗物理資源,對真實產品制造的動態(tài)進行描述[1]?,F實的數控加工開始前需要檢查NC代碼是否有錯,加工過程中需檢驗加工是否符合要求,通常需要試切檢驗,造成一些不必要的資源浪費和產品生產周期的加長。虛擬數控加工仿真技術在此背景下應運而生,在虛擬環(huán)境下用戶可以實現對產品從設計、加工和裝配、檢驗到使用整個生命周期的模擬和仿真。虛擬數控加工仿真系統(tǒng)的研究開發(fā),不僅能節(jié)約資源、避免損失,而且可以通過模擬機床及加工過程來培訓數控機床操作人員,也可以幫助機床制造商向遠程客戶演示其產品[2]。數控加工作為現代機械加工的主要方式,對其過程進行仿真具有重要的理論研究和實用價值[3]。本文以長征機床廠KV800型數控銑床為原型,在研究其操作手冊的基礎上,開發(fā)了虛擬數控銑削仿真系統(tǒng),實時模擬數控銑孔的過程,通過控制面板實現人機交互操作功能。
系統(tǒng)包括三個模塊:銑床場景模塊、控制面板模塊、銑孔加工模塊。其中銑孔加工模塊包括銑孔算法、刀具庫、毛坯庫和NC代碼解析模塊,如圖1所示。各個模塊的功能分別為:
圖1 虛擬數控加工系統(tǒng)的結構組成圖
a)銑床場景模塊:通過Pro/E等建模軟件建立銑床的主要結構部件,轉換為.3ds文件,導入到程序中。
b)控制面板模塊:人機交互界面的主要組成部分,通過點擊操作面板上的按鈕實現機床的各種功能以及創(chuàng)建、載入和保存NC代碼等。
c)銑孔加工模塊:1)銑孔算法:主要是實現銑孔過程中毛坯材料去除過程的模擬。2)刀具庫及毛坯庫:根據不同的加工需求選擇符合要求的刀具,設定毛坯參數,實時創(chuàng)建并安裝毛坯。3)NC代碼解析模塊:通過對用戶自定義的NC代碼進行讀取并編譯,獲得關鍵加工信息。
虛擬數控加工仿真系統(tǒng)的基礎是虛擬加工環(huán)境的模型建立。通過計算機圖形處理技術構建物體的三維幾何模型,對于所需要虛擬仿真的物體原型進行真實模擬,提供重要的幾何信息和加工信息[2]。本系統(tǒng)采用 Visual Studio 2010編譯軟件,以OpenGL底層庫為基礎。虛擬加工環(huán)境的建模方法主要有兩種。1)直接以OpenGL圖形庫為基礎,通過VC++程序調用圖形庫的函數來完成建模。這種方法占用系統(tǒng)資源少、系統(tǒng)配置要求比較低,但模型建立比較復雜、難度比較高。2)通過第三方建模軟件,解決了復合模型建立的問題,造型比較美觀,但占用系統(tǒng)資源比第一種方法大得多,對系統(tǒng)配置要求比較高[3]。
虛擬數控銑床是由許多零部件構成的裝配體,結構復雜,選用OpenGL圖形庫進行造型非常困難。而第二種方法采用實體幾何法建模思想,層次化、結構化構建機床模型,將機床的復雜建模轉化為簡單形體的建?;顒拥慕M合。本文選擇三維建模軟件Pro/E進行建模,建模思路為:采用實體幾何建模思想,以實際數控銑床為對象,忽略機床伺服裝置和內部傳動裝置,根據各零部件物理模型之間的裝配關系裝配成一臺完整的虛擬機床。裝配關系應當全面地表達零部件之間的連接性、層次性。
虛擬加工仿真的過程是在基于OpenGL底層圖形庫的VC++框架中進行的,由外部軟件建立的機床模型必須導入到VC++框架中,方法有轉換法和直接導入法。轉換法由第三方軟件(如Deep Exploration,3DExploration等)完成,具體步驟如下:將Pro/E模型文件保存為.obj的標準3D模型文件,導入Deep Exploration中,轉存為.cpp文件。這些cpp文件可以在VC++框架中以頭文件的形式導入整個機床模型[4]。此方法比較簡單方便,但是數據都是包裝在文件中的,不方便整改,而且尺寸多有變化,不方便進行裝配。此處采用第二種方法,直接解析.3ds文件格式,編寫相應的3DSLoader類將其模型數據讀入內存進行繪制,方便裝配。
人機交互控制系統(tǒng)是虛擬仿真系統(tǒng)的重要組成部分,采用MFC框架進行開發(fā),三維圖形界面如圖2所示,包括主菜單、工具欄、圖形顯示區(qū)以及操作面板區(qū)和狀態(tài)欄。通過菜單按鈕和操作面板區(qū)按鈕可以執(zhí)行相應的命令,比如加載坯料、選擇刀具等。在圖形顯示區(qū)可以通過鼠標的點擊拖拽以及滾輪的滾動,方便的實現對模型的各視角的觀察以及縮放。
圖2 虛擬加工環(huán)境三維界面
在毛坯的加工過程中伴隨有物理變換和幾何變換。物理變換主要有:刀具與坯料之間的作用力、熱量的轉換等。幾何變換主要是坯料幾何模型的變換。由于物理變換比較復雜、視覺效果不明顯,在系統(tǒng)中只考慮幾何變換。
由于毛坯在加工過程中幾何形狀時時改變,所以直接采用VC++程序調用OpenGL圖形庫進行毛坯的幾何建模,滿足虛擬加工的實時性、交互性的要求。毛坯幾何建模的方法主要是:1)離散化建模,這種實體造型方法所表達的幾何模型,對實體造型要求高、計算量大,相當耗時。2)單元體化建模,速度快,能夠實現實時仿真,但由于單元體的模擬過程單一,不宜進行精確的加工仿真[5]。本系統(tǒng)針對的是銑孔加工,毛坯多為平面體,多用在平面上打孔,所以采用面片法建模。將毛坯分為六個面片,在需要開孔的面片上進行打孔。采用此方法數據存儲量少,仿真效果精確。
虛擬數控銑孔仿真是數控銑床在虛擬環(huán)境中的映射,它能實現功能特征、幾何特征與實際銑床的一致性。真實的數控銑孔加工過程中,主要運動包括銑床的運動以及切削工件的運動。因此數控銑孔加工仿真主要分為銑床運動仿真和去除材料仿真兩部分。
機床運動仿真主要表現為卡盤隨主軸的旋轉運動、大拖板與導軌之間相對運動,小拖板與大拖板之間的相對運動,刀具架的轉動等[6]。在OpenGL中利用OpenGL的雙緩存技術,配合時間計時器與響應函數,改變結構間的相對坐標,完成加工中各項運動仿真的效果。時間計時器的設定是通過添加消息響應函數ON_WM_TIMER()來實現的。利用函數SetTimer(n,t,NULL)設定標號為 n且每 t μs發(fā)送一次WM_TIMER消息的時鐘定時器。利用時間消息響應函數On Timer(UINT nIDEvent)設置每次刷新時變量改變值,即設定機床如何動作。利用KillTimer(n)關閉一個標號為n的定時器,該定時器不再發(fā)送WM_TIMER消息到程序,停止機床動作。
數控銑床銑孔過程中最重要的仿真是對毛坯材料去除過程的仿真,毛坯材料的去除算法決定了加工過程的真實性。去除材料仿真過程是利用計算機圖形技術,通過動畫的形式,形象直觀的模擬切削的過程[2]。本文設計了G代碼實時編譯模塊。首先,讀取NC代碼進行解析,獲得加工過程的關鍵數據,將數據傳遞給機床運動仿真模塊,在虛擬環(huán)境中完成切削加工。G代碼的讀取與加載如圖3所示。G代碼可以手工點擊面板上的字母按鈕逐個逐行輸入,同時也可以讀取外部TXT文件格式的G代碼,提高仿真效率。當代碼被加載到系統(tǒng)中后,C++的讀文件函數對其進行響應,讀取關鍵字的值,將其賦給控制切削變化的變量,配合時間計時器的響應函數,完成加工仿真。
圖3 G代碼的讀取與加載
數控銑床銑孔過程是工件刀具做回轉運動和z軸進給運動,因此可以通過設定孔類型、孔徑大小、孔的深度、刀具位置來實現參數化、動態(tài)化的加工仿真。其過程及原理如圖4所示。
圖4 銑孔過程原理示意圖
具體算法為:用面片法建立立方體,其中孔所在面利用模板緩存,開啟模板測試,以孔的半徑r為半徑畫一個圓,在這個圓內所有點的模板緩存設置為1,孔以外的點模板緩存位置設置為0,模板緩存值為1的點通不過模板緩存測試,只畫通過模板緩存測試的點。然后在圓心畫一個半徑為r的圓R。當刀具跟坯料發(fā)生干涉并向下移動H時,圓R向下移動H并產生一個高度為H的孔四周的圓柱面。整個銑孔的過程是對各個面的操作,通過對時間控制器的控制,完成整個工件毛坯的銑孔仿真。
在實時加工仿真中,刀具模型與坯料模型進行銑孔運算,根據運算結果更新工件實體庫中的數據信息,調用實體顯示函數,獲取更新后的工件毛坯模型數據并將其顯示在屏幕上。整個加工過程中,利用了OpenGL的雙緩存技術,定時器技術以及界面刷新技術。由于數據更新的速度遠遠大于使用實體顯示函數來更新造型的速度,因此可以獲得平滑逼真的動畫效果[7]。
本文基于VC++與OpenGL開發(fā)了虛擬數控銑床銑孔加工仿真系統(tǒng)。加工環(huán)境以及加工模塊的建模分別采用了外部建模然后導入和直接調用OpenGL底層圖形庫的方法,可以方便地模擬真實的機床,具有較好的可擴展性。系統(tǒng)的操作界面使用MFC編程設計,具有友好的人機交互性,用戶可以便捷的對整個系統(tǒng)的加工過程進行多視角的局部或整體的觀察。對G代碼實時讀取和自定義輸入,實現了銑孔加工的參數化動態(tài)仿真。刀具和毛坯的選擇設計完善了系統(tǒng)的仿真效果。切削加工的方針算法在一定程度上彌補了由外部模型導入帶來的系統(tǒng)壓力。實驗表明,仿真效果達到了預期要求,具有較好的現實意義。
[1]白廣利,楊洪亮,紀彬,等.虛擬制造技術的初步研究[J].石油機械,2005,33(9):78-82.
[2]侯磊,王培俊,李國良,等.基于OpenGL與VC++的虛擬數控車床加工仿真研究[J].機械工程與自動化,2011(167):4-10.
[3]谷峰,李印結.國際先進制造技術的研究動態(tài)[J].制造技術與機床,2006(5):40-43.
[3]其木格,李強.基于UG的虛擬機床運動學建模與仿真[J].機械制造與自動化,2007(05):26-29.
[4]陽旭,王培俊,楊利明,等.滑動軸承三維油膜壓力動態(tài)分布可視化研究[J].機械工程與自動化,2010(2):14-16.
[5]熊家偉,黃明吉,賈志新.虛擬數控車床仿真系統(tǒng)的研究與開發(fā)[J].機械制造與自動化,2006(03):95-96.
[6]陳云,杜齊明,董萬福,等.現代金屬切削刀具實用技術[M].北京:化學工業(yè)出版社,2008:200.
[7]余湛悅,周來水,張臣.提高數控加工仿真速度和效果的關鍵技術研究[J].計算機輔助設計與圖形學學報,2004,16(5):642-647.