崔偉清,閆明,張琦
CUI Wei-qing, YAN Ming, ZHANG Qi
(華北電力大學(xué),保定 071003)
車銑仿真系統(tǒng)的研究
Research on simulate system of nc lathe and nc milling machine
崔偉清,閆明,張琦
CUI Wei-qing, YAN Ming, ZHANG Qi
(華北電力大學(xué),保定 071003)
論述了一種基于VC++和OpenGL的虛擬車銑加工仿真系統(tǒng),建立了虛擬設(shè)備實(shí)現(xiàn)整體動(dòng)態(tài)仿真的過(guò)程框架圖,以及對(duì)所建場(chǎng)景實(shí)現(xiàn)三維實(shí)時(shí)漫游功能進(jìn)行了分析與研究。這些功能的實(shí)現(xiàn)是本系統(tǒng)區(qū)分同類系統(tǒng)的一個(gè)顯著特征,也是數(shù)控仿真軟件在制造業(yè)應(yīng)用中發(fā)展的必然趨勢(shì)。
OpenGL;整體仿真;數(shù)控機(jī)床;坐標(biāo)系
隨著虛擬制造技術(shù)的應(yīng)用日漸增強(qiáng),虛擬機(jī)床的仿真系統(tǒng)的研究越來(lái)越受到學(xué)者們的關(guān)注,相應(yīng)地開(kāi)發(fā)出了許多單一數(shù)控機(jī)床仿真系統(tǒng),如最為常見(jiàn)的數(shù)控車削仿真系統(tǒng)[1]、數(shù)控銑削仿真系統(tǒng)[2]以及數(shù)控車銑仿真系統(tǒng)[3],然而這些仿真系統(tǒng)在實(shí)際應(yīng)用較少。隨著制造業(yè)自動(dòng)化程度的提高,為了提高虛擬制造系統(tǒng)在現(xiàn)實(shí)中的應(yīng)用和適應(yīng)時(shí)代的發(fā)展,數(shù)控仿真系統(tǒng)必須朝著模擬自動(dòng)化工廠的方向發(fā)展。寧夏小巨人機(jī)床有限公司的智能生產(chǎn)中心是虛擬制造系統(tǒng)應(yīng)用的典范,它通過(guò)網(wǎng)絡(luò)與車間實(shí)際機(jī)床設(shè)備相連接,把實(shí)際機(jī)床設(shè)備的操作轉(zhuǎn)化為在電腦屏幕上的設(shè)備圖標(biāo)的操作,只要雙擊任意一臺(tái)設(shè)備圖標(biāo),可以顯示刀具號(hào)、程序號(hào)、所加工工件的數(shù)量等相關(guān)內(nèi)容,這只是智能生產(chǎn)中心的部分功能。它的應(yīng)用給我們帶來(lái)很大的啟發(fā),未來(lái)的制造業(yè)必然是朝著智能化、自動(dòng)化的方向發(fā)展。因此對(duì)數(shù)控機(jī)床整體仿真的研究具有重要的現(xiàn)實(shí)意義。同時(shí)為了給觀察者提供全方位的觀察角度,能使操作者在計(jì)算機(jī)上產(chǎn)生一種好像融入虛擬場(chǎng)景的感覺(jué),因此對(duì)所建場(chǎng)景進(jìn)行三維實(shí)時(shí)漫游的研究具有重要的意義。
為了使系統(tǒng)中的設(shè)備不僅可以單獨(dú)進(jìn)行幾何仿真,而且可以同時(shí)進(jìn)行整體幾何仿真,為此經(jīng)過(guò)研究分析構(gòu)建了數(shù)控機(jī)床整體仿真過(guò)程框架圖如1所示。下面對(duì)框架圖進(jìn)行分析闡述:
眼坐標(biāo)系 眼坐標(biāo)并不是真正的坐標(biāo),而是代表一個(gè)虛擬的固定坐標(biāo)系,它與可能發(fā)生的任何變換無(wú)關(guān),是用作參考的公共框架[4]。當(dāng)用OpenGL繪圖時(shí),所用的笛卡爾坐標(biāo)系在未進(jìn)行任何變換時(shí)是與眼坐標(biāo)系完全相同的。所有類型的變換都是將當(dāng)前坐標(biāo)系(未進(jìn)行任何變換時(shí)可以認(rèn)為與眼坐標(biāo)系重合)相對(duì)應(yīng)眼坐標(biāo)系進(jìn)行修改,這在本質(zhì)上就是如何移動(dòng)和旋轉(zhuǎn)場(chǎng)景中的對(duì)象。如圖2給出了一個(gè)二維坐標(biāo)系的例子,這個(gè)坐標(biāo)系相對(duì)于眼坐標(biāo)系順時(shí)針旋轉(zhuǎn)了45°。在這個(gè)旋轉(zhuǎn)的坐標(biāo)系上畫(huà)的一個(gè)正方形看起來(lái)也旋轉(zhuǎn)了。
變換 這里的變換主要是指的模型變換即平移、旋轉(zhuǎn)、縮放等三種模型變換。當(dāng)當(dāng)前坐標(biāo)系經(jīng)過(guò)變換繪制設(shè)備模型后,為了不影響其它設(shè)備在眼坐標(biāo)系中的位置(以眼坐標(biāo)系為參考),必須在繪制設(shè)備模型函數(shù)后做一次相對(duì)以的反變換,來(lái)保證其它設(shè)備在眼坐標(biāo)系中的狀態(tài)。這樣各個(gè)設(shè)備在場(chǎng)景中的任何位置上可以放置了,同時(shí)也實(shí)現(xiàn)了每個(gè)設(shè)備可以單獨(dú)進(jìn)行平移、旋轉(zhuǎn)、縮放等操作而不影響其它設(shè)備在眼坐標(biāo)系中的狀態(tài)。當(dāng)各個(gè)設(shè)備按適當(dāng)?shù)奈恢媒M成場(chǎng)景后,即圖1的雙點(diǎn)畫(huà)線框內(nèi),在雙點(diǎn)畫(huà)線框外進(jìn)行的變換為對(duì)整個(gè)視圖場(chǎng)景的變換操作即整個(gè)場(chǎng)景的俯視圖、正視圖放大、縮小、平移等。
局部坐標(biāo)系 本系統(tǒng)建立的局部坐標(biāo)系,是指為了方便設(shè)備中的運(yùn)動(dòng)模型而建立的坐標(biāo)系,如卡盤旋轉(zhuǎn)(繞卡盤中心線軸),工件旋轉(zhuǎn)(繞工件中心軸),旋轉(zhuǎn)部件的局部坐標(biāo)系的一個(gè)軸必須跟旋轉(zhuǎn)中心軸重合或延伸重合。
當(dāng)設(shè)備模型在當(dāng)前坐標(biāo)系i的位置上畫(huà)出后,由于在繪制設(shè)備函數(shù)開(kāi)頭通過(guò)glPushMatrix()函數(shù)保存當(dāng)前坐標(biāo)系i的位置,在繪制設(shè)備函數(shù)末尾用glPopMatrix()函數(shù)恢復(fù)當(dāng)前坐標(biāo)系i的位置,因此設(shè)備在局部坐標(biāo)系中經(jīng)過(guò)旋轉(zhuǎn)、平移、縮放等幾何仿真所需的變換等操作不會(huì)影響其它設(shè)備的位置狀態(tài),即實(shí)現(xiàn)了設(shè)備獨(dú)立仿真的同時(shí)又可以整體仿真理論分析過(guò)程。
圖1 數(shù)控機(jī)床整體仿真過(guò)程框架圖
利用OpenGL中的雙緩沖技術(shù),通過(guò)編程實(shí)現(xiàn)了設(shè)備的獨(dú)立仿真和整體仿真。設(shè)備的仿真是在視圖類(CView)中OnTimer()函數(shù)實(shí)現(xiàn)的。在OnTimer()響應(yīng)不同的定時(shí)器,利用定時(shí)器每隔一定的時(shí)間就產(chǎn)生一個(gè)時(shí)鐘脈沖,來(lái)控制虛擬機(jī)床的相應(yīng)部件按照數(shù)控代碼中設(shè)置的值進(jìn)行逐步地移動(dòng)或旋轉(zhuǎn)。只要把定時(shí)器的定時(shí)間隔值設(shè)置為合適的值,就能夠產(chǎn)生出平滑而又逼真的運(yùn)動(dòng)仿真效果。在本系統(tǒng)的開(kāi)發(fā)中利用定時(shí)器發(fā)出的脈沖,觸發(fā)相應(yīng)的動(dòng)作,刀具和工件在運(yùn)動(dòng)的同時(shí)做布爾運(yùn)算,即可得到加工后的工件效果圖,車削加工時(shí)的效果如圖2所示,銑削時(shí)加工時(shí)的效果如圖3所示。整體設(shè)備加工時(shí)效果如圖4所示,從圖4中我們可以看出,有兩臺(tái)車床在加工外圓,且所加工的工件直徑和已加工過(guò)的外圓的長(zhǎng)度不同。在車床加工的同時(shí),一臺(tái)銑床正在加工槽,另一臺(tái)銑床處于停車狀態(tài),這說(shuō)明了本系統(tǒng)實(shí)現(xiàn)了設(shè)備的整體幾何仿真。
圖2 外圓車削效果圖
圖3 銑槽效果圖
圖4 整體設(shè)備加工時(shí)效果圖
虛擬漫游技術(shù)是虛擬現(xiàn)實(shí)技術(shù)(VR)的技術(shù)的一個(gè)重要分支,廣泛應(yīng)用于建筑、游戲、醫(yī)學(xué)、航空航天等多種行業(yè)中[5],利用虛擬漫游技術(shù)可以使人在所建的場(chǎng)景中有一種“身在其中”的沉浸感。本系統(tǒng)雖然在設(shè)備布局階段,用戶可以從全方位的角度完成在虛擬環(huán)境中生產(chǎn)線所需要的設(shè)備布局,這個(gè)虛擬環(huán)境給用戶提供了較強(qiáng)的三維感受,但是不能使用戶獲得“身在其中”的沉浸感。試想一下用戶參觀一條真正的設(shè)備生產(chǎn)線的情況:隨著用戶的運(yùn)動(dòng)變化,看到的設(shè)備景物也在變化,抬頭可以看見(jiàn)天車,低頭可以看見(jiàn)底面上的零件,對(duì)自己感興趣的東西可以近距離觀察。為了讓用戶在計(jì)算機(jī)上同樣能體會(huì)到沉浸感,正是本系統(tǒng)研究場(chǎng)景實(shí)時(shí)漫游技術(shù)的意義所在。
在三維場(chǎng)景的漫游過(guò)程實(shí)際上就是觀察者視點(diǎn)和視線不斷變化的過(guò)程,即當(dāng)視點(diǎn)的位置、視線發(fā)生改變時(shí),場(chǎng)景中的物體相對(duì)于觀察者的方位也發(fā)生了改變,從而產(chǎn)生了“動(dòng)感”。視點(diǎn)可以認(rèn)為是人眼,其功能與現(xiàn)實(shí)世界的照相機(jī)類似。視線方向是由視點(diǎn)位置坐標(biāo)與參考點(diǎn)位置坐標(biāo)相減所得的向量方向。漫游的動(dòng)作一般而言主要有前進(jìn)、后退、左移、右移、仰視、俯視、左轉(zhuǎn)、右轉(zhuǎn)、上升、下降等10個(gè)動(dòng)作組成[6],而本系統(tǒng)主要研究前進(jìn)、后退、左移、右移、左轉(zhuǎn)、右轉(zhuǎn)、仰視、俯視等8種基本動(dòng)作。本系統(tǒng)的漫游功能是利用OpenGL中的gluLookAt()函數(shù)并放在繪制模型函數(shù)之前實(shí)現(xiàn)的,通過(guò)改變響應(yīng)的函數(shù)中的參數(shù)實(shí)現(xiàn)漫游效果如圖5所示。
虛擬設(shè)計(jì)軟件的漫游動(dòng)作操作由鍵盤完成,用戶通過(guò)鍵盤可以方便地實(shí)現(xiàn)漫游功能,其中鍵盤上的前后方向鍵為前進(jìn)后退;左右方向鍵為左移、右移;翻頁(yè)鍵 PageUp 、PageDown為左轉(zhuǎn)、右轉(zhuǎn);Home、End 鍵分別為俯視、仰視。其實(shí)現(xiàn)部分代碼如下:
圖5 三維漫游效果圖
在漫游的過(guò)程中如果不對(duì)漫游加以控制,漫游就可以達(dá)到由墻壁、地板、天花板、電腦屏幕組成的車間外面,這不符合實(shí)際情況。為了符合實(shí)際情況,必須對(duì)漫游加以限制,限制在車間內(nèi)部。我們知道漫游的過(guò)程是視點(diǎn)變化的過(guò)程,視點(diǎn)的位置就是人的眼睛的觀察位置,
因此把視點(diǎn)的位置控制在車間組成的空間內(nèi),就可以把漫游控制在車間內(nèi)部了。具體的實(shí)現(xiàn)過(guò)程是在視圖類的鍵盤處理函數(shù)OnKeyDown()中在漫游動(dòng)作實(shí)現(xiàn)代碼前添加視點(diǎn)邊界約束代碼,具體代部分碼如下:
void CChfView::OnKeyDown(UINT nChar,UINT nRepCnt, UINT nFlags)
{
…if (s_eye[0]>=3) s_eye[0]=3;//視點(diǎn)x坐標(biāo)的最大值
if(s_eye[0]<=-3) s_eye[0]=-3;// 視點(diǎn)x坐標(biāo)的最小值
if(s_eye[1]>=5) s_eye[1]=5;// //視點(diǎn)y坐標(biāo)的最大值
…
}
虛擬場(chǎng)景構(gòu)造是虛擬加工系統(tǒng)的基礎(chǔ),基于OpenGL和Visual C++的虛擬加工系統(tǒng)框架的設(shè)計(jì)與研究為創(chuàng)建更加完善逼真的虛擬車間加工系統(tǒng)打下了基礎(chǔ)。本系統(tǒng)只是對(duì)虛擬加工系統(tǒng)框架上做了初步的研究。系統(tǒng)中的機(jī)床模型外觀與實(shí)際機(jī)床外觀還有一定的出入;虛擬設(shè)備還沒(méi)有和實(shí)際機(jī)床進(jìn)行網(wǎng)絡(luò)通訊;搬運(yùn)小車導(dǎo)軌等虛擬加工線中的一些必要設(shè)備等,同時(shí)只是對(duì)加工線的動(dòng)態(tài)幾何仿真做了比較深入的研究,對(duì)設(shè)備的加工過(guò)程中的物理仿真研究較少。因此該系統(tǒng)還有不足之處,要建立功能完善的虛擬加工系統(tǒng)還需要進(jìn)一步的研究。
[1] 王賢虎.數(shù)控車削仿真系統(tǒng)的研究[D].合肥:合肥工業(yè)大學(xué),2006.
[2] 王晉濤.數(shù)控銑削加工過(guò)程仿真的研究與分析[D].保定:華北電力大學(xué),2007.
[3] 李春麗.數(shù)控加工仿真系統(tǒng)中的車銑加工仿真關(guān)鍵技術(shù)研究與實(shí)現(xiàn)[D].上海:上海師范大學(xué),2006.
[4] Richard S.Wright,Jr.Benjamin Lipchak.OpenGL超級(jí)寶典(第二版)[M].北京:人民郵電出版社,2005,120-121.
[5] 于長(zhǎng)輝.虛擬運(yùn)動(dòng)場(chǎng)漫游[J].中國(guó)科技信息,2008,20.
[6] 劉惠義.虛擬視景交互漫游過(guò)程中視點(diǎn)的運(yùn)動(dòng)控制方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2004,24(3):693-695.
TP391
A
1009-0134(2010)10(下)-0030-03
10.3969/j.issn.1009-0134.2010.10(下).09
2009-09-11
崔偉清(1964 -),男,北京人,高級(jí)工程師,工學(xué)碩士,主要從事數(shù)字化制造與故障診斷等方面的研究。