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