以下为《逐点比较法插补实验报告》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
实 验 报 告
实验内容:逐点比较法直线和圆弧插补 2011年9月25日
院系:物科院 班级:085 学号:*** 姓名:陈某某
实验目的:
利用逐点比较法的插补原理,编写直角坐标系下的直线、圆弧插补程序,观察屏幕上仿真的运动轨迹,掌握逐点比较法的插补原理。
实验原理:
逐点比较发是基于动点与理想曲线院函数的比较来实现插补的。逐点比较法的插补过程,每走一步要进行一下四个步骤:
偏差判别:根据偏差值确定刀具相对加工曲线的位置
坐标进给:根据偏差判别的结果,决定控制线沿哪个坐标进给一步以接近曲线
偏差计算:计算新加工店相对曲线的偏差,作为下一步偏差判别的依据
终点判别:判别是否到达终点,未到达终点则返回第一步继续插补,到终点则停止
1、逐点比较法直线插补原理:
逐点比较法在第一象限的直线插补原理如下图所示,其他象限情况可依次类推。
现加工OE直线,如果刀具动点在OE直线上方或在线上,则令刀具沿X正方向进给一步;若刀具动点在OE直线下方,则令刀具沿Y轴正方向进给一步,如此循环直到加工到E点。判别刀具动点的位置根据偏差函数判别公式:
根据这个公式可以推到出两种不同情况下的地推公式:
对于插补终点的判别,可以采用单向的计数长度法,即:取计数长度M等于Xe、Ye中的大者,并设该坐标方向为计数方向。插补时,仅在该方向上产生进给时,计数长度减一。图1的逐点比较法中,工作循环的结束条件就是M减为0.
2、逐点比较法圆弧插补原理:
逐点比较法在第一象限的圆弧插补原理如图所示,其他象限可一次类推:
对于第一象限的逆圆弧,如果动点在圆弧的外侧则令刀具动点沿X轴负方向进给一步。如果动点在圆弧的内侧则令刀具沿Y轴正方向进给一步。
圆弧的偏差计算公式为:
根据这个公式同样可推导出圆弧插补的两种不同情况下的递推公式:
对于插补终点的判别,同样可以采用单向的计数长度法,不过对于圆弧,计数的方向并不取决于终点坐标中的大者,而是取决于圆弧终点处。
逐点比较法插补中需要编写插入部分流程图:
插入程序:
int M,Fi=0,Fi0,Fi1,xi,yi,i=0,num=-1;
bool Gx;
M=Xe+Ye;
moveto(x0,y0);
setcolor(10);
line(x0,y0,x0+Xe*delta,y0-Ye*delta);xi=x0;yi=y0;
setcolor(12);
while(M>0)
{
getch();
if(Fi>=0)
{
linerel(delta,0);
xi=xi+delta;
Fi0=Fi-Ye;
Fi=Fi0;
num++;
dis_msg(num,Fi,1,0,Fi0,M);
}
else
{
linerel(0,-delta);
Fi1=Fi+Xe;
yi=yi-delta;
Fi=Fi1;
num++;
dis_msg(num,Fi,0,1,Fi1,M);
}
M--;
}
圆弧插补实验程序:
int M,Fi=0,Fi0,Fi1,xi=R,yi=0,i=0,num=0;
M=R;
setcolor(10);
moveto(x0,y0);
arc(x0,y0,0,90,R*delta);
setcolor(12);
moveto(x0+xi*delta,y0);
while(M>0)
内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 =yi+delta;
但是,实行以后出现的结果不正确,如图, 分析:
2、关于计数长度M:
在直线插补中使用的是双向计数长度 M=xe+ye,插补路线会比较准确。
在圆弧插补中使用的是单向计数长度 M=R,在x方向计算,则出现如实验结果所示路径,但在y方向计算步骤,发现结果离终点在x方向有1个单位长度的距离。
3、显示步骤num:
在显示步骤的函数dis_msg中,num,因为dis_msg函数定义中,显示num+1,所以,num的改变应放在程序最后(如圆弧插补中),或者从-1开始,才能放在dis_msg函数之前(如直线插补中)。否则会出现从第二行开始显示步骤的现象。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]
以上为《逐点比较法插补实验报告》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。