还剩30页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
机床数控技术课程设计说明书指导老师姓名班级学号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第四象限直线插补
(二)逐点比较法第2~1象限顺圆弧插补程序界面
(三)DDA第四象限直线插补
(1)普通DDA
(2)全加载半加载
(四)逐点比较第1~2象限逆圆弧插补五详细程序设计流程图DDA第四象限直线插补逐点比较法第1~2象限逆圆弧插补六源程序functionvarargout=f2varargin%F2MATLABcodeforf
2.fig%F2byitselfcreatesanewF2orraisestheexisting%singleton*.%%H=F2returnsthehandletoanewF2orthehandleto%theexistingsingleton*.%%F2CALLBACKhObjecteventDatahandles...callsthelocal%functionnamedCALLBACKinF
2.Mwiththegiveninputarguments.%%F2PropertyValue...createsanewF2orraisesthe%existingsingleton*.Startingfromtheleftpropertyvaluepairsare%appliedtotheGUIbeforef2_OpeningFcngetscalled.An%unrecognizedpropertynameorinvalidvaluemakespropertyapplication%stop.Allinputsarepassedtof2_OpeningFcnviavarargin.%%*SeeGUIOptionsonGUIDEsToolsmenu.ChooseGUIallowsonlyone%instancetorunsingleton.%%Seealso:GUIDEGUIDATAGUIHANDLES%Edittheabovetexttomodifytheresponsetohelpf2%LastModifiedbyGUIDEv
2.509-Jan-201410:52:17%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=structgui_Namemfilename...gui_Singletongui_Singleton...gui_OpeningFcn@f2_OpeningFcn...gui_OutputFcn@f2_OutputFcn...gui_LayoutFcn[]...gui_Callback[];ifnarginischarvarargin{1}gui_State.gui_Callback=str2funcvarargin{1};endifnargout[varargout{1:nargout}]=gui_mainfcngui_Statevarargin{:};elsegui_mainfcngui_Statevarargin{:};end%Endinitializationcode-DONOTEDIT%---Executesjustbeforef2ismadevisible.functionf2_OpeningFcnhObjecteventdatahandlesvarargin%ThisfunctionhasnooutputargsseeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATA%varargincommandlineargumentstof2seeVARARGIN%Choosedefaultcommandlineoutputforf2handles.output=hObject;%UpdatehandlesstructureguidatahObjecthandles;%UIWAITmakesf2waitforuserresponseseeUIRESUME%uiwaithandles.figure1;%---Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=f2_OutputFcnhObjecteventdatahandles%varargoutcellarrayforreturningoutputargsseeVARARGOUT;%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATA%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;%---Executesonbuttonpressinpushbutton
1.functionpushbutton1_CallbackhObjecteventdatahandles%绘制直线globalx1y1x2y2LNxyMxMyJvxJrx1Jrx2Jrx3JvyJry1Jry2Jry3XY;x1=str2doublegethandles.edit1string;y1=str2doublegethandles.edit2string;x2=str2doublegethandles.edit3string;y2=str2doublegethandles.edit4string;L=str2doublegethandles.edit7string;N=str2doublegethandles.edit6string;ifx1=0|y1=0|x2=0|y2=0sethandles.text11string直线不在第四象限!;%判断直线是否在第四象限elseifx1==x2y=y1:y2-y1/100:y2;x=y.*0+x1;plotxyk;holdon;elsex=x1:x2-x1/100:x2;plotxyk;holdon;endxmin=minx;xmax=maxx;ymin=miny;ymax=maxy;axisequal;axis[xmin-Lxmax+Lymin-Lymax+L];%定义坐标轴的边界sethandles.text11string绘图完成;Mx=ceilabsx2-x1/L;%计算插补步数My=ceilabsy2-y1/L;Jvx=absx2-x1;%给寄存器赋值Jrx2=2^N-1;Jrx3=2^N-1;Jvy=absy2-y1;Jry1=0;Jry2=2^N-1;Jry3=2^N-1;X=x1;Y=y1;end%hObjecthandletopushbutton1seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATAfunctionedit1_CallbackhObjecteventdatahandles%hObjecthandletoedit1seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATA%Hints:gethObjectStringreturnscontentsofedit1astext%str2doublegethObjectStringreturnscontentsofedit1asadouble%---Executesduringobjectcreationaftersettingallproperties.functionedit1_CreateFcnhObjecteventdatahandles%hObjecthandletoedit1seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispcisequalgethObjectBackgroundColorget0defaultUicontrolBackgroundColorsethObjectBackgroundColorwhite;endfunctionedit2_CallbackhObjecteventdatahandles%hObjecthandletoedit2seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATA%Hints:gethObjectStringreturnscontentsofedit2astext%str2doublegethObjectStringreturnscontentsofedit2asadouble%---Executesduringobjectcreationaftersettingallproperties.functionedit2_CreateFcnhObjecteventdatahandles%hObjecthandletoedit2seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispcisequalgethObjectBackgroundColorget0defaultUicontrolBackgroundColorsethObjectBackgroundColorwhite;endfunctionedit3_CallbackhObjecteventdatahandles%hObjecthandletoedit3seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATA%Hints:gethObjectStringreturnscontentsofedit3astext%str2doublegethObjectStringreturnscontentsofedit3asadouble%---Executesduringobjectcreationaftersettingallproperties.functionedit3_CreateFcnhObjecteventdatahandles%hObjecthandletoedit3seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispcisequalgethObjectBackgroundColorget0defaultUicontrolBackgroundColorsethObjectBackgroundColorwhite;endfunctionedit4_CallbackhObjecteventdatahandles%hObjecthandletoedit4seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATA%Hints:gethObjectStringreturnscontentsofedit4astext%str2doublegethObjectStringreturnscontentsofedit4asadouble%---Executesduringobjectcreationaftersettingallproperties.functionedit4_CreateFcnhObjecteventdatahandles%hObjecthandletoedit4seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispcisequalgethObjectBackgroundColorget0defaultUicontrolBackgroundColorsethObjectBackgroundColorwhite;endfunctionedit5_CallbackhObjecteventdatahandles%hObjecthandletoedit5seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATA%Hints:gethObjectStringreturnscontentsofedit5astext%str2doublegethObjectStringreturnscontentsofedit5asadouble%---Executesduringobjectcreationaftersettingallproperties.functionedit5_CreateFcnhObjecteventdatahandles%hObjecthandletoedit5seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispcisequalgethObjectBackgroundColorget0defaultUicontrolBackgroundColorsethObjectBackgroundColorwhite;endfunctionedit6_CallbackhObjecteventdatahandles%hObjecthandletoedit6seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATA%Hints:gethObjectStringreturnscontentsofedit6astext%str2doublegethObjectStringreturnscontentsofedit6asadouble%---Executesduringobjectcreationaftersettingallproperties.functionedit6_CreateFcnhObjecteventdatahandles%hObjecthandletoedit6seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispcisequalgethObjectBackgroundColorget0defaultUicontrolBackgroundColorsethObjectBackgroundColorwhite;endfunctionedit7_CallbackhObjecteventdatahandles%hObjecthandletoedit7seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATA%Hints:gethObjectStringreturnscontentsofedit7astext%str2doublegethObjectStringreturnscontentsofedit7asadouble%---Executesduringobjectcreationaftersettingallproperties.functionedit7_CreateFcnhObjecteventdatahandles%hObjecthandletoedit7seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispcisequalgethObjectBackgroundColorget0defaultUicontrolBackgroundColorsethObjectBackgroundColorwhite;end%---Executesonbuttonpressinpushbutton
2.functionpushbutton2_CallbackhObjecteventdatahandles%直线单步插补%hObjecthandletopushbutton2seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATAglobalx1y1x2y2LNxyMxMyJvxJrx1Jrx2Jrx3JvyJry1Jry2Jry3XY;ifgethandles.radiobutton1Value==
0...gethandles.radiobutton2Value==
0...gethandles.radiobutton3Value==0sethandles.text11string请选择插补方式;elseifMx=0My=0sethandles.text11string插补结束;elseJrx1=Jvx+Jrx1;Jry1=Jvy+Jry1;Jrx2=Jvx+Jrx2;Jry2=Jvy+Jry2;Jrx3=Jvx+Jrx3;Jry3=Jvy+Jry3;ifgethandles.radiobutton1Value==1%普通DDAifx1=x2y1=y2%转化后直线在第一象限ifJrx1=2^NJrx1=Jrx1-2^N;X=X+L;x=linspaceX-LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry1=2^NJry1=Jry1-2^N;y=linspaceY-LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;elseifx1x2y1=y2%转化后直线在第二象限ifJrx1=2^NJrx1=Jrx1-2^N;X=X-L;x=linspaceX+LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry1=2^NJry1=Jry1-2^N;Y=Y+L;y=linspaceY-LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;elseifx1x2y1y2%转化后直线在第三象限ifJrx1=2^NJrx1=Jrx1-2^N;X=X-L;x=linspaceX+LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry1=2^NJry1=Jry1-2^N;Y=Y-L;y=linspaceY+LY100;My=My-1;y=zeros1100+Y;endplotxyr;holdon;else%转化后直线在第四象限ifJrx1=2^NJrx1=Jrx1-2^N;X=X+L;x=linspaceX-LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry1=2^NJry1=Jry1-2^N;Y=Y-L;y=linspaceY+LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;endelseifgethandles.radiobutton2Value==1%全加载ifx1=x2y1=y2ifJrx2=2^NJrx2=Jrx2-2^N;X=X+L;x=linspaceX-LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry2=2^NJry2=Jry2-2^N;Y=Y+L;y=linspaceY-LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;elseifx1x2y1=y2ifJrx2=2^NJrx2=Jrx2-2^N;X=X-L;x=linspaceX+LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry2=2^NJry2=Jry2-2^N;Y=Y+L;y=linspaceY-LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;elseifx1x2y1y2ifJrx2=2^NJrx2=Jrx2-2^N;X=X-L;x=linspaceX+LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry2=2^NJry2=Jry2-2^N;Y=Y-L;y=linspaceY+LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;elseifJrx2=2^NJrx2=Jrx2-2^N;X=X+L;x=linspaceX-LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry2=2^NJry2=Jry2-2^N;Y=Y-L;y=linspaceY+LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;endelse%半加载ifx1=x2y1=y2ifJrx3=2^NJrx3=Jrx3-2^N;X=X+L;x=linspaceX-LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry3=2^NJry3=Jry3-2^N;Y=Y+L;y=linspaceY-LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;elseifx1x2y1=y2ifJrx3=2^NJrx3=Jrx3-2^N;X=X-L;x=linspaceX+LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry3=2^NJry3=Jry3-2^N;Y=Y+L;y=linspaceY-LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;elseifx1x2y1y2ifJrx3=2^NJrx3=Jrx3-2^N;X=X-L;x=linspaceX+LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry3=2^NJry3=Jry3-2^N;Y=Y-L;y=linspaceY+LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;elseifJrx3=2^NJrx3=Jrx3-2^N;X=X+L;x=linspaceX-LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry3=2^NJry3=Jry3-2^N;Y=Y-L;y=linspaceY+LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;endendendend%---Executesonbuttonpressinpushbutton
3.functionpushbutton3_CallbackhObjecteventdatahandles%直线连续插补%hObjecthandletopushbutton3seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATAglobalx1y1x2y2LNxyMxMyJvxJrx1Jrx2Jrx3JvyJry1Jry2Jry3XY;ifgethandles.radiobutton1Value==
0...gethandles.radiobutton2Value==
0...gethandles.radiobutton3Value==0sethandles.text11string请选择插补方式;elsewhileMx0|My0Jrx1=Jvx+Jrx1;Jry1=Jvy+Jry1;Jrx2=Jvx+Jrx2;Jry2=Jvy+Jry2;Jrx3=Jvx+Jrx3;Jry3=Jvy+Jry3;ifgethandles.radiobutton1Value==1ifx1=x2y1=y2ifJrx1=2^NJrx1=Jrx1-2^N;X=X+L;x=linspaceX-LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry1=2^NJry1=Jry1-2^N;Y=Y+L;y=linspaceY-LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;pause
0.1;elseifx1x2y1=y2ifJrx1=2^NJrx1=Jrx1-2^N;X=X-L;x=linspaceX+LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry1=2^NJry1=Jry1-2^N;Y=Y+L;y=linspaceY-LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;pause
0.1;elseifx1x2y1y2ifJrx1=2^NJrx1=Jrx1-2^N;X=X-L;x=linspaceX+LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry1=2^NJry1=Jry1-2^N;Y=Y-L;y=linspaceY+LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;pause
0.1;elseifJrx1=2^NJrx1=Jrx1-2^N;X=X+L;x=linspaceX-LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry1=2^NJry1=Jry1-2^N;Y=Y-L;y=linspaceY+LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;pause
0.1;endelseifgethandles.radiobutton2Value==1ifx1=x2y1=y2ifJrx2=2^NJrx2=Jrx2-2^N;X=X+L;x=linspaceX-LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry2=2^NJry2=Jry2-2^N;Y=Y+L;y=linspaceY-LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;pause
0.1;elseifx1x2y1=y2ifJrx2=2^NJrx2=Jrx2-2^N;X=X-L;x=linspaceX+LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry2=2^NJry2=Jry2-2^N;Y=Y+L;y=linspaceY-LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;pause
0.1;elseifx1x2y1y2ifJrx2=2^NJrx2=Jrx2-2^N;X=X-L;x=linspaceX+LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry2=2^NJry2=Jry2-2^N;Y=Y-L;y=linspaceY+LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;pause
0.1;elseifJrx2=2^NJrx2=Jrx2-2^N;X=X+L;x=linspaceX-LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry2=2^NJry2=Jry2-2^N;Y=Y-L;y=linspaceY+LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;pause
0.1;endelseifx1=x2y1=y2ifJrx3=2^NJrx3=Jrx3-2^N;X=X+L;x=linspaceX-LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry3=2^NJry3=Jry3-2^N;Y=Y+L;y=linspaceY-LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;pause
0.1;elseifx1x2y1=y2ifJrx3=2^NJrx3=Jrx3-2^N;X=X-L;x=linspaceX+LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry3=2^NJry3=Jry3-2^N;Y=Y+L;y=linspaceY-LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;pause
0.1;elseifx1x2y1y2ifJrx3=2^NJrx3=Jrx3-2^N;X=X-L;x=linspaceX+LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry3=2^NJry3=Jry3-2^N;Y=Y-L;y=linspaceY+LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;pause
0.1;elseifJrx3=2^NJrx3=Jrx3-2^N;X=X+L;x=linspaceX-LX100;Mx=Mx-1;elsex=zeros1100+X;endifJry3=2^NJry3=Jry3-2^N;Y=Y-L;y=linspaceY+LY100;My=My-1;elsey=zeros1100+Y;endplotxyr;holdon;pause
0.1;endendendsethandles.text11string插补结束;end%---Executesonbuttonpressinpushbutton
3.functionpushbutton4_CallbackhObjecteventdatahandles%绘制圆弧%hObjecthandletopushbutton3seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATAglobalx1y1xyrx2y2Ax0y0MFXYMxMyLa1a2a;x1=str2doublegethandles.edit1string;y1=str2doublegethandles.edit2string;x2=str2doublegethandles.edit3string;y2=str2doublegethandles.edit4string;r=str2doublegethandles.edit5string;L=str2doublegethandles.edit7string;A=sqrtr^2-x2-x1^2+y2-y1^2/4;%圆心到弦中点的长度ifsqrtx2-x1^2+y2-y1^22*rsethandles.text11string无法构成圆弧;elsex0=x1+x2/2+A*y1-y2/sqrtx2-x1^2+y2-y1^2;%圆心坐标y0=y1+y2/2-A*x1-x2/sqrtx2-x1^2+y2-y1^2;a1=atany1-y0/x1-x0;a2=atany2-y0/x2-x0;ifx1x0y1y0a1=pi-absa1;elsea1=a1;endifx2x0y0y2a2=pi-absa2;elseifx2x0y2y0a2=pi+a2;elsea2=a2;enda=a1:
0.01:a2;x=x0+r.*cosa;y=y0+r.*sina;plotxyk;xmin=min[xx0];xmax=max[xx0];ymin=min[yy0];ymax=max[yy0];axisequal;axis[xmin-Lxmax+Lymin-Lymax+L];%坐标轴边界holdon;sethandles.text11string画图完成;F=0;X=x1;Y=y1;ify1=y0x1x0Mx=ceilx1-x2/L+ceil2*absx0+r-x1/L;elseifx2x0y0=y2Mx=ceilx1-x2/L+ceil2*absx2-x0+r/L;elseMx=ceilx1-x2/L;endifx2x0x0x1My=ceilabsy0+r-y1/L+ceilabsy0+r-y2/L;elseMy=ceilabsy1-y2/L;endM=Mx+My;%计算插补步数end%---Executesonbuttonpressinpushbutton
3.functionpushbutton5_CallbackhObjecteventdatahandles%hObjecthandletopushbutton3seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATAglobalxyrx0y0MFXYL;ifM=0sethandles.text11string插补结束!;elseifX=x0ifY=y0%相对于圆心在第一象限内插补ifF=0%圆外X=X-L;x=linspaceX+LX100;y=x.*0+Y;plotxyrF=X-x0^2+Y-y0^2-r^2;else%圆内Y=Y+L;y=linspaceY-LY100;x=y.*0+X;plotxyrF=X-x0^2+Y-y0^2-r^2;endelse%相对于圆心在第四象限内插补ifF=0%圆外Y=Y+L;y=linspaceY-LY100;x=y.*0+X;plotxyr;F=X-x0^2+Y-y0^2-r^2;else%圆内X=X+L;x=linspaceX-LX100;y=x.*0+Y;plotxyr;F=X-x0^2+Y-y0^2-r^2;endendelseifY=y0;%第二象限ifF=0%圆外Y=Y-L;y=linspaceY+LY100;x=y.*0+X;plotxyr;F=X-x0^2+Y-y0^2-r^2;else%圆内X=X-L;x=linspaceX+LX100;y=x.*0+Y;plotxyr;F=X-x0^2+Y-y0^2-r^2;endelse%第三象限ifF=0%圆外X=X+L;x=linspaceX-LX100;y=x.*0+Y;plotxyr;F=X-x0^2+Y-y0^2-r^2;else%圆内Y=Y-L;y=linspaceY+LY100;x=y.*0+X;plotxyr;F=X-x0^2+Y-y0^2-r^2;endendendM=M-1;end%---Executesonbuttonpressinpushbutton
6.functionpushbutton6_CallbackhObjecteventdatahandles%hObjecthandletopushbutton6seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATAglobalxyrx0y0MFXYL;whileM0ifX=x0ifY=y0%相对于圆心在第一象限内插补ifF=0%圆外X=X-L;x=linspaceX+LX100;y=x.*0+Y;plotxyrF=X-x0^2+Y-y0^2-r^2;else%圆内Y=Y+L;y=linspaceY-LY100;x=y.*0+X;plotxyrF=X-x0^2+Y-y0^2-r^2;endelse%相对于圆心在第四象限内插补ifF=0%圆外Y=Y+L;y=linspaceY-LY100;x=y.*0+X;plotxyr;F=X-x0^2+Y-y0^2-r^2;else%圆内X=X+L;x=linspaceX-LX100;y=x.*0+Y;plotxyr;F=X-x0^2+Y-y0^2-r^2;endendelseifY=y0;%第二象限ifF=0%圆外Y=Y-L;y=linspaceY+LY100;x=y.*0+X;plotxyr;F=X-x0^2+Y-y0^2-r^2;else%圆内X=X-L;x=linspaceX+LX100;y=x.*0+Y;plotxyr;F=X-x0^2+Y-y0^2-r^2;endelse%第三象限ifF=0%圆外X=X+L;x=linspaceX-LX100;y=x.*0+Y;plotxyr;F=X-x0^2+Y-y0^2-r^2;else%圆内Y=Y-L;y=linspaceY+LY100;x=y.*0+X;plotxyr;F=X-x0^2+Y-y0^2-r^2;endendendM=M-1;pause
0.1;endsethandles.text11string插补结束!;%---Executesonbuttonpressinpushbutton
6.functionpushbutton7_CallbackhObjecteventdatahandles%hObjecthandletopushbutton6seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATAsethandles.text11string待命;sethandles.radiobutton1Value0;sethandles.radiobutton2Value0;sethandles.radiobutton3Value0;cla%清除数据%---Executesonbuttonpressinradiobutton
1.functionradiobutton1_CallbackhObjecteventdatahandles%hObjecthandletoradiobutton1seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATA%Hint:gethObjectValuereturnstogglestateofradiobutton1%---Executesonbuttonpressinradiobutton
2.functionradiobutton2_CallbackhObjecteventdatahandles%hObjecthandletoradiobutton2seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATA%Hint:gethObjectValuereturnstogglestateofradiobutton2%---Executesonbuttonpressinradiobutton
3.functionradiobutton3_CallbackhObjecteventdatahandles%hObjecthandletoradiobutton3seeGCBO%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdataseeGUIDATA%Hint:gethObjectValuereturnstogglestateofradiobutton3七参考资料1陈蔚芳,王宏涛.《机床数控技术及应用》.北京科学出版社,20082刘卫国.《MATLAB程序设计与应用》.北京高等教育出版社2006变量名称说明变量名称说明X1直线起点横坐标JvxX被积函数寄存器Y1直线起点纵坐标Jrx1X普通DDA积分累加器X2直线终点横坐标Jrx2X全加载积分累加器Y2直线终点纵坐标Jrx3X半加载积分累加器x绘图动点横坐标JvyY被积函数寄存器y绘图动点纵坐标Jry1Y普通DDA积分累加器L插补步长Jry2Y全加载积分累加器N寄存器位数Jry3Y半加载积分累加器MxX终点判别计数器X插补动点横坐标MyY终点判别计数器Y插补动点纵坐标变量名称说明变量名称说明X1圆弧起点横坐标E终点判别计数器Y1圆弧起点纵坐标F偏差判别x绘图动点横坐标X插补动点横坐标y绘图动点纵坐标Y插补动点纵坐标r圆弧半径MxX插补步数X2圆弧终点横坐标MyY插补步数Y2圆弧终点纵坐标L插补步长A圆心到弦中点的距离a1圆弧起点角坐标x0圆心横坐标a2圆弧终点角坐标y0圆心纵坐标a绘图动点角坐标。