数据采样法插补C语言程序_第1页
数据采样法插补C语言程序_第2页
数据采样法插补C语言程序_第3页
数据采样法插补C语言程序_第4页
数据采样法插补C语言程序_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

〃该函数在VC++6.0下编译测试通过,可实现直线、圆弧、完整圆的数据采样法插补:并可将插补函数计算出的数〃据点写入xxx.txt文件中〃昔有任何疑问,欢迎邮件联系,dingiiang90@〃版权所有,侵权必究。转载时请注明来自大连理工机械工程学院Deanjiang#include<math.h>#include<stdlib.h>#include<stdio.h>/********************************************************************/TOC\o"1-5"\h\z/*函数名:InsertPoint *//*功能:控制机床各轴进给并将进给结果写入文件中 *//*参数:doublex,doubley插补点单位:毫米 *//*说明:与机床硬件关联,每产生一个点调用一次 *//********************************************************************/voidlnsertPoint(doublexCuodoubleyCur)externFILE*fp;charch=10;printf(,,xCur=%fexternFILE*fp;charch=10;printf(,,xCur=%f/yCur=%f\n,,,xCur,yCur);fprintf(fp,”%f,%仁xCur,yCur);fputc(ch,fp);}/*/*/*/*/********************************************************************/*/*/*/函数名:Judge_Quadrant能:判断参数坐标的所在象限并返回相应象限值数:doublexdoubleymmmm*/******************************************************************unsignedshortJudge_Quadrant(doublex,doubley)(unsignedshortnDir;if(x>=0){〃象限判断if(y>=0)nDir=l;return1;)elsenDir=4;return4;else

if(y>=0){nDir=2;return2;}else{nDir=3;return3;}(}*******************************************************************/7*/函数名:DSM_Line能:数据采样法直线插补数:doubleXEnd,doubleYEnddoubleFValunsignedshortTs插补终点mm插补速度 mm/min插补周期ms*/*/*/*******************************************************************/voidDSM_Line(doubleXEnd,doubleYEnd,doubleFVal,unsignedshortTs)(doublefDeltaLjL;doubleK;intbXIsBigger;doubleGEnd,NEnd;doubleGStepVaI;//NStepVaI;doubleAxisGVal,AxisNVal;doublefStVel;doublefDistToEnd;fStVel=FVal/300000;〃插补速度’单位为mm/stAxisGVal=AxisNVal=O;fDeltaL=FVal*Ts/(60*1000);//一个插补周期内的合成增量,单位为亳米fL=sqrt(XEnd*XEnd+YEnd*YEnd);K=fDeltaL/fL;〃确定引导坐标和非引导坐标if(fabs(XEnd>=fabs(YEnd))){bXlsBigger=l;GEnd=XEnd;NEnd=YEnd;(else{bXlsBigger=O;GEnd=YEnd;NEnd=XEnd;GStepVal=GEnd*K;fDistToEnd=(AxisGVal-GEnd)*(AxisGVal-GEnd)+(AxisNVal-NEnd)*(AxisNVal-NEnd);while(fDistToEnd>(fDeltaL*fDeltaL/4)){AxisGVal+=GStepVaI;AxisNVal=AxisGVal*NEnd/GEnd;if(bXIsBigger){lnsertPoint(AxisGVal,AxisNVal);}elselnsertPoint(AxisNVal,AxisGVal);}fDistToEnd=(AxisGVal-GEnd)*(AxisGVal-GEnd)+(AxisNVal-NEnd)*(AxisNVal-NEnd);)/********************************************************************//*函数名:DSMJZircle*//*功能:数据采样法圆弧插补*//*参数:doubleXStart,doubleYStart插补起点mm *//*doubleXEnd,doubleYEnd 插补终点mm*//*doubleFVal 插补速度 mm/min*//*unsignedshortTs 插补周期 ms*//*doubleradius 圆弧半径 mm*//*boolblsCW 圆弧插补方向0或1*//********************************************************************/voidDSM_Circle(doublexSt,doubleySt,doublexEnd,doubleyEnd,doubleradius,doubleFVal,intTs,intblsCW)doubleFTa,xCurzyCuGxCurl;doubleeszxdir,ydir;//用于判定终点的误差intfull_circle=OJudge=l;intndir;if(xSt==xEnd&ySt==yEnd)full_circle=l;//整圆判断FT=FVal*Ts/60/1000.0;es=FT/2;a=2*asin(FT/2/radius);〃每个插补周期所超过的弦线对应的圆心角xCur=xSt,yCur=ySt;lnsertPoint(xCurzyCur);if(blsCW==O)//逆圆插补while(judge==l||full_circle==l)//终点判断xCurl=xCur*cos(a)-yCur*sin(a);//三角函数圆弧插补的迭代公式yCur=yCur*cos(a)+xCur*sin(a);xCur=xCurl;InsertPoint(xCuGyCur);full_circle=O;xdir=xCur-xEnd;ydir=yCur-yEnd;ndir=Judge_Quadrant(xdiGydir);switch(ndir)(casel:judge=xdir>=es11ydir>=es;break;case2:judge=(-xdir)>=es||ydir>=es;break;case3:judge=(-xdir)>=es11(-ydir)>=es;break;case4:judge=xdir>=es||(-ydir)>=es;break;}}}else//顺圆插补{while(judge==l||full_circle==l)//终点判断{xCurl=xCur*cos(a)+yCur*sin(a);//三角函数圆弧插补的迭代公式yCur=yCur*cos(a)-xCur*sin(a);xCur=xCurl;InsertPoint(xCuoyCur);full_circle=O;xdir=xCur-xEnd;ydir=yCur-yEnd;ndir=Judge_Quadrant(xdir/ydir);switch(ndir)(casel:judge=xdir>=es11ydir>=es;break;case2:judge=(-xdir)>=es||ydir>=es;break;case3:judge=(-xdir)>=es11(-ydir)>=es;break;case4:judge=xdir>=es||(-ydir)>=es;break;}}}}FILE*fp;//文件指针intmain()(doubleft=1000.0*10/60/1000;charfn[10];printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论