《逐点比较法插补C语言程序》由会员分享,可在线阅读,更多相关《逐点比较法插补C语言程序(6页珍藏版)》请在人人文库网上搜索。

1、该函数在VC+6.0下编译测试通过,可实现直线、圆弧、完整圆的逐点比较法插补;并可将插补函数计算出的数/据点写入xxx.txt文件中/若有任何疑问,欢迎邮件联系,dingjiang90foxmail.com/版权所有,侵权必究。转载时请注明来自大连理工机械工程学院Deanjiang#include#include#include/*/* 函数名: InsertPoint */* 功 能:控制机床各轴进给并将进给结果写入文件中*/* 参 数:double x, double y 插补点 单位:毫米*/* 说 明:与机床硬件关联,每产生一个点调用一次*/*/void InsertPoint(dou。

2、ble 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);/*/* 函数名: Judge_Quadrant */* 功 能:判断参数坐标的所在象限并返回相应象限值*/* 参 数:double xmm */*double ymm*/*/unsigned short Judge_Quadrant(double x, double y)unsigned short nDir;if (x=0) /象限判断if (y。

3、=0) nDir=1;return 1;else nDir=4;return 4;else if (y=0) nDir=2;return 2;else nDir=3;return 3;/*/* 函数名: PBP_Line */* 功 能:逐点比较法直线插补*/* 参 数:double step步长mm*/*double XEnd, double YEnd插补终点mm*/*/void PBP_Line(double step, double XEnd, double YEnd)double lDevVal; /偏差值double xCurVal=0,yCurVal=0; /当前点的实际位置lon。

4、g StepMount; /插补总步数long StepCount=0; /插补次数计数器unsigned short nDir; /当前点所在象限nDir=Judge_Quadrant(XEnd,YEnd); /象限判断XEnd=labs(XEnd);YEnd=labs(YEnd);StepMount=(long) (XEnd+YEnd)/step;lDevVal=yCurVal*XEnd-xCurVal*YEnd;while (StepCount=0) /偏差=0switch(nDir) case 1:xCurVal+=step;InsertPoint(xCurVal,yCurVal);b。

5、reak;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;else /偏差=(step*step)|stepcount=0)if(lDevVal=0)/误差大于等于零if(bIsCW=0)/逆圆插补nDir=Judge_Quadrant(xCurVal,yCurVal); switc。

6、h(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/顺圆插补nDir=Judge_Quadrant(xCurVal,yCurVal); switch(nDir)case 1:yCu。

7、rVal-=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)/逆圆插补nDir=Judge_Quadrant(xCurVal,yCurVal); switch(nDir)case 1:yCu。

8、rVal+=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/顺圆插补nDir=Judge_Quadrant(xCurVal,yCurVal); switch(nDir)case 1:xCurVal+=step;Insert。

9、Point(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)+(yCurVa。

10、l-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);/输入要写入数据的文件名,如pbp_circle.txtscanf(%s,fn);if(fp=fopen(fn,w)=NULL)printf(cant open filen);exit(0);PBP_Circle(1,50,0,50,0,50,1);/输入需要插补的圆弧的起点、终点、步长、方向/PBP_Line(1,50,30);/输入需要插补的直线的终点、步长fclose(fp);return 0。

插补c语言程序,逐点比较法插补C语言程序相关推荐

  1. 圆弧插补程序c语言,用C语言写的简易的逐点比较法插补算法,包括直线逐点插补和圆弧插补...

    源文件:https://pan.baidu.com/s/17FQKqn3UaEPQHkmTcOXKOg 提取码:atb2 #include #include #include #include //运 ...

  2. myrio与fpga编程_【虚拟课堂】LabVIEW与MyRIO的逐点比较法插补实现(含FPGA)

    小本本记下来 最近3D打印机用的有点爽,想用LabVIEW做一个自己的3D打印机玩一玩,所以今天介绍的是利用LabVIEW与MyRIO实现逐点比较法的直线与圆弧插(涉及FPGA).首先我们来介绍一下逐 ...

  3. 固高数控工作台的刀补插补程序开发(逐点比较法,数字积分法)

    这个刀补插补程序设计是我之前自己的毕业设计,主要是基于固高数控工作台,进行四象限及跨象限的刀补插补(逐点比较法和数字积分法)的程序设计,利用MFC进行刀补插补的效果模拟.最后的效果还是非常好的,随着给 ...

  4. 计算机插补,第三章计算机数控装置的插补原理.doc

    第三章 计算机数控装置的插补原理 3.1 概述 3.1.1插补的基本概念 是指在轮廓控制系统中,根据给定的进给速度和轮廓线形的要求等"有限信息",在已知数据点之间插入中间点的方法, ...

  5. MATLAB实现数控加工中的逐点比较法直线插补(四个象限,动态显示)

    逐点比较法就是刀具每走一步都要和给定轨迹上的坐标值做比较,从而决定下一步的进给方向.一般有直线插补和圆弧插补.简单的说就是,如果起始位置在给定轨迹的下方,下一步就向轨迹的上方走.如果起始位置在给定轨迹 ...

  6. 逐点比较法直线插补MATLAB(四个象限分开)

    现在还是只能分开运行,还在研究怎么合在一起 第一象限 Xs = input('请输入起点横坐标XIn X0= '); Ys = input('请输入起点纵坐标YIn Y0= '); Xe = inpu ...

  7. R语言︱缺失值处理之多重插补——mice包

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:缺失值是数据清洗过程中非常重要的问题 ...

  8. 松下plc FP-XH写的4轴控制程序,其中两个轴做直线插补,已经在12台设备上稳定运行,程序文件包含有plc程序触摸屏程序

    松下plc FP-XH写的4轴控制程序,其中两个轴做直线插补,已经在12台设备上稳定运行,程序文件包含有plc程序触摸屏程序,设备电气图纸清单,还有设备的清晰运行视频,能够帮助你很好的理解程序运行流程 ...

  9. 64位程序怎么判断指针是否有效_C 语言指针怎么理解?

    注: 看完这篇一定会让你理解透彻指针的本质 是的,这一篇的文章主题是「指针与内存模型」 说到指针,就不可能脱离开内存,学会指针的人分为两种,一种是不了解内存模型,另外一种则是了解. 不了解的对指针的理 ...

最新文章

  1. 【每日一算法】爬楼梯
  2. Selenium-switch_to_window出现删除线
  3. NameNode中几个关键的数据结构
  4. MFC EDIT控件 接收“回车”与“ESC”键 退出问题!
  5. linux服务器操作系统
  6. 太网交换机芯片-KSZ系列
  7. 通俗地讲一下Web是什么意思。
  8. IO_FILE——FSOP、house of orange
  9. 详解Android布局中gravity与layout_gravity属性
  10. opencv再学习之路(八)---设定感兴趣区域(RIO)
  11. linux下python识别excel,Python操作Excel之数据提取
  12. 看历史涨知识!高速公路知多少?
  13. React之antd按需加载
  14. 服务器环境搭建(裸机到应用)
  15. 破解还原卡的方法总结!! 1
  16. 基于arduino及PS2的麦克纳姆轮遥控小车
  17. 【芯选择】CC1101芯片的模块实例
  18. 磁盘在计算机管理中能找到,事实:u盘可以显示在磁盘管理中,但是在计算机中找不到...
  19. 图像处理(Image Processing) ---------- 直方图均衡化 (Equalization)(C#实现)
  20. LINUX DNS检测

热门文章

  1. linux搭建ssh服务器,并用xshell远程连接
  2. 《武则天正传》读后感
  3. Vue项目——文章发布和修改
  4. CodeForces 1144D -Equalize Them All
  5. Codeforcs 1183B Equalize Prices
  6. 江苏省赛 JSCPC2018 K. 2018
  7. PHP_微信小程序(2)
  8. 零伽壹链改研究:供应链金融潜能爆发,解密背后的区块链技术应用!
  9. 2019你为什不选择创业?是因为什么原因?
  10. Android音视频视频基础(H264)二 SPS分析