logo资料库

机床数控技术课程设计.doc

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
机床数控技术课程设计 说明书 学 校:南京航空航天大学 专 业:机械工程及自动化 学 号: 姓 名: 设计题目:PL1 DC21 指导老师: 时 间:
一.课设任务: 1.PL1-----逐点比较法插补第 1 象限直线; 2.DC21---DDA 法插补第 2~1 象限顺圆弧。 二.课设要求: 1.具有数据输入界面,如输入直线插补的起点、终点,圆弧插补的起止点、圆 心或半径、插补的步长等; 2.具有插补过程的动态显示功能,如单步插补、连续插补等; 3.插补的步长可调; 4.直线的起点、圆弧的圆心在坐标系中的位置可变(即直线的起点、圆弧的圆 心可不设定在坐标原点) 5.建议使用 C 语言编程,有条件者可使用 VB、VC 等语言编程。 三.程序界面及运行截图 1.直线连续插补:
2.直线单步插补: 3.圆弧连续插补:
4.圆弧单步插补:
四、程序流程图 1.PL1:逐点比较法插补第 1 象限直线 逐点比较法插补直线的过程为每进给一步需完成偏差判别,坐标进给,偏差 计算, 终点判别四个步骤,具体流程如图 1 所示。 开始 初始化,输入起点 x01 、 y01 , 终 点 x02、y02,步长 k E=(abs(x01-x02)+abs(y01-y02))/k F=0 (判别函数) (总步数) N 结束 E>0 Y F>=0 Y N 向正 Y 方向前进一步 F=F+(x02-x01) 向正 X 方向前进一步 F=F-(y02-y01) E=E-1
2、DDA 法圆弧插补 开始 初始化,输入起点坐标(xr03,y03), 终点坐标(x04,y04) 半径 R 步长 b 和寄存器位数 j N 二一象限顺圆? Y 计算圆心坐标(xx,yy) xj=x03,yj=y03 jvx=0;jvy=0 m=2^j xm=fix((xx-x03)/b); ym=fix((yy+R-y03)/b) N xm>0? Y jvx=jvx+yj-yy ym>0? Y jvy=jvy+xx-xj jvx溢出? >0? jvy溢出? >0? xm>0||ym>0? N +X 前进一 Y 步 +Y 前进一步 ym=ym-1 Y
N xn=fix((x04-xx)/b); yn=fix((yy+R-y04)/b); N xn>0? Y jvx=jvx+yj-yy yn>0? Y jvy=jvy+xj-xx jvx溢出? >0? jvy溢出? >0? xn>0||yn>0? N 结束 +X 前进一 Y 步 -Y 前进一步 yn=yn-1 Y
五.程序及变量说明(Matlab) function varargout = cxy_050910610(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @cxy_050910610_OpeningFcn, ... 'gui_OutputFcn', @cxy_050910610_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', if nargin && ischar(varargin{1}) []); gui_State.gui_Callback = str2func(varargin{1}); if nargout end else end [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); gui_mainfcn(gui_State, varargin{:}); eventdata, handles, cxy_050910610_OpeningFcn(hObject, function varargin) global u u=0; global fla; fla=0; handles.output = hObject; guidata(hObject, handles); function varargout = cxy_050910610_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function x1_Callback(hObject, eventdata, handles) global x01; x01=str2double(get(handles.x1,'string')); function x1_CreateFcn(hObject, eventdata, handles) if get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); ispc && isequal(get(hObject,'BackgroundColor'),
分享到:
收藏