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

上传人:b****2 文档编号:1644356 上传时间:2022-10-23 格式:DOCX 页数:32 大小:681.06KB
下载 相关 举报
机床数控技术课程设计说明书.docx_第1页
第1页 / 共32页
机床数控技术课程设计说明书.docx_第2页
第2页 / 共32页
机床数控技术课程设计说明书.docx_第3页
第3页 / 共32页
机床数控技术课程设计说明书.docx_第4页
第4页 / 共32页
机床数控技术课程设计说明书.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

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

《机床数控技术课程设计说明书.docx》由会员分享,可在线阅读,更多相关《机床数控技术课程设计说明书.docx(32页珍藏版)》请在冰豆网上搜索。

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

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

指导老师:

姓名:

班级:

学号:

2014/01/10

目录

一课设任务 1

二课设要求 1

三编程语言 1

四变量说明及程序界面 1

(一)DDA第四象限直线插补变量说明 1

(二)逐点比较法第1~2象限逆圆弧插补变量说明 2

(三)DDA第四象限直线插补程序界面 3

(1)普通DDA……………………………………………………………………………...3

(2)全加载…………………………………………………………………………………3

(3)半加载………………………………………………………………………………...4

(四)逐点比较法第1~2象限逆圆弧插补程序界面 4

五详细程序设计流程图………………………………………………………..5

(一)DDA第四象限直线插补流程图………………………………………………….5

(二)逐点比较法第1~2象限逆圆弧插补流程图………………………….6

六源程序 6

七参考资料 32

一课设任务

(1)DDA法插补第四象限直线;

(2)逐点比较法插补第1~2象限顺圆弧。

二课设要求

(1)具有数据输入界面,如起点、终点、圆心、半径及插补步长等;

(2)具有插补过程的动态显示功能,如单步插补、连续插补;

(3)插补的步长可调;

三编程语言:

MATLAB

四变量说明及程序界面

(一)DDA第四象限直线插补

变量名称

说明

变量名称

说明

X1

直线起点横坐标

Jvx

X被积函数寄存器

Y1

直线起点纵坐标

Jrx1

X普通DDA积分累加器

X2

直线终点横坐标

Jrx2

X全加载积分累加器

Y2

直线终点纵坐标

Jrx3

X半加载积分累加器

x

绘图动点横坐标

Jvy

Y被积函数寄存器

y

绘图动点纵坐标

Jry1

Y普通DDA积分累加器

L

插补步长

Jry2

Y全加载积分累加器

N

寄存器位数

Jry3

Y半加载积分累加器

Mx

X终点判别计数器

X

插补动点横坐标

My

Y终点判别计数器

Y

插补动点纵坐标

(二)逐点比较法第2~1象限顺圆弧插补

变量名称

说明

变量名称

说明

X1

圆弧起点横坐标

E

终点判别计数器

Y1

圆弧起点纵坐标

F

偏差判别

x

绘图动点横坐标

X

插补动点横坐标

y

绘图动点纵坐标

Y

插补动点纵坐标

r

圆弧半径

Mx

X插补步数

X2

圆弧终点横坐标

My

Y插补步数

Y2

圆弧终点纵坐标

L

插补步长

A

圆心到弦中点的距离

a1

圆弧起点角坐标

x0

圆心横坐标

a2

圆弧终点角坐标

y0

圆心纵坐标

a

绘图动点角坐标

程序界面:

(三)DDA第四象限直线插补

(1)普通DDA

(2)全加载

(3)半加载

(四)逐点比较第1~2象限逆圆弧插补

五详细程序设计流程图

(一)DDA第四象限直线插补

(二)逐点比较法第1~2象限逆圆弧插补

六源程序

functionvarargout=f2(varargin)

%F2MATLABcodeforf2.fig

%F2,byitself,createsanewF2orraisestheexisting

%singleton*.

%

%H=F2returnsthehandletoanewF2orthehandleto

%theexistingsingleton*.

%

%F2('CALLBACK',hObject,eventData,handles,...)callsthelocal

%functionnamedCALLBACKinF2.Mwiththegiveninputarguments.

%

%F2('Property','Value',...)createsanewF2orraisesthe

%existingsingleton*.Startingfromtheleft,propertyvaluepairsare

%appliedtotheGUIbeforef2_OpeningFcngetscalled.An

%unrecognizedpropertynameorinvalidvaluemakespropertyapplication

%stop.Allinputsarepassedtof2_OpeningFcnviavarargin.

%

%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone

%instancetorun(singleton)".

%

%Seealso:

GUIDE,GUIDATA,GUIHANDLES

%Edittheabovetexttomodifytheresponsetohelpf2

%LastModifiedbyGUIDEv2.509-Jan-201410:

52:

17

%Begininitializationcode-DONOTEDIT

gui_Singleton=1;

gui_State=struct('gui_Name',mfilename,...

'gui_Singleton',gui_Singleton,...

'gui_OpeningFcn',@f2_OpeningFcn,...

'gui_OutputFcn',@f2_OutputFcn,...

'gui_LayoutFcn',[],...

'gui_Callback',[]);

ifnargin&&ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

end

ifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

});

end

%Endinitializationcode-DONOTEDIT

%---Executesjustbeforef2ismadevisible.

functionf2_OpeningFcn(hObject,eventdata,handles,varargin)

%Thisfunctionhasnooutputargs,seeOutputFcn.

%hObjecthandletofigure

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%varargincommandlineargumentstof2(seeVARARGIN)

%Choosedefaultcommandlineoutputforf2

handles.output=hObject;

%Updatehandlesstructure

guidata(hObject,handles);

%UIWAITmakesf2waitforuserresponse(seeUIRESUME)

%uiwait(handles.figure1);

%---Outputsfromthisfunctionarereturnedtothecommandline.

functionvarargout=f2_OutputFcn(hObject,eventdata,handles)

%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);

%hObjecthandletofigure

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%Getdefaultcommandlineoutputfromhandlesstructure

varargout{1}=handles.output;

%---Executesonbuttonpressinpushbutton1.

functionpushbutton1_Callback(hObject,eventdata,handles)%绘制直线

globalx1y1x2y2LNxyMxMyJvxJrx1Jrx2Jrx3JvyJry1Jry2Jry3XY;

x1=str2double(get(handles.edit1,'string'));

y1=str2double(get(handles.edit2,'string'));

x2=str2double(get(handles.edit3,'string'));

y2=str2double(get(handles.edit4,'string'));

L=str2double(get(handles.edit7,'string'));

N=str2double(get(handles.edit6,'string'));

ifx1<=0|y1>=0|x2<=0|y2>=0

set(handles.text11,'string','直线不在第四象限!

');%判断直线是否在第四象限

else

ifx1==x2

y=y1:

(y2-y1)/100:

y2;

x=y.*0+x1;

plot(x,y,'k');

holdon;

else

x=x1:

(x2-x1)/100:

x2;

plot(x,y,'k');

holdon;

end

xmin=min(x);

xmax=max(x);

ymin=min(y);

ymax=max(y);

axisequal;

axis([xmin-Lxmax+Lymi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1