版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上/該函數(shù)在VC+6.0下編譯測(cè)試通過,可實(shí)現(xiàn)直線、圓弧、完整圓的逐點(diǎn)比較法插補(bǔ);并可將插補(bǔ)函數(shù)計(jì)算出的數(shù)/據(jù)點(diǎn)寫入xxx.txt文件中/若有任何疑問,歡迎郵件聯(lián)系,/版權(quán)所有,侵權(quán)必究。轉(zhuǎn)載時(shí)請(qǐng)注明來自大連理工機(jī)械工程學(xué)院Deanjiang#include<stdio.h>#include<math.h>#include<stdlib.h>/*/* 函數(shù)名: InsertPoint */* 功 能:控制機(jī)床各軸進(jìn)給并將進(jìn)給結(jié)果寫入文件中*/* 參 數(shù):double x, double y 插補(bǔ)點(diǎn) 單位:毫米*/* 說 明:與機(jī)床硬件
2、關(guān)聯(lián),每產(chǎn)生一個(gè)點(diǎn)調(diào)用一次*/*/void InsertPoint(double xCur,double yCur)extern FILE *fp;char ch=10;printf("xCur=%f,yCur=%fn",xCur,yCur);fprintf(fp,"%f,%f",xCur,yCur); fputc(ch,fp);/*/* 函數(shù)名: Judge_Quadrant */* 功 能:判斷參數(shù)坐標(biāo)的所在象限并返回相應(yīng)象限值*/* 參 數(shù):double xmm */*double ymm*/*/unsigned short Judge_Quadr
3、ant(double x, double y)unsigned short nDir;if (x>=0) /象限判斷if (y>=0) nDir=1;return 1;else nDir=4;return 4;else if (y>=0) nDir=2;return 2;else nDir=3;return 3;/*/* 函數(shù)名: PBP_Line */* 功 能:逐點(diǎn)比較法直線插補(bǔ)*/* 參 數(shù):double step步長mm*/*double XEnd, double YEnd插補(bǔ)終點(diǎn)mm*/*/void PBP_Line(double step, double XEnd
4、, double YEnd)double lDevVal; /偏差值double xCurVal=0,yCurVal=0; /當(dāng)前點(diǎn)的實(shí)際位置long StepMount; /插補(bǔ)總步數(shù)long StepCount=0; /插補(bǔ)次數(shù)計(jì)數(shù)器unsigned short nDir; /當(dāng)前點(diǎn)所在象限 nDir=Judge_Quadrant(XEnd,YEnd); /象限判斷XEnd=labs(XEnd);YEnd=labs(YEnd);StepMount=(long) (XEnd+YEnd)/step;lDevVal=yCurVal*XEnd-xCurVal*YEnd; while (StepCo
5、unt<StepMount) /終點(diǎn)判別/if (lDevVal>=0) /偏差=0switch(nDir) case 1:xCurVal+=step;InsertPoint(xCurVal,yCurVal);break;case 2:xCurVal-=step;InsertPoint(xCurVal,yCurVal);break;case 3: xCurVal-=step;InsertPoint(xCurVal,yCurVal);break;case 4:xCurVal+=step;InsertPoint(xCurVal,yCurVal);break;lDevVal-=YEnd;
6、else /偏差<0switch(nDir) case 1:yCurVal+=step;InsertPoint(xCurVal,yCurVal);break;case 2:yCurVal+=step;InsertPoint(xCurVal,yCurVal);break;case 3:yCurVal-=step;InsertPoint(xCurVal,yCurVal);break;case 4:yCurVal-=step;InsertPoint(xCurVal,yCurVal);break;lDevVal+=XEnd;StepCount+; /*/* 函數(shù)名: PBP_Circle */*
7、 功 能:逐點(diǎn)比較法圓弧插補(bǔ)*/* 參 數(shù):double step步長mm*/*double XStart,double YStart插補(bǔ)起點(diǎn)mm*/*double XEnd,double YEnd插補(bǔ)終點(diǎn)mm*/*double radius圓弧半徑mm*/* bool bIsCW圓弧插補(bǔ)方向0或1 */*/void PBP_Circle(double step, double XStart, double YStart, double XEnd,double YEnd, double radius, int bIsCW)double lDevVal,goallDevVal;/當(dāng)前誤差和與終點(diǎn)
8、的差值double xCurVal=XStart,yCurVal=YStart;/當(dāng)前坐標(biāo) unsigned short nDir;/象限long stepcount=0;/步數(shù)lDevVal=xCurVal*xCurVal+yCurVal*yCurVal-radius*radius;goallDevVal=(xCurVal-XEnd)*(xCurVal-XEnd)+(yCurVal-YEnd)*(yCurVal-YEnd);while(goallDevVal>=(step*step)|stepcount=0)if(lDevVal>=0)/誤差大于等于零if(bIsCW=0)/逆圓
9、插補(bǔ) nDir=Judge_Quadrant(xCurVal,yCurVal); switch(nDir)case 1:xCurVal-=step; InsertPoint(xCurVal,yCurVal);break;case 2:yCurVal-=step; InsertPoint(xCurVal,yCurVal);break;case 3: xCurVal+=step;InsertPoint(xCurVal,yCurVal);break;case 4:yCurVal+=step; InsertPoint(xCurVal,yCurVal);break;else/順圓插補(bǔ) nDir=Judg
10、e_Quadrant(xCurVal,yCurVal); switch(nDir)case 1:yCurVal-=step; InsertPoint(xCurVal,yCurVal);break;case 2:xCurVal+=step; InsertPoint(xCurVal,yCurVal);break;case 3: yCurVal+=step;InsertPoint(xCurVal,yCurVal);break;case 4:xCurVal-=step; InsertPoint(xCurVal,yCurVal);break;else/誤差小于零if(bIsCW=0)/逆圓插補(bǔ)nDir=
11、Judge_Quadrant(xCurVal,yCurVal); switch(nDir)case 1:yCurVal+=step; InsertPoint(xCurVal,yCurVal);break;case 2:xCurVal-=step; InsertPoint(xCurVal,yCurVal);break;case 3: yCurVal-=step;InsertPoint(xCurVal,yCurVal);break;case 4:xCurVal+=step; InsertPoint(xCurVal,yCurVal);break;else/順圓插補(bǔ) nDir=Judge_Quadra
12、nt(xCurVal,yCurVal); switch(nDir)case 1:xCurVal+=step; InsertPoint(xCurVal,yCurVal);break;case 2:yCurVal+=step; InsertPoint(xCurVal,yCurVal);break;case 3: xCurVal-=step;InsertPoint(xCurVal,yCurVal);break;case 4:yCurVal-=step; InsertPoint(xCurVal,yCurVal);break;lDevVal=xCurVal*xCurVal+yCurVal*yCurVal-radius*radius;goallDevVal=(xCurVal-XEnd)*(xCurVal-XEnd)+(yCurVal-YEnd)*(yCurVal-YEnd);stepcount+;FILE *fp;/文件指針int main()double ft=1000.0*10/60/1000;int j,j1,jj;char fn10;printf("please input filename:n");/輸入要寫入數(shù)據(jù)的文件名,如pbp_circle.txtscanf("%s",
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024建材供貨合同范文簡單
- 蘇州科技大學(xué)天平學(xué)院《舞蹈編導(dǎo)一》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024《汽車租賃合同范本》
- 公共加工車間設(shè)備故障處理管理考核試卷
- 2024新居間合同樣本范文
- 2024二手汽車買賣協(xié)議二手汽車買賣合同樣板
- 建筑安全施工的材料選擇和安全使用考核試卷
- 企業(yè)文化與創(chuàng)新溝通戰(zhàn)略考核試卷
- 2024房屋裝修合同協(xié)議書(律達(dá)通)
- 2024家具特許經(jīng)營合同書
- 課題-初中數(shù)學(xué)作業(yè)優(yōu)化設(shè)計(jì)的研究研究報(bào)告及課題研究報(bào)告
- 冬季預(yù)防訓(xùn)練傷的
- 2023自動(dòng)扶梯與自動(dòng)人行道扶手帶技術(shù)要求
- 證據(jù)法司考真題
- 項(xiàng)目管理培訓(xùn)之溝通管理課件
- 過敏性鼻炎與過敏性哮喘的治療
- 九省高三適應(yīng)性聯(lián)考詩歌鑒賞《臨江仙+正月二十四日晚至湖上》譯文賞析及試題含答案解析詳解講評(píng)課件
- 美甲店創(chuàng)業(yè)商業(yè)計(jì)劃書
- 反洗錢考試題庫及答案
- 仿制藥一致性與BE試驗(yàn)
- 絕交協(xié)議書模板
評(píng)論
0/150
提交評(píng)論