已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机数控系统插补控制设计 课 程 设 计 任 务 书如下:1 设计题目: 基于单片机数控系统插补控制设计 2 应完成的项目:(1)调研、搜集整理课题的相关资料,确定设计整体方案。 (2)理解并熟悉数控系统插补原理。 (3)根据插补原理,用visual c+实现其模拟仿真。 (4)单片机开发环境(vision )下,编程实现插补。 (5)完成设计说明书,准备答辩。 3 参考资料以及说明:(1)机械设备数控技术。 (2)单片机原理及应用。 (3)c+程序设计基础。 摘 要本文主要是讨论数控机床加工过程中整个数控系统控制软件的核心插补。而在现代数控系统中,一般都采用软件插补器。在大多数数控机床的数控装置都具有直线插补器和圆弧插补器。根据插补所采用的原理和计算方法的不同,可有许多插补方法。目前应用的插补方法分为基准脉冲插补和数据采样插补两大类。在本文中,主要介绍基准脉冲插补中的逐点比较法和数值积分插补法(dda)。在熟悉插补原理的基础上,利用vc+软件工具来实现数控插补编程及仿真。在分析了逐点比较法和数字积分插补法(dda)的算法,画出插补流程图,利用vc+软件编程源代码再实现仿真。此外,单片机作为微机计算机的一个重要分支,在现代社会的生产和生活中发挥着越来越重要的作用。单片机技术已经成为了实现各种工业测控系统和智能仪器的重要手段。所以,我们在利用在单片开发环境(vision)下,来编程去实现插补的整一个过程,这样,更加明了插补的一个过程及其原理是怎样的!关键词:插补、单片机、逐点比较法、数据积分插补法 目 录摘 要0第一章 绪论21.1 引言21.2 课题设计内容21.2.1课题设计名称和要求21.2.2 课题分析3第二章数控插补的控制设计32.1 逐点比较法32.2.1 插补原理42.2.2 直线插补42.2.3圆弧插补82.2数字积分插补法(dda)122.2.1插补原理132.2.2 dda直线插补132.2.3dda圆弧插补16第三章 visualc+模拟仿真193.1 逐点比较法193.1.1 直线插补仿真193.1.2 圆弧插补仿真193.2 数字积分插补法(dda)203.2.1 dda直线插补仿真203.2.2 dda圆弧插补仿真20第四章 单片机开发环境(vision)下,编程实现插补214.1 单片机的介绍214.2 直线编程244.2.1逐点比较法的直线插补编程244.3圆弧编程244.3.1逐点比较法的圆弧插补编程24参考文献25附件255.1 逐点比较法直线插补visualc+模拟仿真255.2逐点比较法逆圆插补visualc+模拟仿真265.3逐点比较法顺圆插补visualc+模拟仿真275.4数字积分插补法(dda)直线插补visualc+模拟仿真285.5数字积分插补法(dda)逆圆插补visualc+模拟仿真28第一章 绪论1.1 引言随着单片机技术的迅速发展,其在工业控制领域得到了广泛应用。在工业领域的中的数控技术也是在不断的发展着,自从美国1952年研制成功世界上第一台数控机床以后,我国几乎与各工业发达国家同时起步研究数控技术。经过几十年努力和随着对外合作的增多,数控技术有了新的发展机会,国内数控技术在系统主控、机械和功能部件的开发方面都有了突破性的进展。另外在数控机床的加工过程中整个数控系统控制软件的核心插补,故:插补对于数控系统来说是非常重要的。数控机床上进行加工的工件,其轮廓大部分由直线和圆弧这两种简单、基本的曲线构成,若加工的轮廓由其他非圆曲线构成,可采用一小段直线或者圆弧来拟合。数控系统的主要任务之一是控制执行机构按工件的轮廓轨迹运动。所谓插补就是根据给定进给速度和给定轮廓线形的要求,在运动轨迹的起始点坐标和轮廓轨迹之间,有数控系统计算出各个中间点的坐标,“插入”、“补上”运动轨迹中间点的坐标值,这个过程称为“插补”。目前应用的插补方法分为基准脉冲插补和数据采样插补两大类,而在本文,主要探讨的是基准脉冲插补,它包括两个分点,一是逐点比较法,二是数字积分插补法(dda);1.2 课题设计内容1.2.1课题设计名称和要求课题设计名称:基于单片机数控系统插补控制设计要求:1、理解并熟悉数控系统插补原理。 2、根据插补原理,用visualc+实现其模拟仿真。 3、在单片机开发环境(vision)下,编程实现插补。1.2.2 课题分析单片机作为微机计算机的一个重要分支,在现代社会的生产和生活中正发挥着越来越重要的作用。单片机技术已经成为实现各种工业测控系统和智能仪器仪表的重要手段。近年来单片机产品市场百花齐放,功能各异的单片机系列产品不断推出,但是,单片机新品仍以8051为内核,采用cmos工艺,形成了所谓的80c51主流系列。1目前,数控技术已经成为现代制造技术的基础支撑,在数控技术中,插补起着相当重要的作用。插补,就是根据给定进给速度和给定轮廓线形的要求,在运动轨迹的起始点坐标和轮廓轨迹之间,有数控系统计算出各个中间点的坐标,“插入”、“补上”运动轨迹中间点的坐标值。插补是指数控系统通过运算,给出机床运动的指令,实现用简单的微线段逼近零件某一段理想轮廓的过程。它的实际意义是:在已知零件轮廓表面曲线段的起点和终点之间,进行“数据点的密化工作”。插补所采用的原理和计算方法的不同,可有许多插补方法。目前应用的插补方法非为基准脉冲插补和数据采样插补两大类。在这次课题设计中,我们主要研究的是基准脉冲插补。它主要分为两点,逐点比较法和数字积分插补法(dda)。逐点比较法以折线来逼近直线或者圆弧曲线,它既可以做直线插补,又可以做圆弧插补。它运算直观,差不误差小于一个脉冲当量,输出脉冲均匀,而且输出脉冲的速度变化小,调节方便。而数字积分插补法(dda),是利用数字积分的方法,计算刀具沿各坐标轴的位移,使刀具沿着所加工的轨迹运动。它具有运算速度快、脉冲分配均匀、易实现多轴联动等优点。不仅能方便地实现一次、两次曲线的插补,还可以用各种函数运算,因此得到广泛的运用。2本次课题设计主要目的是让我们了解并熟悉数控系统插补是怎样实现的,熟悉插补的一个原理,然后是以visualc+为工具,在visualc+环境下进行编程来进行插补的仿真。然后再在单片机开发环境(vision)下,编程实现插补。第二章 数控插补的控制设计2.1 逐点比较法逐点比较法又称代数运算法、醉步,它是一种边判别边前进的方法。2.2.1 插补原理逐点比较法的原理是:计算机在控制加工过程中,每进给一步都要将加工点的瞬时坐标与规定的轨迹相比较,判断加工偏差,然后决定下一步的进给方向。逐点比较法以折线来逼近直线或者圆弧曲线,它既可以做直线插补,又可以做圆弧插补。它运算直观,差不误差小于一个脉冲当量,输出脉冲均匀,而且输出脉冲的速度变化小,调节方便。22.2.2 直线插补直线插补就是零件程序提供直线段的起点、终点坐标,数控装置将这两点之间的空间进行数据密化,用一个个输出脉冲把空间填补起来,从而形成要求的直线轨迹。2(一).偏差计算公式如图所示x-y平面第一象限内有直线段 ,以原点为起点,以a( xe、ye)为终点。对x-y第一象限内的任一点p(xi、yi)有如下三种情况:当点p(xi、yi)在直线上,则下式成立:即 xeyi xiye=0取偏差函数:进给方向的选取:使误差减小的方向 当p点在直线上方时;则:xeyi xiye0 当p点在直线下方时;则:xeyi xiye0,点p在直线上方,应向+x 移动。f0。为便于计算机编程计算,将f的计算予以简化。设第i象限中动点p(xi, yi)的f值为fi, fixeyi-xiye1.若沿+x向走一步,即于是有 fi+1 = fi -ye 2.若沿+y向走一步,即 于是有:fi+1 = fi +xe(二)终点判别的方法有两种:1.每走一步,判断动点p(xi, yi)的坐标值是否与终点坐标相同,即 xi-xe =0且 yi-ye=0若两式同时满足,插补结束。2. 求程序段总步数n=xe+ye,每走一步,n-1n,直到 n=0,插补结束。(三)节拍控制的插补计算过程:(用流程图表示 )5(四)第 i 象限直线插补软件流程图具体程序如下:3#include iostream.h /头文件void main() int xe,ye,f,j;xe=4; ye=3; /把常数4写入变量xe;把常数3写入变量ye;f=0; /把常数0写入f;j=xe+ye; /读出xe和ye的值,相加后结果写入j;do if (f=0)if(ye=xe) /判断直线是否大于45度;cout同时走+x,+yendl; /输出结果; f=f+xe-ye; /读出f、xe和ye的值,计算后结果写入f; j=j-2; /读出j的值,减2后结果写入j; elsecout向+x走一步xe)cout向+y走一步endl;f=f+xe; j=j-1;else cout同时走+x,+yendl;f=f+xe-ye; j=j-2;while (j!=0);(五)其他象限的插补情况 -x+yf0(-x)f0(-x)f0(+x)f0(-y)f0(+x)f=0时,都是在x方向步进,不管+x向还是-x向,| x |增大。走+x或-x可由象限标志控制,第一、第四象限走+x,第二、三象限走-x。同样,f 0,向-x 走一步;2.动点在圆弧内,f =0)cout向-x走一步endl; /输出结果;f=f-2*x0+1; /读出f、2*x0和1,计算后结果写入f;x0=x0-1; /读出x0的值,减1后结果写入x0;else cout向+y走一步endl;f=f+2*y0+1; y0=y0+1;j=j-1;while (j!=0);2、第一象限顺圆插补f0动点在-y方向走一步后,fi+1=fi-2yi+1; f0动点在+x方向走一步后fi+1=fi+2xi+1pipi+1pipi+1xy yyy y0ae3、圆弧插补有八种情况表示如下图由上图可以看出:第一象限、顺圆、f=0;第三象限、逆圆、f=0和第四象限、逆圆、f=0;第二象限、逆圆、f0;第三象限、顺圆、f=0的情况适用于动点在-x方向走一步后xi+1=xi-1 ;yi+1=yi fi+1= =fi-2xi+1。第一象限、逆圆、f0;第二象限、顺圆、f=0和第四象限、逆圆、f=0的情况适用于动点在+y方向走一步后yi+1=yi+1 ;xi+1=xi fi+1= =fi+2yi+1。第一象限、顺圆、f=0;第二象限、逆圆、f=0;第三象限、逆圆、f0和第四象限、顺圆、f0的情况适用于动点在-y方向走一步后yi+1=yi-1 ;xi+1=xi fi+1= =fi-2yi+1。22.2 数字积分插补法(dda)数字积分插补法又称为数字积分分析法(dda),是利用数字积分的方法,计算刀具沿各坐标轴的位移,是刀具沿着所加工的轨迹运动。它具有运算速度快、脉冲分配均匀、易实现多轴联动等优点。不仅能方便地实现一次、两次曲线的插补,还可以用各种函数运算,因此得到广泛的运用。22.2.1 插补原理 它的基本原理可以用图2.2所示的函数积分表示,从微分几何概念来看,从时刻0到时刻t求函数y=f(t)曲线所包围的面积时,可用积分公式:如果将0t的时间划分成时间间隔为t的有限区间,当t足够小时,可得近似公式:式中yi-1为t=ti-1时f(t)的值,此公式说明:积分可以用数的累加来近似代替,其几何意义就是用一系列小矩形面积之和来近似表示函数f(t)下面的面积,ty=f(t)ti-1tiyot图2.2 数字积分原理fig 2.2principle of dda如果在数字运算时,用取t为基本单位“1”,则2.2式可以简化为: 42.2.2 dda直线插补(1) 原理:积分的过程可以用微小量的累加近似: 如下图所示设x-y平面内直线 ,起点(0,0),终点( xe, ye )。若以匀速v沿oa位移,则v可分为vx、vy两个速度,见下图。它们的关系式为式中 k比例系数 在t时间内,x和y位移增量x和y应为动点从起点走向终点的过程,可看作是各坐标轴每一单位时间间隔t分别以增量及同时累加的结果。经过m次累加后,x和y分别都达终点(xe ,ye) vvyvxa(xe ,ye)则:式中k、xe、ye为常数,若取一单位时间间隔,即t1,则 若这两式成立,那么 mk=1; m=1/k上式表明比例常数k和累加次数m的关系,其中已知一个,另一个也就确定了。但m必须是整数,所以k一定是小数。选择k时主要考虑每次增量x和y不大于1,以保证坐标轴每次分配进给脉冲不超过一个,就是说每次位移增量只产生一个单位步距,即 故:一般取:如 ,满足 的条件,故累加次数为 因为 ,则 这一运算对二进制来说是比较容易实现的,即数字本身不变,只要把小数点左移n位即可。所以一个n位寄存器存放xe 和存放kxe 的数字是相同的。后者只认为小数点出现在最高位数的前面,其它没有区别。 (二)dda直线插补器设经过m次累加,x、y同时或分别到达终点x=mkxe=xe (m*k=1)kxe1 kye1 (寄存器)kxe1 kye1 (累加器)取k=1/ 则m=; (三)终点判别直线插补时不论被积函数有多大,对于n位寄存器。必须累加2n次才能到达终点。因此可以用一容量为2n,的寄存器当计数器,来统计累加的次数。可以用加1计数器,也可以用减1计数器。用加1计数器时,首先将计数器清零,运算过程中每来一个累加脉冲t就加1。当计数器满2n时表明运算完成。采用减1计数器时,运算前把总运算次数2n送入计数器,每运算一次,就减去1。当计数器减为0时,表明运算完成。故:终点判别:j=(四)第 i 象限dda直线插补软件流程图 5 具体程序如下:3#include /头文件void main()int x,y,m,xe,ye,k; x=0; y=0; k=0; /把常数0写入变量x;把常数0写入变量y;把常数0写入变量k; m=16; xe=10; ye=5; /把常数16写入变量m;把常数10写入变量xe;把常数5写入变量ye;do x=x+xe; /读出x和xe的值,相加后结果写入x;y=y+ye; /读出y和ye的值,相加后结果写入y;if (x=m) if (y=m) cout向+x,+y同时进给endl; /输出结果; x=x-m; /读出x和m的值,相减后结果写入x; y=y-m; /读出y和m的值,相减后结果写入y; k=k+1; /读出k的值,加1后结果写入k; elsecout向+x走一步=m) cout向+y走一步endl; y=y-m; k=k+1; else k=k+1;while (k!=m);2.2.3 dda圆弧插补(一) 基本原理如下图所示:假定加工工件轮廓的一部分是x-y坐标系中一段圆弧ab,位于第一象限,逆时针走向。圆弧起点a( x0 , y0 ),终点为b(xe , ye ),半径为r,圆心在原点(0,0)。加工时沿弧切线方向的进给速度v 恒定 设圆弧ab上任一动点p( xi , yi ),其切线方向的进给速度v可分解为水平方向速度 和垂直方向速度 vy ,即由相似三角形可得:p (xi,yi) (二)dda直线插补器 (三)终点判别圆弧插补的终点判断不能象直线插补那样由累加次数m来决定,一般采用两个终点判别计数器分别累计两坐标的进给脉冲数。在插补运算中,每产生一个x或y,就使对应计数器减1。若某一个计数器先减到零,就停止该轴的溢出脉冲,而插补运算仍继续进行,直到另一计数器也减至零时才到达终点,插补运算结束。(四)第 i 象限dda圆弧插补软件流程图 4具体程序如下#include /头文件void main() int m,jrx,jvx,jry,jvy,nx,ny; jvx=0; jvy=5;m=8; / 把常数0写入变量jvx;把常数5写入变量jvy;把常数8写入变量m;nx=5; ny=5; jrx=0; jry=0; /分别把常数5、5、0、0、写入nx、ny、jrx、jry; do if (nx!=0) jrx=jrx+jvx; /读出jrx和jvx的值,相加后结果写入jrx; if(ny!=0) jry=jry+jvy; if (jrx=m) if (jry=m) cout向-x,+y同时进给endl; jrx=jrx-m; /读出jrx和m的值,相减后结果写入jrx;jry=jry-m; jvx=jvx+1; jvy=jvy-1; nx=nx-1; ny=ny-1; elsecout向-x走一步=m) cout向+y走一步=0)if(ye=xe) x+; y+; dc.lineto(x,y); f=f+xe-ye; j=j-2; else x+ ; dc.lineto(x,y); f=f-ye; j=j-1;else if (yexe) y+ ; dc.lineto(x,y); f=f+xe; j=j-1;else x+; y+; dc.lineto(x,y); f=f+xe-ye; j=j-2;while (j!=0);cview:onlbuttondown(nflags, point);3.1.2 圆弧插补仿真以第一象限逆圆为例,仿真程序如下:void cmy11111view:onlbuttondown(uint nflags, cpoint point) cclientdc dc(this) ; / 定义画笔dc.moveto(100,100); /移动画笔到点(100,100)int x0, y0, j,f, x1, y1,x,y; x0=40; y0=0; x1=0; y1=40;j=x0+y1; f=0; x=100; y=100;do if (f=0) x- ; dc.lineto(x,y); f=f-2*x0+1; x0=x0-1;else y+ ; dc.lineto(x,y); f=f+2*y0+1; y0=y0+1;j=j-1;while (j!=0);cview:onlbuttondown(nflags, point);3.2 数字积分插补法(dda)3.2.1 dda直线插补仿真以第一象限为例,仿真程序如下:void cmy11111view:onlbuttondown(uint nflags, cpoint point) cclientdc dc(this) ; / 定义画笔dc.moveto(0,0); /移动画笔到原点int x1,y1,m,xe,ye,k,x,y; x1=0; y1=0; k=0;x=0,y=0;m=64; xe=100; ye=50;do x1=x1+xe;y1=y1+ye;if (x1=m) if (y1=m) x+; y+; dc.lineto(x,y); x1=x1-m; y1=y1-m; k=k+1; elsex+; dc.lineto(x,y); x1=x1-m; k=k+1; elseif (y1=m) y+; dc.lineto(x,y); y1=y1-m; k=k+1; else k=k+1;while (k!=m);cview:onlbuttondown(nflags, point);3.2.2 dda圆弧插补仿真以第一象限逆圆为例,仿真程序如下:void cmy11111view:onlbuttondown(uint nflags, cpoint point) cclientdc dc(this) ; / 定义画笔dc.moveto(100,50); /移动画笔到点(100,50)int m,jrx,jvx,jry,jvy,nx,ny,x,y; jvx=0; jvy=50;m=64; nx=50; ny=50; jrx=0; jry=0; x=100; y=50;do if (nx!=0) jrx=jrx+jvx; if(ny!=0) jry=jry+jvy;if (jrx=m)if (jry=m) x-; y+; dc.lineto(x,y); jrx=jrx-m; jry=jry-m; jvx=jvx+1; jvy=jvy-1; nx=nx-1; ny=ny-1; else x- ; dc.lineto(x,y); jrx=jrx-m; jvy=jvy-1; nx=nx-1;else if (jry=m) y+ ; dc.lineto(x,y); jry=jry-m; jvx=jvx+1; ny=ny-1;while(nx!=0|ny!=0);cview:onlbuttondown(nflags, point);第四章 单片机开发环境(vision)下,编程实现插补4.1 单片机的介绍所谓单片机,就是将cpu,ram,rom,定时/计数器和多种i/o接口电路都集成在一块集成芯片上的微型计算机。mcs-51系列单片机是美国intel公司在1980年推出的8位单片 微型计算机 ,包含51和52两个子系列。51子系列的典型产品有8031,8051和8751三种机型 52子系列包括8032,8052二种主要机型。 51子系列的配置如下:(1)8位cpu;(2)振荡频率1.212mhz;(3)128个字节的片内数据存储器(片内ram);(4)21个专用寄存器;(5)4kb的片内程序存储器(8031无);(6)8位并行i/o口p0,p1,p2,p3;(7)一个全双工串行i/o口;(8)2个16位定时器/计数器;(9)5个中断源,分为2个优先级; 本次编程选用atmel89s51系列单片机,由于它的模块化设计为适应具体的应用提供了极大的灵活性,便于扩展功能,有效的提高了系统的经济性。at89s51是一种低工耗、高性能的片内含有4kb快闪可编程/擦除只读存储器的八位cmos微控制器,使用高密度、非易失存储编程器对程序存储器重复编程。at89s51具有以下特点:(1)与mcs-51微控制器产品系列兼容。(2)片内有4kb可在线重复编程的快闪擦写存储器。(3)32条可编程i/o线。(4)程序存储器具有三级加密保护。(5)可编程全全双工串行通道。(6)空闲状态维持低功耗和掉电状态保存存储内容。(7)而且与87c51系列的引脚也完全兼容。89s51单片机结构如图4-1所示:图4-1 89s51单片机结构框图51系列单片机的引脚功能:主电源引脚 vss、vcc vss:接地,vcc:接+5v电源外接晶振引脚 xtal1、xtal2 xtal1:片内反向放大器输入端,xtal2:片内反向放大器输出端输入/输出引脚 p0、p1、p2、p3p0.0p0.7:p0口的8个引脚,p0口是8位漏极开路型双向i/0端口,在接有片外存储器或i/0扩展接口时,p0.0p0.7分时复用,作低8位地址总线与双向8位数据总线p1.0p1.7:p1口的8个引脚,p1口是一个带内部上拉电阻的8位双向i/o口,对于52子系列,p1.0还可用于定时器/计数器2的计数脉冲输入端2,1.1还可作定时器/计数器2的外部控制端t2ex。p2.0p2.7:p2口的8个引脚,p2口也是一个带内部上拉电阻的双向i/o口,在访问片外存储器或扩展i/o接口时,还用于提供高8位地址。p3.0p3.7:p3口的8个引脚,p3口也是一个带上拉电阻的i/o口。今后单片机的发展趋势,将是进一步向着多功能、高性能、高速度、低功耗、低价格、存储容量扩大和增强i/o功能及结构兼容等方面发展。其发展趋势主要有以下几个方面:1. 多功能 在单片机中尽可能多地把应用所需的存储器、各种功能的i/o口都集成在一块芯片内,使单片机的功能更加强大。如把led、lcd或vfd显示驱动器也开始集成在8位单片机中。2. 高性能 进一步改进cpu的性能,加快指令运算的速度和提高系统控制的可靠性,采用精简指令系统计算机risc(reduced instruction set computer)结构和流水线技术,大幅度提高运行速度。现指令速度最高者已达100mips(million instruction per seconds,即兆指令每秒),并加强了位处理功能、中断和定时控制功能,使单片机的性能明显地优于同类型的微处理器。单片机集成度进步提高,有的单片机的寻址能力已突破64 kb的限制,8位、16位的单片机有的寻址能力已达到1 mb和16 mb。片内rom的容量可达64 kb,ram的容量可达2 kb。3. 低电压、低功耗 允许使用的电压范围越来越宽,一般在36v范围内工作,有的已能在1.2v或0.9v电压下工作。几乎所有的单片机都具有省电运行方式。单片机的功耗已从ma级降到a级,甚至1a以下,在一粒钮扣电池下就可长期工作。低功耗化的效应不仅是功耗低,而且带来了产品的高可靠性、高抗干扰能力以及产品的便携化。4. 低价格 单片机应用的另一显著特点是量大面广。促使世界各国公司在提高单片机性能的同时,也十分注意降低价格。如z-8系列的z8600、80c51系列的80c31每片仅售1-1.5美元。提高性能价格比是各公司竞争的主要策略和不懈追求的目标。14.2 直线编程4.2.1逐点比较法的直线插补编程以第一象限直线为例:#include void main() int xe,ye,f,j,x,y; xe=40; ye=30; x=100; y=80; f=0; j=xe+ye;do p1_0=1; p1_1=1;if (f=0)if(ye=xe) x+; p1_0=0;y+; p1_1=0;f=f+xe-ye; j=j-2; else x+ ; p1_0=0; f=f-ye; j=j-1;else if (yexe) y+ ;p1_1=0;f=f+xe;j=j-1;else x+; y+; p1_0=0;p1_1=0;f=f+xe-ye;j=j-2;while (j!=0);故:数字积分插补法(dda)的直线插补编程也类似这样;4.3 圆弧编程4.3.1逐点比较法的圆弧插补编程以第一象限逆圆弧为例:#include void main()int x0, y0, j,f, x1, y1,x,y; x0=40; y0=0; x1=0; y1=40; j=x0+y1; f=0; x=100; y=100;do p1_0=1; p1_1=1;if (f=0) x- ; p1_0=0; f=f-2*x0+1; x0=x0-1; else y+ ; p1_1=0; f=f+2*y0+1; y0=y0+1;j=j-1; while (j!=0);故:数字积分插补法(dda)的圆弧插补编程也类似这样;参考文献1李全利 单片机原理及应用 北京 清华大学出版社2006 2李勇 机械设备数控技术 北京 国防工业出版社 20103周霭如 c+程序设计基础 北京 电子工业出版社 20084网上资料 /view/ddbfeb020740be1e650e9aba.html5网上资料 /view/22480ed6195f312b3169a550.html附件5.1 逐点比较法直线插补visualc+模拟仿真仿真程序如下:void cmy11view:onlbuttondown(uint nflags, cpoint point) cclientdc dc(this) ; / 定义画笔dc.moveto(0,0); /移动画笔到某个位置int xe,ye,f,j,x,y; xe=40; ye=30; x=100; y=80; f=0; j=xe+ye;do if (f=0)if(ye=xe) x+; y+; dc.lineto(x,y); f=f+xe-ye; j=j-2; else x+ ; dc.lineto(x,y); f=f-ye; j=j-1;else if (yexe) y+ ; dc.lineto(x,y); f=f+xe; j=j-1;else x+; y+; dc.lineto(x,y); f=f+xe-ye; j=j-2;while (j!=0);cview:onlbuttondown(nflags, point);5.2逐点比较法逆圆插补visualc+模拟仿真仿真程序如下:/第一段圆弧void cmy2view:onlbuttondown(uint nflags, cpoint point) cclientdc dc(this) ; / 定义画笔dc.moveto(100,100); /移动画笔到某个位置int x0, y0, j,f, x1, y1,x,y; x0=40; y0=0; x1=0; y1=40; j=x0+y1; f=0; x=100; y=100;do if (f=0) x- ; dc.lineto(x,y); f=f-2*x0+1; x0=x0-1; else y+ ; dc.lineto(x,y); f=f+2*y0+1; y0=y0+1;j=j-1; while (j!=0);/第二段圆弧dc.moveto(60,140); x0=0; y0=40; x1=-40; y1=0; j=80; f=0; x=60; y=140;do if (f=0) y-; dc.lineto(x,y); f=f-2*y0+1; y0=y0-1; else x-; dc.lineto(x,y); f=f-2*x0+1; x0=x0-1;j=j-1; while (j!=0);/第三段圆弧dc.moveto(20,100); x0=-40; y0=0; x1=0; y1=-40; j=80; f=0; x=20; y=100;do if (f=0) x+; dc.lineto(x,y); f=f+2*x0+1; x0=x0+1; else y-; dc.lineto(x,y); f=f-2*y0+1; y0=y0-1;j=j-1;while (j!=0);/第四段圆弧dc.moveto(60,60); x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脂肪酸酰化及酯化操作工技术评优能力考核试卷含答案
- 乡村斜面水渠施工方案(3篇)
- 中德园基础施工方案(3篇)
- 冬天谈话主题活动方案策划(3篇)
- 保护湿地环保活动策划方案(3篇)
- 1-2-Dilauroyl-sn-glycero-3-phosphoethanolamine-d46-DLPE-d-sub-46-sub-生命科学试剂-MCE
- 商圈招租施工方案模板(3篇)
- 国家质量抽测应急预案(3篇)
- 地震应急预案检查制度(3篇)
- 墙面立体浮雕施工方案(3篇)
- 酒吧服务员培训资料
- 床旁超声在临床诊断中的应用
- 2026新教材人教PEP版五年级上册英语Unit 3 Work and play 教案
- 麻醉精神药品管理及应急预案
- 2026年安徽省中考语文试卷(含答案)
- 2020年北师大版八年级上册数学全册复习课件
- 前列腺增生病人的护理查房
- 220kV线路工程架线施工方案
- 人教版九年级数学上册《圆》单元起始课教学设计
- 2025四川乐山市商业银行社会招聘笔试试题附答案解析
- 《中小学跨学科课程开发规范》
评论
0/150
提交评论