3 直线、圆弧轨迹仿真实现的原理
3.1 直线轨迹仿真的实现原理
如图1所示,令起点A(X0,Z0),终点B(X1,Z1),则直线方程为:
(X1-X0)( Y-Z0) = ( Y1-Z0)(X-X0)故tanA= (Z1-Z0)/(X1-X0)。
依据插补原理,将直线AB分解成足够多的有限微小线段AiAi+1,因为Ai在直线AB上,则:Ai(Xi,Zi),A i+1(X i+1,Z i+1),X i+1= Xi+△X;Zi+1= Zi+△Z,且tanNAiOAi+1=△Z/△X。
如果将$X,$Z设置得很小(如0.020mm),直线AB分成足够多的线段AA1,A1A2,A2A3,,,A(N-1)B。设置时钟计时器(Timer)的间隔(Interval)为60ms(为尽量满足坐标显示的实时性,时间间隔不要小于55ms),利用计时器的定时功能,连续画出系列直线AiAi+1。实现直线段AiAi+1的VB程序为:
Line(z+Z0,x+X0)-(Z+Z0+△Z,x+X0+△X)
其中z,x为时间钟函数的静态变量。由于上一线段的终点就是下一线段的始点,因此这些线段会首尾相连,动态地产生一条直线。同时为使直线能在终点准确到达B点,应使用判断语句(IF语句)。
图1 直线分段 图2 圆弧分段
3.2 圆弧轨迹仿真的实现原理
圆弧轨迹的生成原理基本与直线的生成原理基本相同。如图2所示,令圆弧起点A(X0, Y0),
终点B(X1, Y1),圆心在(0,0),半径为R(圆弧方程为:X2+Z2= R2)。依据插补原理,将圆弧AB分成若干份直线段(或圆弧段)AA1,A1A2,A2A3,..A(N-1)B。若用直线段来逼近圆弧,则有:
X i-1 2+Z i-1 2= Xi 2+Z i 2= R 2
Xi= X i-1+△X
Zi= Z i-1+△Z
由于上述计算很复杂,而且$X和$Z的取法不可能很精确,因此仿真产生的轨迹与真实的圆弧有一定的误差。若用微圆弧段来组成圆弧,依据VB的Circle属性,设定微圆弧对应的圆心角$A,而圆心和半径均不变,这样很容易实现。其过程为:令起点A对应的圆弧起始角为AA,终点B对应的圆弧起始角为AB,微小圆弧段Ai-1Ai的起始和终止圆心角分别为Ai-1,Ai,则:Ai=Ai-1+△A,Ai的坐标为(RcosAi,RsinAi)。
其VB的实现程序为:
Circle(0,0),R,α,α+△α
其中A是系统设置的静态变量。再用IF判断语句实现圆弧准确到达终点。