版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)控技術(shù)課程設(shè)計說明書設(shè)計題目 直線插補(bǔ)與圓弧插補(bǔ)程序設(shè)計 機(jī)械設(shè)計以及自動化專業(yè) 機(jī)械工程學(xué)院 機(jī)械102班 設(shè)計者 青島理工大學(xué) 2013年6月20日目 錄1. 設(shè)計題目12.目錄23.直線插補(bǔ)流程圖34.直線插補(bǔ)程序45.程序結(jié)果86.圓弧插補(bǔ)流程圖97.圓弧插補(bǔ)程序108.程序結(jié)果21一直線插補(bǔ)1.直線插補(bǔ)程序流程圖置FM=0輸入XE、YE、XOY、NXYFM0?XOR=1或4?XOR=1或2?ZF=1ZF=2ZF=3ZF=4FM=FM-YEFM=FM+YE調(diào)用走步控制程序NXY=NXY-1NXY=0?開始 結(jié)束YNYNYNYN2.直線插補(bǔ)程序設(shè)計#include "stdi
2、o.h"int i,X,Y,X0,Y0,Xe,Ye,F,N;int a302;void main() int m; int menu(); void yi(); void er(); void san(); void si(); void te(); void shuchu(); m=menu(); a00=X0; a01=Y0; switch(m) case 1:yi();shuchu();break; case 2:er();shuchu();break; case 3:san();shuchu();break; case 4:si();shuchu();break; case
3、5:te();shuchu();break; default:printf("無法插補(bǔ)n"); int menu() int t; printf("輸入起點坐標(biāo)n"); scanf("%d,%d",&X0,&Y0); printf("輸入終點坐標(biāo)n"); scanf("%d,%d",&Xe,&Ye); if (Xe>=X0&&Ye>=Y0) t=1; else if (Xe<=X0&&Ye>=Y0) t=2;
4、 else if (Xe<=X0&&Ye<=Y0) t=3; else if (Xe>=X0&&Ye<=Y0) t=4; else if (Xe=X0&&(Ye>Y0&&Y0>=0)|(Ye<Y0&&Y<=0) t=5; else t=6; return(t); void yi() F=0; N=Xe-X0+Ye-Y0; X=X0; Y=Y0; for(i=1;i<=N;i+) if(F>=0) X+; ai0=X; ai1=Y; F-=Ye-Y0; el
5、se Y+; ai0=X; ai1=Y; F+=Xe-X0; void er() F=0; N=X0-Xe+Ye-Y0; X=X0; Y=Y0; for(i=1;i<=N;i+) if(F>=0) X-; ai0=X; ai1=Y; F-=Ye-Y0; else Y+; ai0=X; ai1=Y; F+=X0-Xe; void san() F=0; N=X0-Xe+Y0-Ye; X=X0; Y=Y0; for(i=1;i<=N;i+) if(F>=0) X-; ai0=X; ai1=Y; F-=Y0-Ye; else Y-; ai0=X; ai1=Y; F+=X0-Xe
6、; void si() F=0; N=Xe-X0+Y0-Ye; X=X0; Y=Y0; for(i=1;i<=N;i+) if(F>=0) X+; ai0=X; ai1=Y; F-=Y0-Ye; else Y-; ai0=X; ai1=Y; F+=Xe-X0; void te()N=Ye-Y0; for(i=1;i<=N;i+) if(Ye>0) Y+; ai0=X; ai1=Y; else if(Ye<0) Y-; ai0=X; ai1=Y; void shuchu() for(i=0;i<=N;i+) printf("%d",i);
7、printf("%d,%dn",ai0,ai1); 3程序結(jié)果例如 起點(0,0)終點(6,4)步數(shù) 坐標(biāo)1 1,02 1,13 2,14 2,25 3,26 4,27 4,38 5,39 6,310 6,4二.圓弧插補(bǔ)1.圓弧插補(bǔ)程序流程圖ZF=4ZF=4RNS=1,6?RNS=2,5?輸入X0、Y0、NXY、RNS置FM=0、XM=X0、YM=Y0RNS=1,2,6,8?FM0?FM0?RNS=2,7?RNS=1,8?ZF=3ZF=2ZF=1ZF=1ZF=2ZF=3FM=FM-2XM=1FM=FM+2XM=1FM=FM-2YM=1FM=FM+2YM+1YM=YM+1YM
8、=XM-1YM=XM+1YM=YM-1調(diào)用走步控制程序NXY=NXY-1NXY=0?結(jié)束NNYNYYNNYNYNYNYN NNN2.圓弧插補(bǔ)程序#include "stdio.h"#include "math.h"int X0,Y0,X1,Y1,X2,Y2,X3,Y3,X4,Y4;int i=1,r,f,s;void main() int m; int menu(); void yishun(); void yini(); void ershun(); void erni(); void sanshun(); void sanni(); void sis
9、hun(); void sini(); void shuchu(); m=menu(); switch(m) case 1:yishun();break; case 2:yini();break; case 3:ershun();break; case 4:yini();break; case 5:sanshun();break; case 6:yini();break; case 7:sishun();break; case 8:yini();break; default:printf("無法插補(bǔ)n"); int menu() int t; printf("輸入
10、原點坐標(biāo)n"); scanf("%d,%d",&X0,&Y0); printf("輸入起點坐標(biāo)n"); scanf("%d,%d",&X3,&Y3); printf("輸入終點坐標(biāo)n"); scanf("%d,%d",&X4,&Y4); printf("1:順時針圓弧n"); printf("2:逆時針圓弧n"); scanf("%d",&s); X1=X3-X0; Y1
11、=Y3-Y0; X2=X4-X0; Y2=Y4-Y0; r=X1*X1+Y1*Y1; if (X1>=0&&Y1>0&&s=1) t=1; else if (X1>0&&Y1>=0&&s=2) t=2; else if (X1<0&&Y1>=0&&s=1) t=3; else if (X1<=0&&Y1<0&&s=2) t=4; else if (X1<=0&&Y1<0&&s=
12、1) t=5; else if (X1<0&&Y1<=0&&s=2) t=6; else if (X1>0&&Y1<=0&&s=1) t=7; else if (X1>=0&&Y1<0&&s=2) t=8; else t=9; return(t); void yishun() do f=X1*X1+Y1*Y1-r; if(f>=0) Y1-; f-=2*Y1+1; i+; printf("%d",i); printf("%d,%
13、dn",X1,Y1); else X1+; f+=2*X1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); while(Y1!=0&&(X1!=X2|Y1!=Y2); if(Y1=0) void sishun(); sishun(); void yini() do f=X1*X1+Y1*Y1-r; if(f>=0) X1-; f-=2*X1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); el
14、se Y1+; f+=2*Y1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); while(X1!=0&&(X1!=X2|Y1!=Y2); if(X1=0) void erni(); erni(); void ershun() do f=X1*X1+Y1*Y1-r; if(f>=0) X1+; f+=2*X1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); else Y1+; f+=2*Y1+1; i+
15、; printf("%d",i); printf("%d,%dn",X1,Y1); while(X1!=0&&(X1!=X2|Y1!=Y2); if(X1=0) void yishun(); yishun(); void erni() do f=X1*X1+Y1*Y1-r; if(f>=0) Y1-; f-=2*Y1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); else X1-; f-=2*X1+1; i+; printf("%d&q
16、uot;,i); printf("%d,%dn",X1,Y1); while(Y1!=0&&(X1!=X2|Y1!=Y2); if(Y1=0) void sanni(); sanni(); void sanshun() do f=X1*X1+Y1*Y1-r; if(f>=0) Y1+; f+=2*Y1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); else X1-; f-=2*X1+1; i+; printf("%d",i); printf(&q
17、uot;%d,%dn",X1,Y1); while(Y1!=0&&(X1!=X2|Y1!=Y2); if(Y1=0) void ershun(); ershun(); void sanni() do f=X1*X1+Y1*Y1-r; if(f>=0) X1+; f+=2*X1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); else Y1-; f+=2*Y1+1; i+; printf("%d",i); printf("%d,%dn",X
18、1,Y1); while(X1!=0&&(X1!=X2|Y1!=Y2); if(X1=0) void sini(); sini(); void sishun() do f=X1*X1+Y1*Y1-r; if(f>=0) X1-; f-=2*X1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); else Y1-; f-=2*Y1+1; i+; printf("%d",i); printf("%d,%dn",X1,Y1); while(X1!=0&&(X1!=X2|Y1!=Y2); if(X1=0) void sans
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024銷售外包的簡單合同
- 2024版長春房屋買賣合同文本
- 2025場地租賃合同標(biāo)準(zhǔn)范本(含環(huán)保條款)2篇
- 2025年度中央廚房承包合同范本(二零二五年度)4篇
- 2025年度磚廠生產(chǎn)線升級改造承包合同4篇
- 2025年度磚廠智能化生產(chǎn)系統(tǒng)承包合同4篇
- 2025年度智能溫室大棚使用權(quán)轉(zhuǎn)讓購買合同范本
- 2025年度物業(yè)管理與社區(qū)養(yǎng)老服務(wù)平臺合同4篇
- 2024年項目委托建設(shè)協(xié)議3篇
- 2025年度醫(yī)療器械注冊代理與風(fēng)險控制合同3篇
- 城市軌道交通的網(wǎng)絡(luò)安全與數(shù)據(jù)保護(hù)
- 英國足球文化課件
- 《行政職業(yè)能力測驗》2023年公務(wù)員考試新疆維吾爾新疆生產(chǎn)建設(shè)兵團(tuán)可克達(dá)拉市預(yù)測試題含解析
- 醫(yī)院投訴案例分析及處理要點
- 燙傷的安全知識講座
- 工程變更、工程量簽證、結(jié)算以及零星項目預(yù)算程序?qū)嵤┘?xì)則(試行)
- 練習(xí)20連加連減
- 五四制青島版數(shù)學(xué)五年級上冊期末測試題及答案(共3套)
- 員工內(nèi)部崗位調(diào)換申請表
- 商法題庫(含答案)
- 鋼結(jié)構(gòu)用高強(qiáng)度大六角頭螺栓連接副 編制說明
評論
0/150
提交評論