起点O(0,0),终点A(xe,ye),设进给速度V是均匀的,直线长度L,则有
动点从原点走向终点,可看作是各坐标每经过一个△t分别以增量kxe、kye同时累加的结果。设经过m次累加后,X和Y方向都到达终点A(xe,ye),则
m必须是整数,所以k为小数。选取k时考虑△x、△y≤1,保证坐标轴上每次分配的进给脉冲不超过1个单位(一般为1个脉冲当量)。
xe、ye最大值(寄存器位数n)为2n-1,所以
一般取 ,则有
,说明DDA直线插补整个过程需要2n次累加能到达终点
当k=1/2n时,对二进制数来说,kxe与xe只在于小数点的位置不同,将xe的小数点左移n位即为kxe。
n位内存中存放xe和kxe的数字是相同的,认为后者小数点出现在最高位数n的前面。
对kxe、kye的累加转变为对xe与ye的累加。
X―Y平面的DDA直线插补器的示意图:
直线插补终点判别:
m=2n为终点判别依据
例5-4设直线起点在原点O(0,0),终点为A(8,6),采用四位寄存器,写出直线DDA插补过程并画出插补轨迹。
由于采用4位寄存器,所以累加次数m=24=16。
累加次数m | X积分器 | Y积分器 | ||||
JVX(存xe) | JRX(∑xe) | △x | JVY(存ye) | JRY(∑ye) | △y | |
0 | 1000 | 0 | 0 | 0110 | 0 | 0 |
1 |
| 1000 | 0 |
| 0110 | 0 |
2 |
| 0000 | 1 |
| 1100 | 0 |
3 |
| 1000 | 0 |
| 0010 | 1 |
4 |
| 0000 | 1 |
| 1000 | 0 |
5 |
| 1000 | 0 |
| 1110 | 0 |
6 |
| 0000 | 1 |
| 0100 | 1 |
7 |
| 1000 | 0 |
| 1010 | 0 |
8 |
| 0000 | 1 |
| 0000 | 1 |
9 |
| 1000 | 0 |
| 0110 | 0 |
10 |
| 0000 | 1 |
| 1100 | 0 |
11 |
| 1000 | 0 |
| 0010 | 1 |
12 |
| 0000 | 1 |
| 1000 | 0 |
13 |
| 1000 | 0 |
| 1110 | 0 |
14 |
| 0000 | 1 |
| 0100 | 1 |
15 |
| 1000 | 0 |
| 1000 | 0 |
16 |
| 0000 | 1 |
| 0000 | 1 |