




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、機(jī)床數(shù)控技術(shù)課程設(shè)計機(jī)床數(shù)控技術(shù)課程設(shè)計說明書說明書學(xué)校:航空航天大學(xué)專業(yè):機(jī)械工程及自動化學(xué)號:姓名:設(shè)計題目:PL1DC21指導(dǎo)老師:時間:一課設(shè)任務(wù):一課設(shè)任務(wù):1.PL1-逐點比較法插補第 1 象限直線;2.DC21-DDA 法插補第 21 象限順圓弧。二課設(shè)要求二課設(shè)要求: :1.具有數(shù)據(jù)輸入界面,如輸入直線插補的起點、終點,圓弧插補的起止點、圓心或半徑、插補的步長等;2.具有插補過程的動態(tài)顯示功能,如單步插補、連續(xù)插補等;3.插補的步長可調(diào);4.直線的起點、圓弧的圓心在坐標(biāo)系中的位置可變(即直線的起點、圓弧的圓心可不設(shè)定在坐標(biāo)原點)5.建議使用 C 語言編程,有條件者可使用 VB、
2、VC 等語言編程。三程序界面及運行截圖三程序界面及運行截圖1.直線連續(xù)插補:2.直線單步插補:3.圓弧連續(xù)插補:4.圓弧單步插補:四、程序流程圖四、程序流程圖1.PL1:逐點比較法插補第:逐點比較法插補第 1 象限直線象限直線逐點比較法插補直線的過程為每進(jìn)給一步需完成偏差判別,坐標(biāo)進(jìn)給,偏差計算,終點判別四個步驟,具體流程如圖 1 所示。開始初始化,輸入起點x01、y01,終點x02、y02,步長 kE=(abs(x01-x02)+abs(y01-y02)/k(總步數(shù))F=0(判別函數(shù))E0結(jié)束NF=0向正 X 方向前進(jìn)一步F=F-(y02-y01)向正 Y 方向前進(jìn)一步F=F+(x02-x0
3、1)YNYE=E-1xm=fix(xx-x03)/b);ym=fix(yy+R-y03)/b)Yjvx=0;jvy=0m=2jxm0?jvx=jvx+yj-yyYNym0?jvy=jvy+xx-xjYjvx溢出?0?+X 前進(jìn)一步Y(jié)jvy溢出?0?+Y前進(jìn)一步y(tǒng)m=ym-1xm0|ym0?N二一象限順圓?計算圓心坐標(biāo)(xx,yy)xj=x03,yj=y03初始化, 輸入起點坐標(biāo) (xr03,y03) ,終點坐標(biāo)(x04,y04) 半徑 R 步長 b和寄存器位數(shù) j開始NY2、DDA 法圓弧插補法圓弧插補五程序及變量說明五程序及變量說明(MatlabMatlab)function varargo
4、ut = 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(varargin1)gui_State.gui_Callback = str2func(v
5、arargin1);endif nargout+X 前進(jìn)一步-Y 前進(jìn)一步y(tǒng)n=yn-1xn=fix(x04-xx)/b);yn=fix(yy+R-y04)/b);Nxn0?jvx=jvx+yj-yyYNyn0?jvy=jvy+xj-xxYjvx溢出?0?Yjvy溢出?0?xn0|yn0?NY結(jié)束varargout1:nargout = gui_mainfcn(gui_State, varargin:);elsegui_mainfcn(gui_State, varargin:);endfunctioncxy_050910610_OpeningFcn(hObject,eventdata,hand
6、les,varargin)global uu=0;global fla;fla=0;handles.output = hObject;guidata(hObject, handles);functionvarargout=cxy_050910610_OutputFcn(hObject,eventdata,handles)varargout1 = handles.output;function x1_Callback(hObject, eventdata, handles)global x01;x01=str2double(get(handles.x1,string);function x1_C
7、reateFcn(hObject, eventdata, handles)ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunction x2_Callback(hObject, eventdata, handles)global x02;x02=str2double(get(handles.x2,string);function x2_CreateFcn(hObject, eventdata,
8、 handles)ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunction y1_Callback(hObject, eventdata, handles)global y01;y01=str2double(get(handles.y1,string);function y1_CreateFcn(hObject, eventdata, handles)ifispc&isequal(
9、get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunction y2_Callback(hObject, eventdata, handles)global y02;y02=str2double(get(handles.y2,string);function y2_CreateFcn(hObject, eventdata, handles)ifispc&isequal(get(hObject,BackgroundColor)
10、,get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunction x3_Callback(hObject, eventdata, handles)global x03;x03=str2double(get(handles.x3,string);function x3_CreateFcn(hObject, eventdata, handles)ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackg
11、roundColor)set(hObject,BackgroundColor,white);endfunction y3_Callback(hObject, eventdata, handles)global y03;y03=str2double(get(handles.y3,string);function y3_CreateFcn(hObject, eventdata, handles)ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,Backg
12、roundColor,white);endfunction x4_Callback(hObject, eventdata, handles)global x04;x04=str2double(get(handles.x4,string);function x4_CreateFcn(hObject, eventdata, handles)ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctio
13、n y4_Callback(hObject, eventdata, handles)global y04;y04=str2double(get(handles.y4,string);function y4_CreateFcn(hObject, eventdata, handles)ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunction r_Callback(hObject, eventd
14、ata, handles)global R;R=str2double(get(handles.r,string);function r_CreateFcn(hObject, eventdata, handles)ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunction clear_Callback(hObject, eventdata, handles)cla;function strai
15、ghtline_Callback(hObject, eventdata, handles)global s;grid on;x01=str2double(get(handles.x1,string);x02=str2double(get(handles.x2,string);y01=str2double(get(handles.y1,string);y02=str2double(get(handles.y2,string);x=linspace(x01,x02,1000);y=(y02-y01)/(x02-x01)*(x-x01)+y01;plot(x,y,b);hold on;s=1;fun
16、ction circular_arc_Callback(hObject, eventdata, handles)grid on;x03=str2double(get(handles.x3,string);x04=str2double(get(handles.x4,string);y03=str2double(get(handles.y3,string);y04=str2double(get(handles.y4,string);R=str2double(get(handles.r,string);l=sqrt(y04-y03).2+(x04-x03).2);k=sqrt(R2-(l2)/4);
17、x0=(x03+x04)/2+(y04-y03)*k)/l;y0=(y03+y04)/2-(x04-x03)*k)/l;x=linspace(x03,x04,1000);y=y0+sqrt(R2-(x-x0).2);plot(x,y,b);axis equal;hold on;global ss=0;function lxcb_Callback(hObject, eventdata, handles)global s F X Y;if s=1x01=str2double(get(handles.x1,string);x02=str2double(get(handles.x2,string);y
18、01=str2double(get(handles.y1,string);y02=str2double(get(handles.y2,string);k=str2double(get(handles.buchang,string);X=x01;Y=y01;F=0;E=(abs(x01-x02)+abs(y01-y02)/k;while E0if F=0X=X+k;m=linspace(X-k,X,100);n=Y;F=F-(y02-y01);plot(m,n,r);elseY=Y+k;p=X;q=linspace(Y-k,Y,100);F=F+(x02-x01);plot(p,q,r);end
19、E=E-1;endelsex03=str2double(get(handles.x3,string);x04=str2double(get(handles.x4,string);y03=str2double(get(handles.y3,string);y04=str2double(get(handles.y4,string);b=str2double(get(handles.buchang,string);j=str2double(get(handles.jcq,string);R=str2double(get(handles.r,string);l=(y04-y03)2+(x04-x03)
20、2)0.5;m=(y04-y03)/l;n=(x03-x04)/l;xx=(x03+x04)/2+(R2-l2/4)0.5*m;yy=(y03+y04)/2+(R2-l2/4)0.5*n;if (x03=xx&xx=yy&y04=yy)errordlg(請輸入第二一象限的順圓弧);elsexi=x03;yi=y03;xii=x03;yii=y03;jvx=0;jvy=0;xj=fix(xx-x03)/b);yj=fix(yy+R-y03)/b); %計算步數(shù)m=2j;%模while (xj0|yj0)if xj0jvx=jvx+yi-yy;endif yj0jvy=jvy+xx
21、-xi;endflag=0;if(jvxm)xj=xj-1;flag=1;xi=xi+b;jvx=mod(jvx,m);endif(jvym)yj=yj-1;flag=1;yi=yi+b;jvy=mod(jvy,m);endif flag=1line(xii,xi,yii,yi,color,r);hold on;xii=xi;yii=yi;endendendline(xi,xx,yi,yy+R,color,r);xi=xx;yi=yy+R;xii=xx;yii=yy+R;jvx=0;jvy=0;xj=fix(x04-xx)/b);yj=fix(yy+R-y04)/b);m=2j;axis au
22、to;while (xj0|yj0)if xj0jvx=jvx+yi-yy;endif yj0jvy=jvy+xi-xx;endflag=0;if(jvxm)xj=xj-1;flag=1;xi=xi+b;jvx=mod(jvx,m);endif(jvym)yj=yj-1;flag=1;yi=yi-b;jvy=mod(jvy,m);endif flag=1line(xii,xi,yii,yi,color,r);xii=xi;yii=yi;hold on;endendendfunction dbcb_Callback(hObject, eventdata, handles)global X Y F
23、 u E s;if s=1x01=str2double(get(handles.x1,string);y01=str2double(get(handles.y1,string);x02=str2double(get(handles.x2,string);y02=str2double(get(handles.y2,string);k=str2double(get(handles.buchang,string);if u=0X=x01;Y=y01;u=u+1;E=(abs(x01-x02)+abs(y01-y02)/k;F=0;elseif E0if F=0X=X+k;m=linspace(X-k
24、,X,1000);n=Y;F=F-(y02-y01);plot(m,n,r);hold on;elseY=Y+k;p=X;q=linspace(Y-k,Y);F=F+(x02-x01);plot(p,q,r);hold on;endE=E-1;elseu=0;endendelseglobal fla;x03=str2double(get(handles.x3,string);x04=str2double(get(handles.x4,string);y03=str2double(get(handles.y3,string);y04=str2double(get(handles.y4,strin
25、g);b=str2double(get(handles.buchang,string);j=str2double(get(handles.jcq,string);R=str2double(get(handles.r,string);l=(y04-y03)2+(x04-x03)2)0.5;m=(y04-y03)/l;n=(x03-x04)/l;xx=(x03+x04)/2+(R2-l2/4)0.5*m;yy=(y03+y04)/2+(R2-l2/4)0.5*n;if (x03=xx&xx=yy&y04=yy)errordlg(請輸入第二一象限的順圓弧);else%第二象限的順圓插
26、補xi=x03;yi=y03;jvx=0;jvy=0;xj=fix(xx-x03)/b);yj=fix(yy+R-y03)/b);%第二象限的計數(shù)器m=2j;k=1;while (xj0|yj0)if xj0jvx=jvx+yi-yy;endif yj0jvy=jvy+xx-xi;endflag=0;if(jvxm)xj=xj-1;flag=1;xi=xi+b;jvx=mod(jvx,m);endif(jvym)yj=yj-1;flag=1;yi=yi+b;jvy=mod(jvy,m);endif flag=1XC(k)=xi;YC(k)=yi;k=k+1;endendendxi=xx;yi=
27、yy+R;xii=xx;yii=yy+R;%第一象限順圓插補jvx=0;jvy=0;xn=fix(x04-xx)/b);yn=fix(yy+R-y04)/b);%第一象限的計數(shù)器m=2j;axis auto;while (xn0|yn0)if xn0jvx=jvx+yi-yy;endif yn0jvy=jvy+xi-xx;endflag=0;if(jvxm)xn=xn-1;flag=1;xi=xi+b;jvx=mod(jvx,m);endif(jvym)yn=yn-1;flag=1;yi=yi-b;jvy=mod(jvy,m);endif flag=1XC(k)=xi;YC(k)=yi;k=k+1;endenda=pi-atan(abs(y03-yy)/(x03-xx);b=atan(abs(y04-yy)/(x04-xx);alpha=b:pi/100:a;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 球場免責(zé)協(xié)議書
- 父母安置協(xié)議書
- 真實分居協(xié)議書
- 物業(yè)員工協(xié)議書
- 班組養(yǎng)護(hù)協(xié)議書
- 汽車放款協(xié)議書
- 法治宣傳協(xié)議書
- 市場食品安全協(xié)議書
- 工程安全保障協(xié)議書
- 泰興離婚協(xié)議書
- 酒店管理會所希爾頓酒店設(shè)計標(biāo)準(zhǔn)第節(jié)電梯電扶梯
- 推銷實戰(zhàn)技巧與客戶優(yōu)秀服務(wù)技巧
- 福建新費用定額交底材料
- 器質(zhì)性精神障礙患者的護(hù)理
- 趣味英語課件完整版
- 大學(xué)武術(shù)智慧樹知到答案章節(jié)測試2023年浙江大學(xué)
- 前列腺增生癥患者圍手術(shù)期的護(hù)理
- 五防系統(tǒng)調(diào)試報告
- 日語綜合教程第六冊 單詞表
- 市委政研室主任關(guān)于如何寫稿子的講話
- 在建項目雨季施工(防汛)安全隱患排查表
評論
0/150
提交評論