版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年医疗AI安全与伦理项目投资计划书
- 2026年OLED发光材料项目投资计划书
- 2026年国产智能小家电项目投资计划书
- 模拟电子技术基础试卷及答案样本
- 2026福建泉州石狮市锦尚镇第二中心幼儿园春季招聘备考题库附答案详解(综合卷)
- 2026湖南常德市柳叶湖旅游度假区开发公益性岗位备考题库含答案详解(b卷)
- 2026福建漳州招商局经济技术开发区海滨学校招聘2人备考题库带答案详解(研优卷)
- 2026河北医科大学第三医院劳务派遣工作人员招聘15人备考题库附答案详解(基础题)
- 2026江西南昌富昌石油燃气有限公司招聘1人备考题库含答案详解(能力提升)
- 2026河南郑州郑东新区文苑学校教育集团(小学部)招聘备考题库带答案详解(黄金题型)
- 2026年安徽马鞍山市高三高考一模数学试卷试题(含答案详解)
- (2025年)一级人力资源管理师考试真题及答案
- 2026湖南衡阳日报社招聘事业单位人员16人备考题库及答案详解(新)
- 摄食训练技术
- 备战高考:高三班级管理与激励策略
- 老年人抑郁症宣教
- 核心高考高频688词汇(高考高频词汇)
- 电影院踩踏应急预案
- GB/T 27914-2023风险管理法律风险管理指南
- GB/T 33195-2016道路交通事故车辆速度鉴定
- 预防老年人跌倒家居环境危险因素评估表
评论
0/150
提交评论