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