直线及圆弧插补程序

上传人:lis****210 文档编号:189957611 上传时间:2023-02-24 格式:DOCX 页数:9 大小:22KB
返回 下载 相关 举报
直线及圆弧插补程序_第1页
第1页 / 共9页
直线及圆弧插补程序_第2页
第2页 / 共9页
直线及圆弧插补程序_第3页
第3页 / 共9页
点击查看更多>>
资源描述
此程序是根据微型计算机控制技术(第二版)清华大学出版社 第三章数字控制技术一一3.2插补原理中的3.2.1逐点比较法的直线插 补,3.2.2逐点比较法圆弧插补编写的。其中的变量定义,原理依据 均来源于此,如有疑问,请参考书中的讲解。尤其是例子,以下两个 程序的第一个运行图均与例题中的一致。一、四象限直线插补程序分别加工第一、二、三、四象限直线,起点均为(0,0),终点坐标为(NX,NY), 进行插补计算。程序中(NX,NY)为终点坐标;NXY为总步数;XOY=1,2,3,4,分别为第一、二、三、四 象限;ZF=1,2,3,4,分别代表+x,-x,+y,-y走步方向;FM为加工点偏差,初值为0。源程序:# include stdio.h# include string.h# include math.hvoid main() int NX,NY,NXYBS,XOY,ZF;int FM=0;char a10=+X”,b10=-X”,c10=+Y”,d10=-Y”,e10;printf(nn 请输入 NX,NYn);scanf(%d %d”,&NX,&NY);if(NX0)if(NY0)XOY=1;elseXOY=4;elseif(NY0)XOY=2;elseXOY=3;printf(终点在第d 象限n,XOY);printf(n 步数坐标进给偏差计算终点判断nn);BS=fabs(NX) + fabs(NY);for(NXY= fabs(NX) + fabs(NY)-1;NXY=0;NXY-)if(FM=0)if(XOY=1|XOY=4)ZF=1;strcpy(e,a);elseZF=2;strcpy(e,b);FM=FM-fabs(NY);printf( %d %sFM=%dNXY=%dnn,BS-NXY,e,FM,NXY);elseif(XOY=1|XOY=2)ZF=3;strcpy(e,c);elseZF=4; strcpy(e,d);FM=FM+fabs(NX);printf( %d %sFM=%dNXY=%dnn,BS-NXY,e,FM,NXY);图一:插补计算过程第一象限直线OA,起点为(0,0),终点坐标为A (6,4)伊输*奶 k点在第1蒙限步数坐标进给偏差计算终点判断1+XFM=-4NK=92+YFM=2NXY=83+XFI1=-2NX=74+YFI1=4NX=65+XFM=0NXV=5+NFM=-4NKV=47+YFH=2NKV=38+XFM=-2NKV=29+YFt1=4NK=1ie+XFM=0NK=0Press Anyto continue图二:插补计算过程第二象限直线OA,起点为(0,0),终点坐标为A(-3,2)率在第2象限步数坐标进给偏差计算终点判断1-WFM=-2NMV=42FM=1NWV=33-KFM=-iHKV=24FM=2HKV=15-KFM=0HKV=0Press anykey to continue图三:插补计算过程第三象限直线OA,起点为(0,0),终点坐标为A (-2,-3)请输XNX, NV-2 -3终点在弟3象限步数坐标进给偏差计算终点判断1-Xfm=-3NXV=42-VFH=-1NXV=33FM=1HXV=24-xFM=-2HNV=15-FM=0NX=0Press an9key to continue图四:插补计算过程第四象限直线OA,起点为(0,0),终点坐标为A(3,-2)终点在第4象限步数坐标进给偏差计算终点判断1+XFM=-2NX=42TFH=1NX=33+XFM=-1NXV=24-vFM=2HKV=15+XFM=0NK=0Presskey to cont inu.e二.四象限逐点比较法圆弧插补加工逆圆弧(或顺圆弧)A-B,圆弧的圆心在坐标原点,已知起点坐标为(X0, Y0)终点 坐标(邮,NY)。程序中(X0,Y0)为起点坐标;(NX,NY)为终点坐标;NXY为总步数;RNS=1,2,3,4, 5,6,7,8,分别为八种圆弧(SR1,SR2,SR3,SR4,NR1,NR2,NR3,NR4,其中 SR 表示 逆圆弧,NR表示顺圆弧,)第一至第四象限的顺圆弧和逆圆弧;ZF=1,2,3,4,分别代表 +x,-x,+y,-y走步方向;FM为加工点偏差,初值为0。圆弧插补计算公式和进给方向偏差圆弧种类进给方向偏差计算坐标计算FM=0SR1,NR2-yFm+1= Fm-2ym+1Xm+1=xm;ym+1=ym-1SR3,NR4+yNR1,SR4-xFm+1= Fm-2xm+1Xm+1=xm-1; ym+1=ymNR3,SR2+xFM0SR1,NR4+xFm+1= Fm+2xm+1Xm+1=xm+1; ymKmSR3,NR2-xNR1,SR2+yFm+1= Fm+2ym+1Xm+1=xm; ym+1=ym+1NR3,SR4-y源程序:# include stdio.h# include string.h# include math.hvoid main() int NX,NY,NXYBS,RNS,ZF,X0=0,Y0=0,XM,YM;int FM=0;char a10=+X”,b10=-X”,c10=+Y”,d10=-Y”,e10;print圮请输入 X0,Y0,NX,NYn);scanf(%d %d %d %d”,&X0,&Y0,&NX,&NY);if(X0NY)if(X00)RNS=7;elseRNS=1;elseif(X00)RNS=8;elseRNS=2;elseif(Y0NY)if(X00)RNS=4;elseRNS=6;elseif(X00)RNS=5;elseRNS=3;printf(该圆弧 为%dn”,RNS);BS=fabs(NX-X0) + fabs(NY-Y0);XM=X0;YM=Y0;for(NXY= fabs(NX-X0) + fabs(NY-Y0)-1;NXY=0;NXY-) if(RNS=1llRNS=3IIRNS=6IIRNS=8)if(FM=0)if(RNS=1IIRNS=8)ZF=1;strcpy(e,a); elseZF=2;strcpy(e,b);FM=FM+2*fabs(XM)+1;XM=XM+1;printf( %d%sFM=%dNXY=%dnn,BS-NXY,e, FM,XM,YM,NXY);elseif(RNS=1IIRNS=6)ZF=3;strcpy(e,c); elseZF=4;strcpy(e,d);FM=FM-2*fabs(YM)+1;YM=YM-1;printf( %d%sFM=%dXM=%d,YM=%dXM=%d,YM=%dNXY=%dnn,BS-NXY,e, FM,XM,YM,NXY);elseif(FM=0) if(RNS=2IIRNS=7) ZF=1;strcpy(e,a); else ZF=2;strcpy(e,b); FM=FM-2*fabs(XM)+1;XM=XM-1;printf( %d%sFM=%dXM=%d,YM=%dNXY=%dnn”,BS-NXYe, FM,XM,YM,NXY); else if(RNS=2|RNS=5) ZF=3; strcpy(e,c); else ZF=4;strcpy(e,d); FM=FM+2*fabs(YM)+1; YM=YM+1; printf( %d%sFM=%dXM=%d,YM=%dNXY=%dnn,BS-NXY,e, FM,XM,YM,NXY);第一象限逆圆弧A-B,圆弧的圆心在坐标原点,已知起点坐标为(0,4)终点坐标(4,0)。 圆弧插补计算过程:清输入泗,YBM,NV3 4 4 0该圆弧为11+XFt1=lXM=l,t1=4NX=?2+XFH=4XH=2,YH=4财XY=63+XFM=9X 11=3,11=4NX=54+XFM=16XM=4,VM=4NXV=45+XFH=25XH=5,VM=4HXV=36+XFM=36XM=6,VM=4HXV=2?+KFM=49KM=7,M=4HK=18+XFM=64XM=8,M=4NXY部Press an_y e_y tocont inue请输 AX0,0,NX,M?-4 -3 -2该圆弧为21-1FM=-7XM=-5,yM=-32TFM=OKM=-5AM=-23FM=-9XM=-6,M=-24+YFM=-4XM=-6,M=-1Pressanykey tocontinue请输入睫,Y札NX,NY -13-34 该圆弧为31-HFM=3HM=0,VM=32-xFM=4MM=l,Vri=33-xFM=7XM=2,VM=3Press anykey tocontinue
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!