1、引言
虛擬現(xiàn)實(shí)(Virtual Reality,簡稱VR),作為一門新興的高科技技術(shù),已廣泛應(yīng)用于航空、航天、制造等許多領(lǐng)域,該技術(shù)的一個(gè)重要應(yīng)用是對(duì)制造業(yè)一些現(xiàn)象的仿真,最典型的就是對(duì)數(shù)控加工過程的仿真。目前,基于曲面造型和實(shí)體造型的仿真技術(shù)已廣泛應(yīng)用于數(shù)控仿真中,對(duì)于三軸數(shù)控銑床的單面加工仿真也有了好的算法。
本文提出了一種新型的實(shí)體模型的實(shí)時(shí)修改算法,可以解決數(shù)控銑床多面加工實(shí)現(xiàn)問題,并且這種算法在數(shù)控加工仿真軟件中已得到了很好的應(yīng)用。本文將具體闡述多面加工實(shí)現(xiàn)算法的具體思想以及圖形的真實(shí)感處理,并給出了具體的圖示描述。
2、 算法特點(diǎn)及其實(shí)現(xiàn)步驟:
2.1 算法特點(diǎn)
這種方法主要利用矩陣網(wǎng)格來構(gòu)建被加工工件的表面,通過及時(shí)的修改銑刀所經(jīng)過的節(jié)點(diǎn)深度來顯示被加工物體的形狀。同時(shí)本算法還可以方便的實(shí)現(xiàn)銑刀的加速、減速和暫停以及被加工工件的實(shí)時(shí)縮放和旋轉(zhuǎn),為使用者提供不同的觀察視角和觀察方式。
我們提出的實(shí)體模型的實(shí)時(shí)修改算法的主要特點(diǎn)如下:
1)對(duì)實(shí)體的修改速度與加工代碼的多少無關(guān)。
2)計(jì)算過程穩(wěn)定可靠。
3)計(jì)算結(jié)果的顯示與觀察方式和視線方向無關(guān),在修改過程中或修改結(jié)束后可以實(shí)時(shí)縮放、旋轉(zhuǎn)和平移。
2.2 算法結(jié)構(gòu)定義
三軸數(shù)控銑床在X 軸,Y 軸,Z 軸發(fā)生移動(dòng)。被加工的毛坯一般為長方體。在計(jì)算機(jī)仿真過程中,我們選擇比較常用的平頭銑刀。將毛坯的表面均表示成m × n 的矩陣網(wǎng)格如圖1 所示。每個(gè)交叉點(diǎn)稱為節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn),它的相對(duì)上表面點(diǎn)坐標(biāo)是固定不變的,改變的是它的深度,以及畫圖時(shí)的方法。在仿真過程中,不斷的改變節(jié)點(diǎn)的深度來表達(dá)毛坯被加工的實(shí)際情況。通過增加m 和n 提高矩陣網(wǎng)格的密度,從而提高仿真精度。
先用相關(guān)的鏈表將落刀點(diǎn)及其刀的相關(guān)屬性保存下來。用二維數(shù)組形式記錄每個(gè)表面上的所有相關(guān)點(diǎn),及其每一點(diǎn)所對(duì)應(yīng)的鏈表信息,該鏈表用來存儲(chǔ)毛坯上以此點(diǎn)為起點(diǎn),垂直于該表面的直線上的所有被加工過的點(diǎn)。鏈表中的結(jié)點(diǎn)記錄的是加工點(diǎn)的坐標(biāo)。
2.3 算法步驟:
Step 1 : 初始化,將數(shù)控程序中,需要加工毛坯屬性及有關(guān)刀及落刀點(diǎn)的相關(guān)的信息讀入,其中包括待加工面的選擇。
Step 2 : 根據(jù)初始化信息,運(yùn)行取點(diǎn)算法,記錄那些點(diǎn)已被加工,那些點(diǎn)未被加工,即節(jié)點(diǎn)篩選。
在計(jì)算機(jī)的一次計(jì)算中,銑刀走過了一段直線距離,只有那些位于軌跡面上的節(jié)點(diǎn)才應(yīng)當(dāng)考慮其深度的修改,稱這些點(diǎn)為修改點(diǎn).若選擇加工面為ZOY,平頭銑刀走過一段直線,其軌跡面在X-Y 平面上的投影為矩形和兩個(gè)半圓合成的區(qū)域,為了計(jì)算簡單我們可以移動(dòng)坐標(biāo)系如圖2 所示:
其中 S 為銑刀起點(diǎn)在Z-Y 平面上的投影,E 是銑刀終點(diǎn)在Z-Y 平面上的投影,S 與E之間的距離為2L,原點(diǎn)是S 與E 的中點(diǎn)。對(duì)任意節(jié)點(diǎn)P(y,z)滿足一下條件之一則成為修改點(diǎn):
I. -R<= z <=R and -L<= y <=L
II. -R<= z <=R and | PS|<=R
III. -R<= z <=R and | PE|<=R
同理,若選擇加工其他面,方法類似,只是對(duì)應(yīng)坐標(biāo)有所變化。
Step 3 : 修改點(diǎn)的深度計(jì)算
平底銑刀的軌跡面有這樣一個(gè)性質(zhì):若選擇加工面為XOY,被平面z=Z0 所截是一個(gè)半徑為R 的面[6](如圖3 所示)。設(shè)SE 與X-Y 平面的夾角為a,修改點(diǎn)為P(x,y,z),
則I. 若 P 與S 的水平距離小于R,P 的深度應(yīng)該為與S 一樣。
II. 若 P 與S 的水平距離不小于R,那么由方程|(P-S)-(Z-Zs)/sina n|=R 可以得出P 的深度Z。
同理,若選擇加工其他面,方法類似,只是對(duì)應(yīng)坐標(biāo)有所變化。
Step 4 : 對(duì)零件表面上每一行、每一列上加工過的區(qū)間,及該區(qū)間中所對(duì)應(yīng)的最大加工深度,分別按行以鏈表形式連接起來、按列以鏈表形式連接起來。并在對(duì)應(yīng)鏈表的頭節(jié)點(diǎn)中記錄下,該行(或列)中區(qū)間所對(duì)應(yīng)的最大深度。
如圖4所示,對(duì)任一面,第m行:假定該行中,datal與data2間最大深度為h1,data3與data4間最大深度為h2,且h1>h2,則將生成如下鏈表:
鏈表的生成是動(dòng)態(tài)的,它會(huì)隨著加工的進(jìn)行不斷修改。然后對(duì)每個(gè)面做一個(gè)哈希表,用來記錄每個(gè)面上的所有相關(guān)點(diǎn),及其每一點(diǎn)所對(duì)應(yīng)的記錄深度點(diǎn)信息的鏈表。Step 5: 零件的畫圖實(shí)現(xiàn)。
該過程被分成兩部分:畫零件上未被加工的外表面和畫被加工后形成的包絡(luò)面。零件加工時(shí),要不斷對(duì)包絡(luò)面的側(cè)面邊界點(diǎn)收集。此時(shí)用到各個(gè)面對(duì)應(yīng)的哈希表信息。畫圖時(shí),根據(jù)加工不同的面,要對(duì)坐標(biāo)進(jìn)行轉(zhuǎn)換,使之表現(xiàn)在同一空間中。
2. 4 真實(shí)感處理:
本算法的實(shí)現(xiàn)工具是VC++6.0 與OpenGL,矩陣網(wǎng)格只是構(gòu)建了物體的“骨架”,要想在計(jì)算機(jī)上使物體具有真實(shí)感,還得考慮光線的處理。對(duì)每個(gè)節(jié)點(diǎn),為其定義一個(gè)法向量,在修改節(jié)點(diǎn)深度的同時(shí)修改法向量的值,就可以在仿真中加入對(duì)光線的處理了。
圖5 描述的例子中,毛坯的尺寸是300mm×300mm×200mm,矩陣網(wǎng)格為256×256,是使用了兩把直徑不同的平頭銑刀(直徑分別為:14mm、6mm),在分別對(duì)毛坯從不同的表面加工之后的結(jié)果。
3 結(jié)束語
在數(shù)控加工仿真中,除了對(duì)仿真的精度有要求外,還要能夠隨時(shí)的對(duì)加工過程加以控制[7]。本文的方法中,改變矩陣網(wǎng)格的密度就可以提高仿真精度,對(duì)一般的需求,512╳512 的密度網(wǎng)格已經(jīng)夠用了。由于采用了矩陣網(wǎng)格表示加工工件,因此,對(duì)工件的放縮,旋轉(zhuǎn)操作變得非常簡單,有利于使用者仔細(xì)觀察。該算法,已經(jīng)應(yīng)用到實(shí)際中,得到了較好的效果。
-
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7423瀏覽量
87719 -
仿真
+關(guān)注
關(guān)注
50文章
4044瀏覽量
133419 -
vr
+關(guān)注
關(guān)注
34文章
9633瀏覽量
150061
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論