《C语言模拟直线插补与圆弧插补程序设计》由会员分享,可在线阅读,更多相关《C语言模拟直线插补与圆弧插补程序设计(17页珍藏版)》请在金锄头文库上搜索。
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 stdio.hint
2、 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 5:te();shuch
3、u();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=Y0) t=2; else if (Xe=X0&Ye=X0&YeY0&Y0=0)|(YeY0&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=0) X+;
4、 ai0=X; ai1=Y; F-=Ye-Y0; else 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=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=0) X-; ai0=X; ai1=Y; F-=Y0-Ye; else Y-; ai0=X; ai1=Y; F+=X0-Xe; void si()
5、 F=0; N=Xe-X0+Y0-Ye; X=X0; Y=Y0; for(i=1;i=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;i0) Y+; ai0=X; ai1=Y; else if(Ye0) Y-; ai0=X; ai1=Y; void shuchu() for(i=0;i=0&Y10&s=1) t=1; else if (X10&Y1=0&s=2) t=2; else if (X1=0&s=1) t=3; else if (X1=0&Y10&s=2)
6、 t=4; else if (X1=0&Y10&s=1) t=5; else if (X10&Y10&Y1=0&Y1=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(%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+;