1、引言
虛擬現(xiàn)實(shí)(Virtual Reality,簡稱VR),作為一門新興的高科技技術(shù),已廣泛應(yīng)用于航空、航天、制造等許多領(lǐng)域,該技術(shù)的一個重要應(yīng)用是對制造業(yè)一些現(xiàn)象的仿真,最典型的就是對數(shù)控加工過程的仿真。目前,基于曲面造型和實(shí)體造型的仿真技術(shù)已廣泛應(yīng)用于數(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)建被加工工件的表面,通過及時的修改銑刀所經(jīng)過的節(jié)點(diǎn)深度來顯示被加工物體的形狀。同時本算法還可以方便的實(shí)現(xiàn)銑刀的加速、減速和暫停以及被加工工件的實(shí)時縮放和旋轉(zhuǎn),為使用者提供不同的觀察視角和觀察方式。
我們提出的實(shí)體模型的實(shí)時修改算法的主要特點(diǎn)如下:
1)對實(shí)體的修改速度與加工代碼的多少無關(guān)。
2)計(jì)算過程穩(wěn)定可靠。
3)計(jì)算結(jié)果的顯示與觀察方式和視線方向無關(guān),在修改過程中或修改結(jié)束后可以實(shí)時縮放、旋轉(zhuǎn)和平移。
2.2 算法結(jié)構(gòu)定義
三軸數(shù)控銑床在X 軸,Y 軸,Z 軸發(fā)生移動。被加工的毛坯一般為長方體。在計(jì)算機(jī)仿真過程中,我們選擇比較常用的平頭銑刀。將毛坯的表面均表示成m × n 的矩陣網(wǎng)格如圖1 所示。每個交叉點(diǎn)稱為節(jié)點(diǎn)。每個節(jié)點(diǎn),它的相對上表面點(diǎn)坐標(biāo)是固定不變的,改變的是它的深度,以及畫圖時的方法。在仿真過程中,不斷的改變節(jié)點(diǎn)的深度來表達(dá)毛坯被加工的實(shí)際情況。通過增加m 和n 提高矩陣網(wǎng)格的密度,從而提高仿真精度。
先用相關(guān)的鏈表將落刀點(diǎn)及其刀的相關(guān)屬性保存下來。用二維數(shù)組形式記錄每個表面上的所有相關(guān)點(diǎn),及其每一點(diǎn)所對應(yīng)的鏈表信息,該鏈表用來存儲毛坯上以此點(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 平面上的投影為矩形和兩個半圓合成的區(qū)域,為了計(jì)算簡單我們可以移動坐標(biāo)系如圖2 所示:
其中 S 為銑刀起點(diǎn)在Z-Y 平面上的投影,E 是銑刀終點(diǎn)在Z-Y 平面上的投影,S 與E之間的距離為2L,原點(diǎn)是S 與E 的中點(diǎn)。對任意節(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
同理,若選擇加工其他面,方法類似,只是對應(yīng)坐標(biāo)有所變化。
Step 3 : 修改點(diǎn)的深度計(jì)算
平底銑刀的軌跡面有這樣一個性質(zhì):若選擇加工面為XOY,被平面z=Z0 所截是一個半徑為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。
同理,若選擇加工其他面,方法類似,只是對應(yīng)坐標(biāo)有所變化。
Step 4 : 對零件表面上每一行、每一列上加工過的區(qū)間,及該區(qū)間中所對應(yīng)的最大加工深度,分別按行以鏈表形式連接起來、按列以鏈表形式連接起來。并在對應(yīng)鏈表的頭節(jié)點(diǎn)中記錄下,該行(或列)中區(qū)間所對應(yīng)的最大深度。
如圖4所示,對任一面,第m行:假定該行中,datal與data2間最大深度為h1,data3與data4間最大深度為h2,且h1>h2,則將生成如下鏈表:
鏈表的生成是動態(tài)的,它會隨著加工的進(jìn)行不斷修改。然后對每個面做一個哈希表,用來記錄每個面上的所有相關(guān)點(diǎn),及其每一點(diǎn)所對應(yīng)的記錄深度點(diǎn)信息的鏈表。Step 5: 零件的畫圖實(shí)現(xiàn)。
該過程被分成兩部分:畫零件上未被加工的外表面和畫被加工后形成的包絡(luò)面。零件加工時,要不斷對包絡(luò)面的側(cè)面邊界點(diǎn)收集。此時用到各個面對應(yīng)的哈希表信息。畫圖時,根據(jù)加工不同的面,要對坐標(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í)感,還得考慮光線的處理。對每個節(jié)點(diǎn),為其定義一個法向量,在修改節(jié)點(diǎn)深度的同時修改法向量的值,就可以在仿真中加入對光線的處理了。
圖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)操作變得非常簡單,有利于使用者仔細(xì)觀察。該算法,已經(jīng)應(yīng)用到實(shí)際中,得到了較好的效果。
-
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7534瀏覽量
88502 -
仿真
+關(guān)注
關(guān)注
50文章
4124瀏覽量
133898 -
vr
+關(guān)注
關(guān)注
34文章
9645瀏覽量
150682
發(fā)布評論請先 登錄
相關(guān)推薦
評論