机床数控技术课程设计说明书.doc_第1页
机床数控技术课程设计说明书.doc_第2页
机床数控技术课程设计说明书.doc_第3页
机床数控技术课程设计说明书.doc_第4页
机床数控技术课程设计说明书.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

机床数控技术课程设计说明书姓 名:xxx 学 号:050310605 指导老师:xxxxxxxxxxxxxxxxxxx大学机电学院 2007.1 目录一、 课程设计介绍-1-1.1 任务说明.-1-1.2 要求.-1-二、 程序操作及算法流程图. -2-2.1 程序操作流程.-2-2.2 逐点比较法插补直线流程.-3-2.3 dda法插补直线流程.-4-2.4 逐点比较法插补圆弧流程.-5-三、 用户使用说明.-6-四、课程设计过程中的想法和遇到的困难.-12-五、本设计的优缺点.-13-六、主要算法及源程序.-13-6.1 基本画两点间直线的函数.-13-6.2 绘制坐标.-13-6.3 dda法插补直线.-15-6.4逐点比较法插补直线.-17-6.5逐点比较法插补圆弧.-22-6.5.1插补圆弧主程序.-22-6.5.2插补第一象限圆弧.-28-6.5.3插补第二象限圆弧.-30-6.5.4插补第三象限圆弧.-31-6.5.5插补第四象限圆弧.-32-七、主要参考文献.-34-一、课程设计介绍1.1、任务说明:(1)直线插补:dl3, dda法第三象限直线插补。(2)圆弧插补:pc41,逐点比较法四一象限逆圆弧插补。1.2、要求:(1)具有数据输入界面,如:起点,终点,圆心,半径及插补步长。(2)具有插补过程的动态显示功能,如:但单步插补,连续插补。本课程设计的题目要求是法插补第三象限直线,逐点比较法插补四一象限逆圆弧,根据题目的要求,我做到:全平面用逐点比较法插补直线和全平面用dda法插补直线,全平面插补逆圆弧,其中圆弧是优弧还是劣弧,通过输入半径的正负性来决定,根据需要可以改变插补步长,可以动态显示插补过程等。 二、程序操作及算法流程图2.1 程序操作流程启动程序输入菜单直线参数圆弧参数输入起始点、终止点及插补步长dda法插补逐点比较法插补显示插补直线直线参数对话框圆弧参数对话框输入起始点、终止点、半径及插补步长显示插补圆弧图2.1 程序操作流程图2.2 逐点比较法插补直线流程右上方起始e=xe+yee0直线走向yn左上方斜率1yf0ynny+y走一步f (y-sy)/(x-sx) -(ey-sy)/(ex-sx)左下方斜率1f0-y走一步-x走一步ynf0yynnf (ey-sy)/(ex-sx) -(y-sy)/(x-sx)右下方斜率selectobject(&sipen);pdc-moveto(int(hi*x1),int(hi*y1);pdc-lineto(int(hi*x2),int(hi*y2);pdc-selectobject(poldpen);sipen.deleteobject();6.2 绘制坐标/*绘制坐标*/void cshukongview:zuobiao(cdc* pdc)int x1,y1,x2,y2;int j;char buf20;cstring sc;x1=0;y1=0;x2=-330;y2=0;wsprintf(buf,%d,x1);pdc-textout(-28,-10,buf,strlen(buf);line(pdc,-350,0,350,0,5,rgb(0,0,0);for(j=0;jtextout(int(hi*340),-20,x);for(j=0;jtextout(int(hi*(x1-6),-int(hi*5),buf,strlen(buf);for(j=-10;jtextout(int(hi*(x2-8),-int(hi*5),buf,strlen(buf);line(pdc,0,-350,0,350,5,rgb(0,0,0);for(j=0;jtextout(25,int(hi*350),y);for(j=0;jtextout(-int(hi*24),int(hi*(y1+6),buf,strlen(buf);for(j=-10;jtextout(-int(hi*27),int(hi*(y2+6),buf,strlen(buf);6.3 dda法插补直线/*dda法插补直线*/void cshukongview:dda_line(cdc* pdc)double xe,ye;int n,i;int jrx=0,jry=0,jvx,jvy;double sx,sy,ex,ey;if(lst=0)messagebox(步长不能为零,请从新输入步长!);elseline(pdc,lsx,lsy,lex,ley,4,rgb(255,0,0);xe=fabs(lex-lsx)/lst;ye=fabs(ley-lsy)/lst;for(n=2;(n=xe)|(n=ye);)n=n*2;jvx=int(xe);jvy=int(ye);sx=lsx;sy=lsy;ex=lex;ey=ley;if(lsx=lsy)for(i=0;i=n;i+)jrx=jrx+jvx;jry=jry+jvy;ex=(jrx/n)*lst+sx;ey=(jry/n)*lst+sy;line(pdc,sx,sy,ex,ey,4,rgb(0,128,0);sx=ex;sy=ey;jrx=jrx%n;jry=jry%n;else if(lsx=lex)&(leylsy)for(i=0;ilex)&(ley=lsy)for(i=0;ilex)&(leylsy)for(i=0;i0) /*右上方*/if(lsx=lex)&(lsy(lex-lsx)if(fl=0)ex=ex;ey=ey+lst;elseex=ex+lst;ey=ey;elseif(fllex)&(lsy=ley)if(ley-lsy)/(lex-lsx)-1)if(fl=0)ex=ex;ey=ey+lst;elseex=ex-lst;ey=ey;elseif(fl=lex)&(lsyley)if(ley-lsy)(lex-lsx)if(fl0)ex=ex-lst;ey=ey;elseex=ex;ey=ey-lst;elseif(fl=0)ex=ex-lst;ey=ey;elseex=ex;ey=ey-lst;if(ex=lsx)if(lsx=lex)fl=0;elsefl=-1;elsefl=(ley-lsy)/(lex-lsx)-(ey-lsy)/(ex-lsx); /*右下方*/if(lsx=ley)if(ley-lsy)/(lex-lsx)-1)if(fl0)ex=ex+lst;ey=ey;elseex=ex;ey=ey-lst;elseif(flfabs(arad*2)messagebox(输入圆弧参数有误,请从新输入!);elsemidx=(asx+aex)/2;midy=(asy+aey)/2;cx=midx;cy=midy;if(asx!=aex&aey!=asy)k0=(aey-asy)/(aex-asx);k=-1/k0;if(ast=0)messagebox(步长不能为零,请从新输入步长!);elsefab=fabs(cx-asx)*(cx-asx)+(cy-asy)*(cy-asy)-(arad*arad);while(fab=0.05)if(asx=aex&asy=aey)cx=cx+arad;cy=cy;else if(asx=aex)if(asy0)cx=cx-sqrt(arad*arad-(aey-asy)*(aey-asy)/4.0);cy=cy;elsecx=cx+sqrt(arad*arad-(aey-asy)*(aey-asy)/4.0);cy=cy;elseif(arad0)cx=cx+sqrt(arad*arad-(aey-asy)*(aey-asy)/4.0);cy=cy;elsecx=cx-sqrt(arad*arad-(aey-asy)*(aey-asy)/4.0);cy=cy;else if(aey=asy)if(asx0)cx=cx;cy=cy+sqrt(arad*arad-(aex-asx)*(aex-asx)/4.0);elsecx=cx;cy=cy-sqrt(arad*arad-(aex-asx)*(aex-asx)/4.0);elseif(arad0)cx=cx;cy=cy-sqrt(arad*arad-(asx-aex)*(asx-aex)/4.0);elsecx=cx;cy=cy+sqrt(arad*arad-(asx-aex)*(asx-aex)/4.0);else if(aeyasy)if(k=1)&(arad*arad*2=(aex-asx)*(aex-asx)+(aey-asy)*(aey-asy)if(arad0)cx=aex;cy=asy;elsecx=asx;cy=aey;else if(k=-1)&(arad*arad*2=(aex-asx)*(aex-asx)+(aey-asy)*(aey-asy)if(arad0)cx=asx;cy=aey;elsecx=aex;cy=asy;elseif(arad0)cx=cx-0.0001;cy=k*(cx-midx)+midy;elsecx=cx+0.0001;cy=k*(cx-midx)+midy;else if(aey0)cx=aex;cy=asy;elsecx=asx;cy=aey;else if(k=-1)&(arad*arad*2=(aex-asx)*(aex-asx)+(aey-asy)*(aey-asy)if(arad0)cx=asx;cy=aey;elsecx=aex;cy=asy;elseif(arad0)cx=cx+0.0001;cy=k*(cx-midx)+midy;elsecx=cx-0.0001;cy=k*(cx-midx)+midy;fab=fabs(cx-asx)*(cx-asx)+(cy-asy)*(cy-asy)-(arad*arad);if(asx=aex&asy=aey&arad0)k0=0;elsex=asx;y=asy;x3=asx; y3=asy;color1=255;color2=0;color3=0;l=1/hi;i=1;while(i=0)if(asxcx&asy=cy)com_arc0_1(pdc);if(w=1)com_arc0_2(pdc);if(w=1)com_arc0_3(pdc);if(w=1)com_arc0_4(pdc);if(w=1)com_arc0_1(pdc);else if(asxcy)com_arc0_2(pdc);if(w=1)com_arc0_3(pdc);if(w=1)com_arc0_4(pdc);if(w=1)com_arc0_1(pdc);if(w=1)com_arc0_2(pdc);else if(asxcx&asy=cx&asy=cx&aeycy&aeyy3)e1=fabs(aex-x3)+fabs(aey-y3);e11=int(e1/l);w=0;elsee1=fabs(cx-x3)+fabs(arad)-fabs(cy-y3);e11=int(e1/l);w=1;f=(x-cx)*(x-cx)+(y-cy)*(y-cy)-arad*arad;while(e110)if(f=0)x=x-l;line(pdc,x3,y3,x,y,5,rgb(color1,color2,color3);else if(f0)y=y+l;line(pdc,x3,y3,x,y,5,rgb(color1,color2,color3);x3=x;y3=y;f=(x-cx)*(x-cx)+(y-cy)*(y-cy)-arad*arad;e11=e11-1;if(w=0)x=aex;y=aey;line(pdc,x3,y3,x,y,5,rgb(color1,color2,color3);x3=x;y3=y;else if(w=1)x=cx;y=cy+fabs(arad);line(pdc,x3,y3,x,y,5,rgb(color1,color2,color3);x3=x;y3=y;6.5.3 插补第二象限圆弧/*插补第二象限圆弧*/void cshukongview:com_arc0_2(cdc* pdc)double e2;int e22;if(aex=cy&aex0)if(f=0)y=y-l;line(pdc,x3,y3,x,y,5,rgb(color1,color2,color3);else if(f0)x=x-l;line(pdc,x3,y3,x,y,5,rgb(color1,color2,color3);x3=x;y3=y;f=(x-cx)*(x-cx)+(y-cy)*(y-cy)-arad*arad;e22=e22-1;if(w=0)x=aex;y=aey;line(pdc,x3,y3,x,y,5,rgb(color1,color2,color3);x3=x;y3=y;else if(w=1)x=cx-fabs(arad);y=cy;line(pdc,x3,y3,x,y,5,rgb(color1,color2,color3);x3=x;y3=y;6.5.4 插补第三象限圆弧/*插补第三象限圆弧*/void cshukongview:com_arc0_3(cdc* pdc)double e3;int e33;if(aex=cx&aeycy&aey0)if(f=0)x=x+l;line(pdc,x3,y3,x,y,5,rgb(color1,color2,color3);else if(fcx&aeyx3)e4=fabs(aex-x3)+fabs(aey-y3

温馨提示

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

评论

0/150

提交评论