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