直线插补数字积分法第三、第四象限汇编
第三四象限数字积分法插补计算报告

第三四象限直线插补计算1. 引言随着微电子技术,计算机技术的发展,数控机床的性能不断完善,其应用范围也不断增大。
而数控技术作为数控机床的关键技术,越来越得到更多高校的重视。
2.数字积分法直线插补原理设将要加工的直线XOY 平面内第一象限直线OE ,如图.一所示,直线起点在坐标原点,终点为E (Xe ,Ye )。
同样,假设坐标值均为以脉冲当量为单位的整数。
图.一若此时刀具在两坐标轴上的进给速度分量分别是Vx ,Vy ,则刀具在X 轴,Y 轴方向上位移增量分别是△X = Vx △t 式一a△ Y = Vy △t 式一b由图.一 所示的几何关系可得V/OE=Vx/Xe=Vy/Ye=K (常数) 式二将式二中的Vx ,Vy 分别代入式一 可得:△X = KXe △t 式三a△ Y = KYe △t 式三b可见刀具由原点O 走向E 的过程,可以看作式每经过一个单位时间间隔△t ,就分别以增量[KXe],[ KYe]同时在两个坐标轴累加的结果。
也可以这样认为,数字积分法插补实际上就是利用速度分量,进行数字积分来确定刀具在各坐标轴上位置的过程,即XO当取△ti=“1”(一个单位时间间隔)则X = nKXe 式五aY = nKYe 式五b设经过n 次累加后,刀具正好到达终点E(Xe,Ye),则要求式五中常量满足 下式nK=1 式六n 是累加次数必须取整数,所有K 取小数。
为了保证每次分配给坐标轴的进给脉冲不超过一个单位,则△ X=KXe<1 式七a△ Y=KYe<1 式七b上式中Xe ,Ye 的最大允许值受系统中相应寄存器容量的限制。
现假设寄存器 为N 位则容量为2N ,对应存储的最大允许数字量为(2N - 1)将其带入式七得 K<=1/(2N - 1) 式八现不妨取 K =1/2N 式九显然它满足式七,式八的约束条件,再将K 值代入式六可得累加次数为 n =2N 式十如果将n ,K,值代入式五则动点坐标为X = nKXe =Xe 式十一aY = nKYe =Ye 式十一b根据以上分析,在进行直线插补时,先开辟两个被积函数寄存器Jvx ,Jvy 分别存放终点坐标值Xe ,Ye ,还有两个余数寄存器Jrx ,Jry 。
数控机床插补原理

对圆弧,提供起点、终点、顺圆或逆圆、以及圆心相对于起点的位置。为满
足零件几何尺寸精度要求,必须在刀具(或工件)运动过程中实时计算出满足 线形和进给速度要求的若干中间点(在起点和终点之间),这就是数控技术中
插补(Interpolation)的概念。据此可知,插补就是根据给定进给速度和给定
轮廓线形的要求,在轮廓已知点之间,确定一些中间点的方法,这种方法称 为插补方法或插补原理。
Xm+1=Xm+1, Ym+1=Ym
新的偏差为
Fm+1=Ym+1Xe-Xm+1Ye=Fm-Ye
若Fm<0时,为了逼近给定轨迹,应向+Y方向进给一步,走一步后新的坐标值为
Xm+1=Xm, Ym+1=Ym +1
新的偏差为
Fm+1=Fm+Xe
4. 终点判别法
逐点比较法的终点判断有多种方法,下面主要介绍两种:
直到∑为零时,就到了终点。
2.2
不同象限的直线插补计算
上面讨论的为第一象限的直线插补计算方法,其它三个象
限的直线插补计算法,可以用相同的原理获得,表5-1列出了
四个象限的直线插补时的偏差计算公式和进给脉冲方向,计 算时,公式中Xe,Ye均用绝对值。
表1-1 四个象限的直线插补计算
数字积分法(DDA)插补直线参考程序

数字积分法(DDA)插补直线参考程序Sub 插补X()标志X = 0If 余数X >= Q Then余数X = 余数X Mod Qx动点= x动点+ 1: 标志X = 1 End IfEnd SubSub 插补Y()标志Y = 0If 余数Y >= Q Then余数Y = 余数Y Mod Qy动点= y动点+ 1: 标志Y = 1End IfEnd SubSub 插补Z()标志Z = 0If 余数Z >= Q Then余数Z = 余数Z Mod Qz动点= z动点+ 1: 标志Z = 1 End IfEnd SubSub 插补公共()余数X = 余数X + x终点余数Y = 余数Y + y终点余数Z = 余数Z + z终点插补X插补Y插补Z插补记录= 插补记录+ 1End SubSub 插补()Dim c As Integer插补记录= 0: 余数X = 0: 余数Y = 0: 余数Z = 0: 划轮廓线PSet (z原点, x原点), vbRedSelect Case 象限标志Case 1: '第一象限插补Do Until 插补记录= Q插补公共Line -Step(z步长×标志Z, x步长×标志X), vbRedLoopCase 2: '第二象限插补c = x终点: x终点= z终点: z终点= -cc = x步长: x步长= z步长: z步长= -cDo Until 插补记录= Q插补公共Line -Step(x步长×标志X, z步长×标志Z), vbRed LoopCase 3: '第三象限插补x终点= -x终点: z终点= -z终点x步长= -x步长: z步长= -z步长Do Until 插补记录= Q插补公共Line -Step(z步长×标志Z, x步长×标志X), vbRed LoopCase 4: '第四象限插补c = x终点: x终点= -z终点: z终点= cc = x步长: x步长= -z步长: z步长= cDo Until 插补记录= Q插补公共Line -Step(x步长×标志X, z步长×标志Z), vbRed LoopEnd SelectEnd Sub。
第八讲DDA直线插补

实例: 要加工XY平面内第一象限的直线,直线起点 在坐标原点,终点坐标为 A(8,10),累加器 和寄存器位数为4位。试用数字积分法对该段 直线进行插补。
要加工XY平面内第一象限的直线,直线起点 在坐标原点,终点坐标为 A(10,6),累加器 和寄存器位数为4位。试对该段直线进行DDA 插补。
V X KXe VY KYe V K L
VX
Xe V L
VY Ye V L
X KX e t Y KY e t
X、Y方向的位移
t X 0 KX e dt t Y KY e dt 0
m m X K X e t KX e mt K X e i 1 i 1 m m Y K Y t KY mt K Y e e e i 1 i 1
s Xdt
0
n i1
Xi-1Δt
பைடு நூலகம்
Xi-1
i1
n
函数的积分运算变成了变量的累加运算,如果 δ足够小时,则累加求和运算代替积分运算所 引入的误差可以不超过所允许的误差。
2.DDA 直线插补
X V t X Y VY t L Xe 2 Ye 2
2.4.2数字积分法(DDA)
用数字积分的方法计算刀具沿各坐标轴的位移。 特点: DDA法运算简单,运算速度快,脉冲分配均匀, 易于实现多坐标联动。 缺点: 速度调节不方便,须采用一定的措施来克服,如 果能严格控制速度的变化,可实现无误差插补
1、数字积分原理
函数在[0 ,t ]的定积分,即为函数在该区间的面 积: t
其中,m为累加次数(容量)取为整数, m=0〜2N -1,共2N 次(N为累加器位数)。 令△t =1,mK =1,则K =1/m=1/2N 。
数字积分插补

ì D x = kxe = k (2 N - 1) < 1 ï ï í ï D y = kye = k (2 N - 1) < 1 ï î
所以
1 k< N 2 - 1
一般取
1 k< N 2
ì ï 2N - 1 ï D x = kxe = <1 ï N ï 2 ï í ï 2N - 1 ï D y = ky = <1 ï e N ï 2 ï î
Y积分器
△X
0 0 0 0 0 0 0 1 0 1 0 1 1 0 1
注 Y终
101 101 100 100 011 010 010 001 001 000 修正Yi 修正Xi 修正Yi 修正Xi 修正Yi 修正Yi 修正Yi 初始
X终
101 101 101 101 101 101 101 100 100 011 011 001 001 001 000
1
011 011
1 1 1
010 001 000
X、Y溢出 y溢出 X,Y溢出
1
011
3) DDA法圆弧插补 DDA法圆弧插补的积分表达式 由 V VX VY
R = Yi = Xi = K
Y B
VX = KYi
VY = KX i
V
Vx
Vy
P A X
令 则
Dt = 1
1 K= N 2
O
R
ì ï 1 m ïX= Yi ï N å ï 2 i= 1 ï í ï 1 m ïY = Xi ï N å ï 2 i= 1 ï î
ì D x = kxeD t ï ï í ï D y = kyeD t ï î
各坐标轴的位移量为 n t ì ï ï x= ï ò0 kxe dt = k å= 1 xeD t ï i ï í n ï ï y = t ky dt = k ï å= 1 yeD t ò0 e ï ï i î
二、数字积分法插补

例:插补第一象限直线OA,起点为O( 0 , 0 ) ,终点为 A ( 5 , 3 )。取被积函数寄存器分别为JVx, JVy,余数寄存 器分别为JRx 、JRy ,终点计数器为 JE,且都是三位 二进制寄存器。试写出插补计算过程并绘制轨迹。 Y 3 2 1 O 1 2 3 4 5 X A( 5 , 3 )
∆X,∆Y同时溢出 JE=0,插补结束
110 000
加工轨迹如下:
Y 6 5 4 3 2 1 O 1 2
A( 2 , 6 )
X
(三)数字积分圆弧插补 如图所示,设加工半径为R的第一象限逆时针圆弧AB, 坐标原点定在圆心上,A(Xo,Yo)为圆弧起点,B(Xe,Ye) 为圆弧终点,Pi(Xi,Yi)为加工动点。 Y B(Xe,Ye) Pi(Xi,Yi) A(Xo,Yo) O X
插补计算过程如下:
累加 次数 (∆t) X积分器 Y积分器 终点 JVx JRx 溢出 JVy JRy 溢出 计数器 JE ∆X ∆Y
备注
0 1 2 3 4 5 6 7 8
010 000 010 010 010 100 010 110 010 000 1 010 010 010 100 010 110 010 000 1
插补计算过程如下
累加 次数 (∆t) X积分器 Y积分器 终点 JVx JRx 溢出 JVy JRy 溢出 计数器 JE ∆X ∆Y
备注
0 1 2 3 4 5 6 7 8
101 000 101 101 101 010 101 111 101 100 101 001 101 110 101 011
1 1 1 1
O ∆t
t T
若∆t取最小基本单位“1”,则上式可简化为: n-1 S=∑ Yi
数字积分法插补

数字积分法插补前面提到过数字积分法插补是脉冲增量插补的一种,它是用数字积分的方法计算刀具沿各坐标轴的移动量,从而使刀具沿着设定的曲线运动。
实现数字积分插补计算的装置称为数字积分器,或数字微分器(Digital Differential Analyzer, DDA),数字积分器可以用软件来实现。
数字积分器具有运算速度快,脉冲分配均匀,可以实现一次、二次曲线的插补和各种函数运算,而且易于实现多坐标联动,但传统的DDA 插补法也有速度调节不方便,插补精度需要采取一定措施才能满足要求的缺点,不过目前CNC 数控系统中多采用软件实现DDA 插补时,可以很容易克服以上缺点,所以DDA 插补是目前使用范围很广的一种插补方法。
它的基本原理可以用图4.1所示的函数积分表示,从微分几何概念来看,从时刻0到时刻t 求函数y=f(t)曲线所包围的面积时,可用积分公式: (4.1)如果将0~t 的时间划分成时间间隔为Δt 的有限区间,当Δt 足够小时,可得近似公式:(4.2)式中y i-1为t=t i-1时f(t)的值,此公式说明:积分可以用数的累加来近似代替,其几何意义就是用一系列小矩形面积之和来近似表示函数f(t)下面的面积,t y d t f S ni i t t ∆==∑⎰=-110)(⎰=t t d t f S 0)(如果在数字运算时,用取Δt 为基本单位“1”,则4.2式可以简化为:∑=-=n i i y S 11(4.3)如果系统的基本单位Δt 设置得足够小,那么就可以满足我们所需要的精度。
一般地,每个坐标方向需要一个被积函数寄存器和一个累加器,它的工作过程可用图4.2表示:图 4.2 一个坐标方向上的积分器示意图Fig 4.2 Sketch of DDA in one coordinate direction图4.1 数字积分原理Fig 4.1 Principle of DDA被积函数寄存器用以存放坐标值f(t),累加器也称余数寄存器用于存放坐标的累加值。
第四章 插补原理

y L2 F0 F<0 F<0 F0 L3
四象限直线偏差符号和进给方向
L1 F0 F<0 x F<0 F0 L4
由图可见,靠近Y轴区域偏差大等于零,靠近X轴区域偏差小于零。F≥0时,进 给都是沿X轴,不管是+X向还是-X向,X的绝对值增大;F<0时,进给都是沿Y轴, 不论+Y向还是-Y向,Y的绝对值增大。
v y 60f y
式中 δ—脉冲当量(mm/脉冲)。合成进给速度为
v v x 2 v y 2 60 f x2 f y2
若fx=0或fy=0时,也就是刀具沿平行于坐标轴的方向切削,这时对 应轴切削速度最大
第四章 插补原理
3.1 数字积分法的基本原理
第 三 节 数 字 积 分 法
F5 F4 2Y4 1 3 F6 F5 2 X 5 1 4
F7 F6 2Y6 1 1
F8 F7 2Y7 1 0
5. 四个象限中圆弧插补 第一象限逆圆弧CD:即Fi≥0时,走—X轴, 动点的偏差函数为
Fi 1=Fi 2 X i 1
第四章 插补原理
2.3 逐点比较法圆弧插补
第 二 节 逐 点 比 较 法
第一象限圆弧插补 流程图
例3 现欲加工第一象限顺圆弧AB,如图所示,起点A(0,4),终点B(4,0), 试用逐点比较法进行插补。
Y 4 3 2 1 B(4,0) O 1 2 3 4 X A(0,4)
表3 圆弧插补过程
步数 起点 偏差判别 坐标进给 偏差计算 坐标计算 终点判别
如图4-14所示,从t=0时
刻到t时刻,函数y=f(t) 曲线所包围的面积可表示
Y
Y=f(t)
YO
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一、课程设计目的 (3)二、课程设计使用的主要仪器及软件设备 (3)三、课程设计题目描述和要求 (3)四、课程设计报告内容 (3)4.1数字积分法直线插补的基本原理 (4)4.1.1从几何角度来看积分运算 (4)4.1.2数字积分法在轮廓插补中的具体应用(数字积分法直线插补) (5)4.2插补终点判别的具体实现 (7)4.3插补器的组成 (7)4.4提高插补精度的措施 (7)4.5减少误差的方法 (7)4.6数字积分法直线插补框图 (7)4.7 数字积分法直线(第三四象限)插补程序 (9)五结论 (13)六实验总结 (13)七程序运行图 (15)一、课程设计目的1)了解连续轨迹控制数控系统的组成原理。
2) 掌握数字积分法(DDA)插补的基本原理。
3)掌握数字积分法(DDA)插补的软件实现方法。
二、课程设计使用的主要仪器及软件设备Pc计算机一台Vb三、课程设计的任务题目描述和要求数字积分法又称数字微分分析法DDA(Digital Differential Analyzer)。
数字积分法具有运算速度快、脉冲分配均匀、易于实现多坐标联动及描绘平面各种函数曲线的特点,应用比较广泛。
其缺点是速度调节不便,插补精度需要采取一定措施才能满足要求。
由于计算机有较强的计算功能和灵活性,采用软件插补时,上述缺点易于克服。
本次课程设计具体要求如下:(1)掌握数字积分插补法基本原理(2)设计出数字积分(DDA)插补法插补软件流程图(3)编写出算法程序清单算法描述(数字积分法算法在VB中的具体实现)(4)要求软件能够实现第一第二象限直线插补计算(5)软件运行仿真效果插补结果要求能够以图形模式进行输出四、课程设计报告内容插补运算就是运用特定的算法对工件加工轨迹进行运算并根据运算结果向相应的坐标发出运动指令的过程。
插补运算可以采用数控系统硬件或数控系统软件来完成。
硬件插补器:速度快,但缺乏柔性,调整和修改都困难。
软件插补器:速度慢,但柔性高,调整和修改都很方便。
早期硬件数控系统:采用由数字逻辑电路组成的硬件插补器; CNC 系统:采用软件插补器,或软件、硬件相结合的插补方式。
4.1数字积分法直线插补的基本原理数字积分法是利用数字积分的方法,计算刀具沿各坐标轴的位移,使得刀具沿着所加工的轮廓曲线运动利用数字积分原理构成的插补装置称为数字积分器,又称数字微分分析器(Digital Differential Analyzer ),简称DDA 。
数字积分器插补的最大优点在于容易实现多坐标轴的联动插补、能够描述空间直线及平面各种函数曲线等。
因此,数字积分法插补在轮廓数控系统中得到广泛的应用。
4.1.1从几何角度来看积分运算积分运算就是求出函数Y = f (t )曲线与横轴所围成的面积,从t =t0到tn 时刻,函数Y= f (t )的积分值可表述为⎰⎰==n n tt tt dt)t (Ydt S 00f如果进一步将t ∈[t0,tn]Δt 的小区间,当Δt 足够小时,函数Y 的积分可用下式近似表示tY Ydt S n i i tt n ∆∑⎰-=≈=1在几何上就是用一系列的小矩形面积之和来近似表示函数f (t )以下的积分面积。
进一步如果在式中,取Δt 为基本单位“1”,则上式可演化成数字积分器算式:∑-==1n i iY S由此可见,通过假设Δt =“1”,就可将积分运算转化为式所示的求纵坐标值的累加运算。
若再假设累加器容量为一个单位面积值,则在累加过程中超过一个单位面积时立即产生一个溢出脉冲。
这样,累加过程所产生的溢出脉冲总数就等于所求的总面积,即所求的积分值。
下面就以直线和圆弧轨迹为例详细介绍4.1.2数字积分法在轮廓插补中的具体应用(数字积分法直线插补) 设将要加工的直线XOY 平面内第一象限直线OE ,如图.一所示,直线起点在坐标原点,终点为E (Xe ,Ye )。
同样,假设坐标值均为以脉冲当量为单位的整数。
图4.1若此时刀具在两坐标轴上的进给速度分量分别是Vx ,Vy ,则刀具在X 轴,Y 轴方向上位移增量分别是△X = Vx △t 式1-1 △ Y = Vy △t 式1-2由图4.1 所示的几何关系可得V/OE=Vx/Xe=Vy/Ye=K (常数) 式2YXVyVxE (Xe ,Ye )V O将式2中的Vx ,Vy 分别代入式一 可得:△X = KXe △t 式3-1 △ Y = KYe △t 式3-2可见刀具由原点O 走向E 的过程,可以看作式每经过一个单位时间间隔△t ,就分别以增量[KXe],[ KYe]同时在两个坐标轴累加的结果。
也可以这样认为,数字积分法插补实际上就是利用速度分量,进行数字积分来确定刀具在各坐标轴上位置的过程,即当取△ti=“1”(一个单位时间间隔)则X = nKXe 式5-1 Y = nKYe 式5-2设经过n 次累加后,刀具正好到达终点E(Xe,Ye),则要求式五中常量满足 下式nK=1 式6n 是累加次数必须取整数,所有K 取小数。
为了保证每次分配给坐标轴的进给脉冲不超过一个单位,则△ X=KXe<1 式7-1 △ Y=KYe<1 式7-2上式中Xe ,Ye 的最大允许值受系统中相应寄存器容量的限制。
现假设寄存器 为N 位则容量为2N,对应存储的最大允许数字量为(2N- 1)将其带入式七得K<=1/(2N- 1) 式8 现不妨取 K =1/2N 式9显然它满足式七,式八的约束条件,再将K 值代入式六可得累加次数为 n =2N 式10如果将n ,K,值代入式五则动点坐标为X = nKXe =Xe 式11-1 Y = nKYe =Ye 式11-2根据以上分析,在进行直线插补时,先开辟两个被积函数寄存器Jvx ,Jvy 分别存放终点坐标值Xe ,Ye ,还有两个余数寄存器Jrx ,Jry 。
然后,当脉冲源每发送一个控制脉冲信号△t ,X 轴积分器和Y 轴积分器各累加一次。
当累加结果超过余数寄存器容量(2N- 1)时,就产生一个溢出脉冲△x (或△y )。
这样,经过2N次累加后,每个坐标轴溢出脉冲总数就等于该轴被积函数值(Xe 和Ye ),从而控制刀具到达终点E 。
∑ni=1X=△Xi =∑ni=1△Yi =Y=∑ n∑ ni=1 i=1KXe △ti 式4-1KYe △ti 式4-24.2插补终点判别的具体实现直线插补时不论被积函数有多大,对于N位寄存器。
必须累加2N次才能到达终点。
因此可以用一容量为2N的寄存器当计数器,来统计累加的次数。
可以用加1计数器,也可以用减1计数器。
采用加1计数器时,首先将计数器清零,运算过程中每来一个累加脉冲△t就加1。
当计数器满2N时表明运算完成。
采用减1计数器时,运算前把总运算次数2N送入计数器,每运算一次,就减去1。
当计数器减为0时,表明运算完成。
4.3插补器的组成二坐标DDA直线插补器包括X积分器和Y积分器,每个积分器都由被积函数寄存器Jvx(速度存寄器)和累加器Jrx(余数寄存器)组成。
初始时,X被积函数寄存器存Xe(或Xe/2N ),Y被积函数寄存器存Ye(或Ye/2N)。
4.4提高插补精度的措施对于DDA圆弧插补,径向误差可能大于一个脉冲当量,因数字积分器溢出脉冲的频率与被积函数寄存器中的数值成正比,在坐标轴附近进行累加时,一个积分器的被积函数值接近零,而另一个积分器的被积函数接近于最大值,累加时后者连续溢出,前者几乎没有,两个积分器的溢出脉冲频率相差很大,致使插补轨迹偏离给定圆弧距离较大,使圆弧误差增大。
4.5减少误差的方法1、减小脉冲当量,误差减少,但寄存器容量增大,累加次数增加。
而且要获得同样的进给速度,需要提高插补速度。
2、累加器预置数累加器中预置0.5,即被积函数寄存器中的初值增大后,可以提前溢出脉冲。
4.6数字积分法直线插补框图DDA直线插补软件的实现思路也是硬件逻辑关系来完成的。
DDA直线插补软件流程图如图4-2 所示DDA直线插补过程中使用的累加表达式为累加值 = 被积函数寄存器 + 余数寄存器一旦累加结果超过了寄存器的容量时,就会产生溢出,发出一个脉冲信号,并控制相应的坐标轴进给一步。
在软件实现过程中,也可以直观的认为余数寄存器为小数部分寄存器,与进 位位Cy 之间存在一个小数点。
具体表示为图4-2进位位Cy 位(1位)余数寄存器(N 位).小数点4.7数字积分法直线(第三四象限)插补程序Private Sub Command1_Click()xe = CInt(Text1)ye = CInt(Text2)Picture1.ForeColor = vbBlackPicture1.DrawWidth = 2If Option1.Value = True And Option2 = False ThenIf xe <= 0 And ye <= 0 ThenPicture1.Line (5500, 50)-(5500, 5500)Picture1.Line (5500, 5500)-(5530, 5400)Picture1.Line (5500, 5500)-(5470, 5400)Picture1.Line (5500, 50)-(50, 50)Picture1.Line (50, 50)-(150, 20)Picture1.Line (50, 50)-(150, 80)Picture1.CurrentX = 5600Picture1.CurrentY = 40Picture1.Print "(0,0)"Picture1.CurrentX = 100Picture1.CurrentY = 100Picture1.Print "-x"Picture1.CurrentX = 5600Picture1.CurrentY = 5400Picture1.Print "-Y"For i = 1 To -xePicture1.Line (5500 - i * 500, 50)-(5500 - i * 500, 100)Next iFor J = 1 To -yePicture1.Line (5500, 50 + J * 500)-(5400, 50 + J * 500)Next JPicture1.Line (5500, 50)-(5500 + 500 * Int(Text1), 50 - 500 * Int(Text2)) Elseans = MsgBox("出现出错!请检查!", 48, "提示信息")Picture1.ClsText1.Text = ""Text2.Text = ""Text3.Text = ""End IfElseIf Option2.Value = True And Option1 = False ThenIf xe >= 0 And ye <= 0 ThenPicture1.ForeColor = vbBlackPicture1.DrawWidth = 2Picture1.Line (50, 50)-(5500, 50)Picture1.Line (5500, 50)-(5400, 80)Picture1.Line (5500, 50)-(5400, 20)Picture1.Line (50, 50)-(50, 5500)Picture1.Line (50, 5500)-(20, 5400)Picture1.Line (50, 5500)-(80, 5400)Picture1.CurrentX = 60Picture1.CurrentY = 40Picture1.Print "(0,0)"Picture1.CurrentX = 5700Picture1.CurrentY = 100Picture1.Print "x"Picture1.CurrentX = 80Picture1.CurrentY = 5400Picture1.Print "-Y"For i = 1 To xePicture1.Line (50 + i * 500, 50)-(50 + i * 500, 100)Next iPicture1.PrintFor J = 1 To -yePicture1.Line (50, 50 + J * 500)-(100, 50 + J * 500)Next JPicture1.ForeColor = vbBlackPicture1.DrawWidth = 2Picture1.Line (50, 50)-(50 + 500 * Int(Text1), 50 - 500 * Int(Text2)) Elseans = MsgBox("出现出错!请检查", 48, "提示信息")End IfEnd IfEnd SubPrivate Sub Command2_Click()n = Int(Text3)k = 0m = 0xi = 0yi = 0xe = CInt(Text1)ye = CInt(Text2)Jvx = xeJvy = yeJrx = 0Jry = 0H = 2 ^ n - 1Picture1.ForeColor = vbRedPicture1.DrawWidth = 2If xe <= 0 And ye <= 0 ThenIf Option1 = True ThenPrint "累加次数 " & " X 积分器 " & " Y 积分器 " & " 终点判别 "Print " n " & " Jvx " & " Jrx " & "- X " & " Jvy " & " Jry " & "- Y " & " J"For i = 1 To 2 ^ nJrx = Jrx + Abs(Jvx)If Abs(Jrx) >= 2 ^ n ThenJrx = Abs(Jrx) - 2 ^ nk = 1xi = xi + 1End IfJry = Jry + Abs(Jvy)If Abs(Jry) >= 2 ^ n ThenJry = Abs(Jry) - 2 ^ nm = 1yi = yi + 1End IfIf k = 1 And m = 1 ThenPicture1.Line (5500 - 500 * (xi - 1), 50 + ((yi - 1) * 500))-(5500 - 500 * (xi),50 + (yi) * 500)ElseIf k = 1 And m = 0 ThenPicture1.Line (5500 - 500 * (xi - 1), 50 + (yi) * 500)-(5500 - 500 * (xi), 50 + (yi)* 500)ElseIf k = 0 And m = 1 ThenPicture1.Line (5500 - 500 * xi, 50 + (yi - 1) * 500)-(5500 - 500 * xi, 50 + (yi)* 500)End IfForm1.FontSize = 12Print " " & Left(CStr(i) & " ", 3) & " " & Left(CStr(Jvx) & " ", 3) &" " & Left(CStr(Jrx) & " ", 3) & " " & k & " " & Left(CStr(Jvy) & " ", 3) & " " & Left(CStr(Jry) & " ", 3) & " " & m; " " & Left(CStr(H)& " ", 3)k = 0m = 0H = H - 1Next iElse: ans = MsgBox("出现出错!请检查", 48, "提示信息")End IfElseIf xe >= 0 And ye <= 0 ThenIf Option2 = True ThenPrint "累加次数 " & " X 积分器 " & " Y 积分器 " & " 终点判别 "Print " n " & " Jvx " & " Jrx " & "+ X " & " Jvy " & " Jry" & "- Y " & " J"For i = 1 To 2 ^ nJrx = Jrx + JvxIf Jrx >= 2 ^ n ThenJrx = Jrx - 2 ^ nk = 1xi = xi + 1End IfJry = Jry + Abs(Jvy)If Abs(Jry) >= 2 ^ n ThenJry = Abs(Jry) - 2 ^ nm = 1yi = yi + 1End IfIf k = 1 And m = 1 ThenPicture1.Line (50 + 500 * (xi - 1), 50 + ((yi - 1) * 500))-(50 + 500 * (xi), 50 + (yi) * 500)ElseIf k = 1 And m = 0 ThenPicture1.Line (50 + 500 * (xi - 1), 50 + (yi) * 500)-(50 + 500 * (xi), 50 + (yi) * 500)ElseIf k = 0 And m = 1 ThenPicture1.Line (50 + 500 * xi, 50 + (yi - 1) * 500)-(50 + 500 * xi, 50 + (yi) * 500) End IfPrint " " & Left(CStr(i) & " ", 3) & " " & Left(CStr(Jvx) & " ", 3) & " " & Left(CStr(Jrx) & " ", 3) & " " & k & " " & Left(CStr(Jvy) & " ", 3) & " " & Left(CStr(Jry) & " ", 3) & " " & m; " " & Left(CStr(H) & " ", 3)k = 0m = 0H = H - 1Next iElse: ans = MsgBox("出现出错!请检查", 48, "提示信息")End IfEnd IfIf Text3.Text = "" Thenans = MsgBox("出现出错!请检查", 48, "提示信息")ElseIf xe = "" Thenans = MsgBox("出现出错!请检查", 48, "提示信息")ElseIf ye = "" Thenans = MsgBox("出现出错!请检查", 48, "提示信息")End IfEnd SubPrivate Sub Command3_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Picture1.ClsOption1 = FalseOption2 = FalseForm1.ClsEnd SubPrivate Sub Command4_Click()EndEnd Sub五结论本次设计运用软件插补程序进行插补控制,调整和修改都很方便,而且数字积分法插补运算速度快,脉冲分配均匀,易于实现多坐标联动及描绘平面各种函数曲线的特点。