直线及圆弧插补程序逐点比较法_第1页
直线及圆弧插补程序逐点比较法_第2页
直线及圆弧插补程序逐点比较法_第3页
直线及圆弧插补程序逐点比较法_第4页
直线及圆弧插补程序逐点比较法_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、此程序是根据微型计算机控制技术(第二版)清华大学出版社 第三章数字控制技术 3.2插补原理中的321逐点比较法的直线 插补,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。源

2、程序:# in elude "stdio.h"# in elude "stri ng.h"# in elude "math.h"void mai n() int NX,NY,NXY,BS,XOY,ZF;int FM=0;char a10="+X",b10="-X",c10="+Y",d10="-Y",e10;printf("nn请输入 NX,NYn");sea nf("%d %d",&N X,&N Y

3、);if(NX>0):(q'o)AcbisNTZ 3S|3<(0o)Acbis!l=dZ (K=人 OXl l=人 0X)M(0=<l/ld)4!(-AXN:0=<AXN! k(AN)sqe)+ (XN)sqe)二人XN)0j !(AN)sqe)+ (XN)sqe)=sg直44至削翳率洱兩滋乎 u.)BuuddOXlu釧碧p%蚩丑冲场 “)#U!d:e=A0x3S|3N人OX(O< 人 N)j!3S|3P=AOX3S|3EOX(O< 人 N)j!FM=FM-fabs(NY);prin tf(" %d%sFM=%dNXY=%dnn"

4、,BS-NXY,e,FM,NXY);elseif(X0Y=1|X0Y=2)ZF=3;strcpy(e,c);elseZF=4; strcpy(e,d);FM=FM+fabs(NX);NXY=%dnn",BS-NXY,e,printf(" %d%sFM=%dFM,NXY);图一:插补计算过程 第一象限直线 OA,起点为(0,0 ),终点坐标为 A (6,4 )请输.gNVG 4F冬点在第1象限步数坐标进给偏差计算终点判断1+XFH=-4HNV-92FM=2HKV=83+XFN2NX? =74+Ym=4NKY=65+XFrt=0MX? =56+KFn=-47+¥Frt

5、=2MX? =36+Km=-zNX?-29FM=4NX?=110+XFM=0NX¥i=flPfcee ar 9kej to contInne图二:插补计算过程 第二象限直线 OA,起点为(0,0 ),终点坐标为 A (-3,2 )请输入-3 2终点在第2象限歩数坐标进给偏養计算终点判断1FM=-22PM-13-XFM=-1HXV-24*vFM=2NXV=15-xFM=0NK?=0Pfc'ess anykey to 匚antinub图三:插补计算过程第三象限直线 OA,起点为(0,0 ),终点坐标为 A (-2,-3 )请输人-2 *3终点在第3舉限步数坐标进绐偏差计算终点判斷

6、1-XPM=-3NWV-42-VPMNM?=33_YFM=1NKV-24FM2NXV=15_YFT1=0NKV=0Press ankey to continue+x,-x,+y,-y 走步方向;FM为加工点偏差,初值为0。图四:插补计算过程第四象限直线 OA,起点为(0,0 ),终点坐标为 A (3,-2 )请输入k碌限坐标进给偏差计算终点判断1futNX?=42FN=12NXV-24-VFH=2MCV-15Frt-0NX¥=0Presskejj to continue二.四象限逐点比较法圆弧插补加工逆圆弧(或顺圆弧)A - B,圆弧的圆心在坐标原点,已知起点坐标为( X0 , Y0

7、 )终点坐标(NX , NY )o程序中(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,分别代表圆弧插补计算公式和进给方向偏差圆弧种类进给方向偏差计算坐标计算FM>=0SR1,NR2-yFm+1 = F m-2ym+1Xm+1= Xm ;ym+1 =y m-1SR3,NR4+yNR1,SR4-xFm+1 = F m-2xm+

8、1Xm+1= Xm -1; y m+1 =y mNR3,SR2+xFM<0SR1,NR4+xFm+1 = F m+2xm+1Xm+1= Xm +1; y m+1 =y mSR3,NR2-xNR1,SR2+yFm+1 = F m+2ym+1Xm+1= Xm ; ym+1 =y m+1NR3,SR4-y+x,-x,+y,-y 走步方向;FM为加工点偏差,初值为0。 so6OUSNMOAOX)七 so 匚SNM so叮SNMOAOX)七(anaoam(xnvoxmman03xn03oa03-ox03-=p% P% P% p%=ueos MMAN-XN-OA-OX <緯堰=)上u_d -0

9、 Lo-=A-="o 匸 P-=A+="O Lw-X-"。匸 q-=x+="o Lro£。OUIAH -u 一 文 A-IAIX-OHOA-OHOXLlrz-SNHSSAXN-ANxN -u 一 ) ouroE po>=lr£eE= pnQu 云=IT6UES= pnQu 云izopls- pnQu 云RNS=2;elseif(YO>NY)if(X0>0)RNS=4;elseRNS=6;elseif(X0>0)RNS=5;elseRNS=3;printf(” 该圆弧为 dn”,RNS);BS=fabs(NX-X

10、O) + fabs(NY-YO);XM=X0;YM=Y0;for(NXY= fabs(NX-X0) + fabs(NY-Y0)-1;NXY>=0;NXY-)if(RNS=1|RNS=3|RNS=6|RNS=8)if(FM>=0)if(RNS=1|RNS=8)ZF=1;strcpy(e,a);elseZF=2;strcpy(e,b);FM=FM+2*fabs(XM)+1;XM=XM+1;prin tf(" %d%sFM=%dXM=%d,YM=%dNXY=%dnn ”,BS-NXY,e, FM,XM,YM,NXY);elseif(RNS=1|RNS=6)ZF=3;strcpy

11、(e,c);elseZF=4;strcpy(e,d);FM=FM-2*fabs(YM)+1;YM=YM-1;XM=%d,YM=%dprintf(" %d%sFM=%dNXY=%dnn ”,BS-NXY,e, FM,XM,YM,NXY);elseif(FM>=0)if(RNS=2|RNS=7)ZF=1;strcpy(e,a);elseZF=2;strcpy(e,b);FM=FM-2*fabs(XM)+1;XM=XM-1;XM=%d,YM=%dprintf(" %d%sFM=%dNXY=%dnn ”,BS-NXY,e, FM,XM,YM,NXY);elseif(RNS=2|RNS=5) ZF=3;strcpy(e,c);elseZF=4;strcpy(e,d);FM=FM+2*fabs(YM)+1;YM=YM+1;FM=%dXM=%d,YM=%dprin tf("%d%sNXY=%dnn ”,BS-NXY,e, FM,XM,YM,NXY);第一象限逆圆弧 A - B,圆弧的圆心在坐标原点,已知起点坐标为(0,4 )终点坐标(4,0 )。圆弧插补计算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论