机床数控技术课程设计说明书

上传人:飞*** 文档编号:7472607 上传时间:2017-09-21 格式:DOC 页数:14 大小:654KB
返回 下载 相关 举报
机床数控技术课程设计说明书_第1页
第1页 / 共14页
机床数控技术课程设计说明书_第2页
第2页 / 共14页
机床数控技术课程设计说明书_第3页
第3页 / 共14页
机床数控技术课程设计说明书_第4页
第4页 / 共14页
机床数控技术课程设计说明书_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《机床数控技术课程设计说明书》由会员分享,可在线阅读,更多相关《机床数控技术课程设计说明书(14页珍藏版)》请在金锄头文库上搜索。

1、.机床数控技术课程设计说明书班级:0510103学号:051010301姓名:谢娜指导教师:王宏涛时间:2014 年 1 月地点:明故宫校区计算中心.目录一、课程设计介绍1.1 任务说明 31.2 要求 3二、程序操作及算法流程图2.1 DDA 法插补直线流程32.2 逐点比较法插补逆时针圆弧流程4三、 用户使用说明3.1 程序开始运行时显示介面53.2 执行计算53.3 DDA 法直线插补实例63.4 逐点比较法插补第二三象限逆时针圆弧7四、主要算法及源程序4.1 程序设计概述84.2 主要算法的实现84.2.1 参数声明84.2.2 复位操作94.2.3 单步操作114.2.4 连续插补1

2、14.2.5 辅助操作13五、本设计的特点13六、课程设计的感想13七、主要参考文献14.一、课程设计介绍1.1、任务说明:(1)直线插补:DL1, DDA 法第一象限直线插补。(2)圆弧插补:PA23,逐点比较法二三象限顺圆弧插补。1.2、要求:(1)具有数据输入界面,如:起点,终点,圆心,半径及插补步长。(2)具有插补过程的动态显示功能,如:但单步插补,连续插补,插补步长可调。本课程设计的题目要求是数字积分法插补第一象限直线,逐点比较法插补二三象限顺圆弧。由于本课设要求只为二三象限,故默认为劣弧插补。此外,对于两种插补对象均可根据需要改变插补步长,以表现不同的插补效果。在插补显示过程中,有

3、两种插补显示方式,即手动单步插补和自动连续插补动态显示。 二、程序操作及算法流程图2.1 DDA 法插补直线流程初始化 sx sy ex ey 步长 bc 寄存器 vx1 vy1 累加器 rx1 ry1rx1=rx1+vx1ry1=ry1+vy1ry1 是否溢出rx1 是否溢出是否到达终点结束+x 走一个步长+y 走一个步长NYNYNY开始.DDA 插补第一象限的直线流程图2.2 逐点比较法插补逆时针圆弧流程逐点比较法插补二三象限逆圆弧参数说明:sx、sy 为起点坐标ex、ey 为终点坐标开始初始化 sx ex sy sy bc 弧半径平方 rY21=0r=0 r=0向y 走一步步向 x 走一

4、步向y 走一步向x 走一步是否到达终点结束yyynnn ny.n 为进给总次数cx、cy 为圆心坐标bc 为步长m 为寄存器位数s_1 表示按下直线选项,s_2 表示按下圆弧按钮 三、用户使用说明软件运行说明及结果显示3.1 程序开始运行时显示介面3.2 执行计算在右侧面板中有参数输入区,方式选择区以及执行按钮等操作。若输入参数和符合要求则出现错误对话框;“参数有误”若不选择插补对象为直线或圆弧直接按下复位按钮会出现警示对话框提示“请选择插补对象”.注:在直线插补中,对起始点坐标和终点坐标不作要求,但步长必须不能为 0;在圆弧插补中,起始点坐标必须为二三象限的点,且终止点必须在起始点下侧,这事

5、保证圆弧为劣弧的条件之一。步长在任何情况下不能为 0 。3.3DDA 法直线插补实例单步直线插补:连续直线插补:左移一位:半加载:.全加载:不加载:单步圆弧插补:.连续圆弧插补:四、程序设计及主要算法实现4.1 程序设计概述:首先从编辑文本框中获取输入的数据,包括起点终点坐标,圆心位置,步长,寄存器位数等需要输入的值。然后通过面板选择插补对象,插补方式,执行操作。4.2 主要算法的实现4.2.1 参数声明起点坐标(sx,sy);终点坐标(ex,ey) ;圆心坐标(cx,cy) ;步长 bc; 4.2.2 复位操作程序:function fw_Callback(hObject, eventdat

6、a, handles)global sx sy ex ey cx cy bc m vx1 vy1 rx1 ry1 ;s_1=get (handles.zx,value);s_2=get (handles.yh,value);cx=str2double(get(handles.cx,String);.cy=str2double(get(handles.cy,String);sx=str2double(get(handles.sx,String);sy=str2double(get(handles.sy,String);ex=str2double(get(handles.ex,String);ey

7、=str2double(get(handles.ey,String);bc=str2double(get(handles.bc,String);if s_1=0&s_2=0warndlg(请选择插补对象 );elseif get(handles.zx,value)m=str2double(get(handles.m,String);vx1=ex-sx;vy1=ey-sy;rx1=0;ry1=0;x1=sx ex;y1=sy ey; hold off; 图像清除plot(x1,y1,k);set(gca,XTick,0:1:10);set(gca,YTick,0:1:10);axis(0 10

8、0 10);axis manual;axis on;grid on;hold on; elseif (sx-cx)2+(sy-cy)2)=(ex-cx)2+(ey-cy)2)warndlg(参数有误 ); 参数有误elsey2=sy:(ey-sy)/100:ey;r=(ex-cx)2+(ey-cy)2;x2=cx-(r-(y2-cy).*(y2-cy).0.5;hold off; plot(x2,y2,k);set(gca,XTick,-10:1:10);set(gca,YTick,-10:1:10);axis(-10 10 -10 10);axis manual;axis on;grid;.

9、hold on; endendend4.2.3、单步插补程序:function db_Callback(hObject, eventdata, handles)global s_1;global sx sy ex ey bc vx1 vy1 rx1 ry1 m;s_1=get (handles.zx,value); if s_1=1 绘直线x1=sx,sx;y1=sy,sy; if (sx=2m x1=sx,sx+bc;sx=sx+bc; rx1=rx1+vx1-2m;else x1=sx,sx;rx1=rx1+vx1;endif (ry1+vy1)=2m y1=sy,sy+bc;ry1=ry

10、1+vy1-2m;sy=sy+bc; else y1=sy,sy;ry1=ry1+vy1;endendplot(x1,y1,r);set(gca,XTick,0:1:10);set(gca,YTick,0:1:10);axis(0 10 0 10);axis manual;axis on; hold on ; elseglobal cx cy ;x2=sx sx;y2=sy sy;r=(ex-cx)2+(ey-cy)2;if (sy=ey)|(sx=ex)%判断是否到达终点if sy=0 判断象限.if (sx-cx)2+(sy-cy)2)=r y2=sy sy-bc;sy=sy-bc; %Y

11、方向减一elsex2=sx sx-bc;sx=sx-bc; %X方向减一endplot(x2,y2,r);set(gca,XTick,-10:1:10);set(gca,YTick,-10:1:10);axis(-10 10 -10 10);axis manual;axis on; hold on ;elseif (sx-cx)2+(sy-cy)2)=rx2=sx sx+bc;sx=sx+bc;elsey2=sy sy-bc;sy=sy-bc;endplot(x2,y2,r);set(gca,XTick,-10:1:10);set(gca,YTick,-10:1:10);axis(-10 10

12、 -10 10);axis manual;axis on; hold on ;endend end4.2.4:连续插补程序:function lx_Callback(hObject, eventdata, handles)global sx sy ex ey bc vx1 vy1 rx1 ry1 m cx cy;s_1=get (handles.zx,value);sx=str2double(get(handles.sx,String);sy=str2double(get(handles.sy,String);ex=str2double(get(handles.ex,String);ey=st

13、r2double(get(handles.ey,String);bc=str2double(get(handles.bc,String);.m=str2double(get(handles.m,String);if s_1=1x1=sx,sx;y1=sy,sy;while(sx=2mx1=sx,sx+bc;sx=sx+bc;rx1=rx1+vx1-2m;else x1=sx,sx;rx1=rx1+vx1;endif (ry1+vy1)=2my1=sy,sy+bc;ry1=ry1+vy1-2m;sy=sy+bc;else y1=sy,sy;ry1=ry1+vy1;endplot(x1,y1,r)

14、;set(gca,XTick,0:1:10);set(gca,YTick,0:1:10);axis(0 10 0 10);axis manual;axis on; hold on ;pause(0.05); 每步停顿0.05send elser=(ex-cx)2+(ey-cy)2;while (syey)|(sx0if (sx-cx)2+(sy-cy)2)=ry2=sy sy-bc;sy=sy-bc;elsex2=sx sx-bc;sx=sx-bc;end.elseif (sx-cx)2+(sy-cy)2)=rx2=sx sx+bc;sx=sx+bc;elsey2=sy sy-bc;sy=sy-bc;endend plot(x2,y2,r);set(gca,XTick,-10:1:10);set(gca,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号