第一范文网 - 专业文章范例文档资料分享平台

直线及圆弧插补程序--逐点比较法

来源:用户分享 时间:2025/7/21 14:56:36 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

此程序是根据《微型计算机控制技术》(第二版)清华大学出版社 第三章数字控制技术——3.2插补原理中的3.2.1逐点比较法的直线插补,3.2.2逐点比较法圆弧插补编写的。其中的变量定义,原理依据均来源于此,如有疑问,请参考书中的讲解。尤其是例子,以下两个程序的第一个运行图均与例题中的一致。

一、四象限直线插补程序

分别加工第一、二、三、四象限直线,起点均为(0,0),终点坐标为(NX,NY),进行插补计算。

程序中(NX,NY)为终点坐标;NXY为总步数;XOY=1,2,3,4,分别为第一、二、三、四象限; ZF=1,2,3,4,分别代表+x,-x,+y,-y走步方向;FM为加工点偏差,初值为0。 源程序:

# include \# include \# include \void main()

{ int NX,NY,NXY,BS,XOY,ZF; int FM=0;

char a[10]=\ printf(\请输入NX,NY\\n\ scanf(\ {if(NX>0)

if(NY>0) XOY=1; else

XOY=4; else

if(NY>0) XOY=2; else

XOY=3;}

printf(\终点在第%d象限\\n\

printf(\ 步数 坐标进给 偏差计算 终点判断\\n\\n\ BS=fabs(NX) + fabs(NY);

for(NXY= fabs(NX) + fabs(NY)-1;NXY>=0;NXY--) { if(FM>=0) {if(XOY==1||XOY==4)

{ ZF=1; strcpy(e,a);} else { ZF=2; strcpy(e,b); } FM=FM-fabs(NY); printf(\ %d %s FM=%d NXY=%d\\n\\n\,e, FM,NXY);} else {if(XOY==1||XOY==2) { ZF=3; strcpy(e,c); } else {ZF=4; strcpy(e,d);} FM=FM+fabs(NX);

printf(\ %d %s FM,NXY);}}}

FM=%d NXY=%d\\n\\n\,e, 图一:插补计算过程

第一象限直线OA,起点为(0,0),终点坐标为A(6,4)

图二:插补计算过程

第二象限直线OA,起点为(0,0),终点坐标为A(-3,2)

图三:插补计算过程

第三象限直线OA,起点为(0,0),终点坐标为A(-2,-3)

图四:插补计算过程

第四象限直线OA,起点为(0,0),终点坐标为A(3,-2)

搜索更多关于: 直线及圆弧插补程序--逐点比较法 的文档
直线及圆弧插补程序--逐点比较法.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c40als0y9la38gut0yjui_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top