版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数控技术课程设计说明书设计题目 直线插补与圆弧插补程序设计 机械设计以及自动化专业 机械工程学院 机械102班 设计者 青岛理工大学 2013年6月20日目 录1. 设计题目12.目录23.直线插补流程图34.直线插补程序45.程序结果86.圆弧插补流程图97.圆弧插补程序108.程序结果21一直线插补1.直线插补程序流程图置FM=0输入XE、YE、XOY、NXYFM0?XOR=1或4?XOR=1或2?ZF=1ZF=2ZF=3ZF=4FM=FM-YEFM=FM+YE调用走步控制程序NXY=NXY-1NXY=0?开始 结束YNYNYNYN2.直线插补程序设计#include "stdi
2、o.h"int i,X,Y,X0,Y0,Xe,Ye,F,N;int a302;void main() int m; int menu(); void yi(); void er(); void san(); void si(); void te(); void shuchu(); m=menu(); a00=X0; a01=Y0; switch(m) case 1:yi();shuchu();break; case 2:er();shuchu();break; case 3:san();shuchu();break; case 4:si();shuchu();break; case
3、5:te();shuchu();break; default:printf("无法插补n"); int menu() int t; printf("输入起点坐标n"); scanf("%d,%d",&X0,&Y0); printf("输入终点坐标n"); scanf("%d,%d",&Xe,&Ye); if (Xe>=X0&&Ye>=Y0) t=1; else if (Xe<=X0&&Ye>=Y0) t=2;
4、 else if (Xe<=X0&&Ye<=Y0) t=3; else if (Xe>=X0&&Ye<=Y0) t=4; else if (Xe=X0&&(Ye>Y0&&Y0>=0)|(Ye<Y0&&Y<=0) t=5; else t=6; return(t); void yi() F=0; N=Xe-X0+Ye-Y0; X=X0; Y=Y0; for(i=1;i<=N;i+) if(F>=0) X+; ai0=X; ai1=Y; F-=Ye-Y0; el
5、se Y+; ai0=X; ai1=Y; F+=Xe-X0; void er() F=0; N=X0-Xe+Ye-Y0; X=X0; Y=Y0; for(i=1;i<=N;i+) if(F>=0) X-; ai0=X; ai1=Y; F-=Ye-Y0; else Y+; ai0=X; ai1=Y; F+=X0-Xe; void san() F=0; N=X0-Xe+Y0-Ye; X=X0; Y=Y0; for(i=1;i<=N;i+) if(F>=0) X-; ai0=X; ai1=Y; F-=Y0-Ye; else Y-; ai0=X; ai1=Y; F+=X0-Xe
6、; void si() F=0; N=Xe-X0+Y0-Ye; X=X0; Y=Y0; for(i=1;i<=N;i+) if(F>=0) X+; ai0=X; ai1=Y; F-=Y0-Ye; else Y-; ai0=X; ai1=Y; F+=Xe-X0; void te()N=Ye-Y0; for(i=1;i<=N;i+) if(Ye>0) Y+; ai0=X; ai1=Y; else if(Ye<0) Y-; ai0=X; ai1=Y; void shuchu() for(i=0;i<=N;i+) printf("%d",i);
7、printf("%d,%dn",ai0,ai1); 3程序结果例如 起点(0,0)终点(6,4)步数 坐标1 1,02 1,13 2,14 2,25 3,26 4,27 4,38 5,39 6,310 6,4二.圆弧插补1.圆弧插补程序流程图ZF=4ZF=4RNS=1,6?RNS=2,5?输入X0、Y0、NXY、RNS置FM=0、XM=X0、YM=Y0RNS=1,2,6,8?FM0?FM0?RNS=2,7?RNS=1,8?ZF=3ZF=2ZF=1ZF=1ZF=2ZF=3FM=FM-2XM=1FM=FM+2XM=1FM=FM-2YM=1FM=FM+2YM+1YM=YM+1YM
8、=XM-1YM=XM+1YM=YM-1调用走步控制程序NXY=NXY-1NXY=0?结束NNYNYYNNYNYNYNYN NNN2.圆弧插补程序#include "stdio.h"#include "math.h"int X0,Y0,X1,Y1,X2,Y2,X3,Y3,X4,Y4;int i=1,r,f,s;void main() int m; int menu(); void yishun(); void yini(); void ershun(); void erni(); void sanshun(); void sanni(); void sis
9、hun(); void sini(); void shuchu(); m=menu(); switch(m) case 1:yishun();break; case 2:yini();break; case 3:ershun();break; case 4:yini();break; case 5:sanshun();break; case 6:yini();break; case 7:sishun();break; case 8:yini();break; default:printf("无法插补n"); int menu() int t; printf("输入
10、原点坐标n"); scanf("%d,%d",&X0,&Y0); printf("输入起点坐标n"); scanf("%d,%d",&X3,&Y3); printf("输入终点坐标n"); scanf("%d,%d",&X4,&Y4); printf("1:顺时针圆弧n"); printf("2:逆时针圆弧n"); scanf("%d",&s); X1=X3-X0; Y1
11、=Y3-Y0; X2=X4-X0; Y2=Y4-Y0; r=X1*X1+Y1*Y1; if (X1>=0&&Y1>0&&s=1) t=1; else if (X1>0&&Y1>=0&&s=2) t=2; else if (X1<0&&Y1>=0&&s=1) t=3; else if (X1<=0&&Y1<0&&s=2) t=4; else if (X1<=0&&Y1<0&&s=
12、1) t=5; else if (X1<0&&Y1<=0&&s=2) t=6; else if (X1>0&&Y1<=0&&s=1) t=7; else if (X1>=0&&Y1<0&&s=2) t=8; else t=9; return(t); void yishun() do f=X1*X1+Y1*Y1-r; if(f>=0) Y1-; f-=2*Y1+1; i+; printf("%d",i); printf("%d,%
13、dn",X1,Y1); else X1+; f+=2*X1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); while(Y1!=0&&(X1!=X2|Y1!=Y2); if(Y1=0) void sishun(); sishun(); void yini() do f=X1*X1+Y1*Y1-r; if(f>=0) X1-; f-=2*X1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); el
14、se Y1+; f+=2*Y1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); while(X1!=0&&(X1!=X2|Y1!=Y2); if(X1=0) void erni(); erni(); void ershun() do f=X1*X1+Y1*Y1-r; if(f>=0) X1+; f+=2*X1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); else Y1+; f+=2*Y1+1; i+
15、; printf("%d",i); printf("%d,%dn",X1,Y1); while(X1!=0&&(X1!=X2|Y1!=Y2); if(X1=0) void yishun(); yishun(); void erni() do f=X1*X1+Y1*Y1-r; if(f>=0) Y1-; f-=2*Y1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); else X1-; f-=2*X1+1; i+; printf("%d&q
16、uot;,i); printf("%d,%dn",X1,Y1); while(Y1!=0&&(X1!=X2|Y1!=Y2); if(Y1=0) void sanni(); sanni(); void sanshun() do f=X1*X1+Y1*Y1-r; if(f>=0) Y1+; f+=2*Y1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); else X1-; f-=2*X1+1; i+; printf("%d",i); printf(&q
17、uot;%d,%dn",X1,Y1); while(Y1!=0&&(X1!=X2|Y1!=Y2); if(Y1=0) void ershun(); ershun(); void sanni() do f=X1*X1+Y1*Y1-r; if(f>=0) X1+; f+=2*X1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); else Y1-; f+=2*Y1+1; i+; printf("%d",i); printf("%d,%dn",X
18、1,Y1); while(X1!=0&&(X1!=X2|Y1!=Y2); if(X1=0) void sini(); sini(); void sishun() do f=X1*X1+Y1*Y1-r; if(f>=0) X1-; f-=2*X1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); else Y1-; f-=2*Y1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); while(X1!=0&&(X1!=X2|Y1!=Y2); if(X1=0) void sans
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中华优xiu传统文化(海南软件职业技术学院)知到智慧树答案
- 社团创新与组织发展社团工作计划
- 《放射性污染的危害》课件
- 8物北师期末北京市一零一中教育集团2023-2024学年上学期期末模拟八年级物理练习
- 2024年浙江省嘉兴市中考英语模拟试卷(6月份)
- 《促销员培训手册》课件
- 初中物理教学工作参考计划范文5篇
- 【大学课件】单片机原理与接口技术课件 单片机应用系统抗干扰技术
- 项目资金申请报告范文
- 油价上涨分析报告范文
- QCT1067.5-2023汽车电线束和电器设备用连接器第5部分:设备连接器(插座)的型式和尺寸
- 急诊医学智慧树知到期末考试答案章节答案2024年杭州医学院
- 中国老年糖尿病诊疗指南解读(2024版)
- 《第4单元 表内乘法(一):2、3的乘法口诀》教案(附导学案)
- (完整)运输方案
- 华为产品全生命周期成本管理
- 第15课《建设美丽中国》第2框《优化生态安全屏障体系》课件 2023-2024学年 中职高教版(2023)中国特色社会主义
- 2024年四川省凉山州中考适应性考试语文试题(含答案解析)
- 人工智能在中药学领域的应用与药物研发创新研究
- 2023-2024学年七年级数学上册举一反三系列专题4.6 动角问题专项训练(40道)(举一反三)(人教版)含解析
- 2024版新生产安全事故罚款处罚规定解读
评论
0/150
提交评论