A(Xo,Yo)为圆弧起点,B(Xe,Ye)为圆弧终点,Pi(Xi,Yi)为加工动点。
如下图所示,可以得到:
V/R = Vx/Yi = Vy/Xi = K即Vx=K Yi,Vy=K Xi 因而可以得到坐标微小位移增量为:
ΔX=VxΔt = KYiΔt ΔY=VyΔt = KXiΔt 设Δt=1,K=1/2 则有:
可看出,用DDA法进行圆弧插补时,是对加工 动点的坐标Xi和Yi的值分别进行累加,若积分累加器有溢出,则相应坐标轴进给一步,则圆弧积分插补器如图所示:
5.3数字积分法圆弧插补程序流程图
DDA法插补不同象限圆弧时,算法也有所不同。当采用软件插补时,如果参与积分运算的寄存器均采用绝对值数据,则DDA法插补的积分累加过程完全相同,即JR+JV→JR,只是进给脉冲分配方向和圆弧插补动点坐标的修正有所不同。
5.5插补实例
设有第Ⅰ象限逆圆弧SE,起点为S(4,0),终点为E(0,4),且寄存器位数N=3。试用DDA法对该圆弧进行插补,并画出插补轨迹。
解:插补开始时,被积函数寄存器初值分别为 JVX=YS=0,JVY=XS=4,终点判别寄存器JSX=|Xe-XS|=4,JSY=|Ye-YS|=4。该圆弧插补运算过程见下表,插补轨迹如下图所示的折线。
六、程序清单
Private Sub 建立坐标系_Click() Picture1.ForeColor = vbBlack Picture1.DrawWidth = 2
Picture1.Line (500, 4500)-(8500, 4500) '画直线坐标轴 Picture1.Line (4500, 500)-(4500, 8500)
Picture1.CurrentX = 230 '当前位置 Picture1.CurrentY = 4400
Picture1.Print \坐标轴标注 Picture1.CurrentX = 4300 Picture1.CurrentY = 4300 Picture1.Print \Picture1.CurrentX = 8650 Picture1.CurrentY = 4400 Picture1.Print \
Picture1.CurrentX = 4400 Picture1.CurrentY = 8600 Picture1.Print \
Picture1.CurrentX = 4500 Picture1.CurrentY = 400 Picture1.Print \End Sub
Private Sub 画圆弧_Click()
Dim a, b, c, d, n, m As Integer Dim r As Single
a = Val(Text1.Text) b = Val(Text2.Text)