要對待加工的數(shù)據(jù)文件進行前期的數(shù)據(jù)預處理,用常用的數(shù)控雕銑機的雕刻軟件一般都能得到待雕刻的數(shù)據(jù)文件,數(shù)據(jù)文件一般是以每段直線x,y,z三軸的絕對坐標形式給出。
(1)將前后對應的x、y、z三軸的絕對坐標值對應相減,以得到整個文件中每條直線在x、y、z方向上對應的絕對長度。
(2)算出每條直線的矢量長度l,對于x、y兩軸連動有:l=平方根(x2+y2);對于x、y、z三軸連動有:l=平方根(x2+y2+z2);這里算出的矢量長度l,就作為將來用于在FPGA中DDA插補算法的絕對長軸。
(3)算出每條直線的矢量角,在x、y平面上,以原點為極坐標的極點,x軸正相為極軸,可得夾角:θ=arcsiny/平方根(x2+y2);再算每條直線的z軸與x、y平面的夾角:ψ=arcsinz/平方根(x2+y2+z2);對于x、y兩軸連動的情況,則無需算。經(jīng)過上面步驟的處理,原始的x、y、z數(shù)據(jù)便擴展成x、y、z、l、θ、ψ等六個數(shù)據(jù)。
(4)分別用x、y、z除以對應的脈沖當量δx,δy,δz得到脈沖數(shù)Px、Py、Pz,而l則除以δx,δy,δz中的最小值即可,便可得Pl。
(5)對整個數(shù)據(jù)文件進行分段,將可視為連續(xù)運動的前后連續(xù)的多條直線(如圓弧)化分為一大段,劃分的標準就是將前后兩條直線的θ、ψ兩兩相比較,當min(θn-θn- 1,θn- 1-θn) 或min (ψn-ψn- 1, ψn- 1-ψn) 有較大變化時( ≥5°) 為每大段直線的分界點, 然后求出該大段連續(xù)運動的線的矢量合S。假設由上述標準劃分的一大段數(shù)據(jù)中有n 條小的直線l1、l2..ln, 則該S 的長度的脈沖數(shù)PS 為: PS=ni = 1 "Pli; 這樣數(shù)據(jù)的預處理便完成。雖然看上去比較繁瑣, 但是明白基本原理后在PC 機上用VC 或VB 編程可以很容易的完成, 而且還可以直接放到MCU上來完成, 在MCU 通過USB 接口讀入數(shù)據(jù)的過程中就可以通過對MCU 的編程來完成這個數(shù)據(jù)的預處理過程。其實, 求θ和ψ僅僅利用它們來完成對整個數(shù)據(jù)文件的分段, 以確定可以合并哪些數(shù)據(jù)來進行連續(xù)的運動, 分段完成后的和便可舍去, 以減小文件的數(shù)據(jù)量。假設待雕刻的數(shù)據(jù)文件由下圖生成, 那么數(shù)據(jù)處理過后整個數(shù)據(jù)就被分成了3 個可以連續(xù)運動的加減速段即: S1、S2、S3且S1=l1, S2=l2+l3+..l(n- 1), S3=ln。那么在整個雕刻過程中,只會在p1 和p2 這兩個地方停頓, 雖然整個半圓是由l2 到l(n- 1)共n- 2 條短直線擬和, 但畫整個半圓的雕刻過程中將會很流暢的完成, 而不會出現(xiàn)停頓。