




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
法插补原理VC程序设计一ByO.z.逐点比较法插补原理VC程序设计背景数控机床在加工曲线时,用折线逼近所要加工的曲线。而确定刀具或绘图笔的过程就称为插补,数控系统中完成插补工作的部分装置称为插补器。常用的脉冲增量插补方法是逐点比较法。所谓逐点比较法插补,就是刀具或绘图笔每走一步都要和给定轨迹上的坐标一步的进给方向。如果原来在给定轨迹的下方,下一步就向给定轨迹的上方走,如果原来在给定轨迹的里面,下一步就向给定轨迹的外面走……如此,走一步,看一看,比较一次,决定下一步走向,以便逼近给定轨迹,即形成逐点比较插补。逐点比较法是以阶梯折线来逼近直线或者圆弧等曲线的,它与规定的加工直线或圆弧之间的最大误差为一个脉冲当量,因此只要把脉冲当量(第走一步的距离即步长)取得足够小,就可达到加工精度的要求。原理与算法(一)逐点比较法直线插补不同象限直线插补的偏差符号及坐标进给方向如图1所示。
法插补原理VC程序设计—ByO.z.图1偏差符号与进给方向的关由图1可以推导得出,4个象限直线插补的偏差计算公式和坐标进给方向,详见表1,该表中4个象限的终点坐标值取绝对值代入计算式中的和。表1直线插补的进给方向及偏差计算公式所在象限进给方向所在象限进给方向偏差计算一、四—、^三所在象限进给方向偏差计算、——三、四在计算机内存中开辟6个单元XE、YE、NXY、FM、XOY和ZF,分别存放终点横坐标、终点纵坐标、总步数、加工点偏差、直线所在象限值和走步方向标志。这里,, 等于1、2、3、4分别代表第一、第二、第三、第四象限, 的值可由终点坐标的正、负符号来确定, 的初值为0,ZF=1、2、3、4分别代表、 、 、走步方向。程序流程如图2所示。2直线插补程序流程二)逐点比较法圆弧插补图3 4个象限圆弧插补的对称关各象限圆弧插补的偏差符号与进给方向如图3所示,用SR和NR分别表示顺圆弧和逆圆弧,并且用SRpSR2、SR3、SR4和NR]、NR2、NR3、NR4图3 4个象限圆弧插补的对称关法插补原理VC程序设计—ByO.z.在计算机内存中开辟8个单元X0、YO、NXY、FM、RNS、XM、YM和ZF,分别存放起点的横坐标、起点的纵坐标、总步数、加工点偏差、圆弧种类值RNS、、 和走步方向标志。这里,RNS等于1、2、3、4和5、6、7、8分别代表SR]、SR2、SR3、SR4和NRpNR2、NR3、NR4,RNS的值可由起点和终点的坐标的正、负符号来确定,的初值为0,和的初值为和,ZF=1、2、3、4分别表示、 、 、走步方向。程序流程图如图4所示。图44象限圆弧插补程序流程图程序设计开发环境:VisualStudio2010,Windows8建立的项目:VC++MFCApplicationSingleDocument(一)全局变量intAXIS=600:坐标轴半轴长像素数(映射到真实长度600*0.1mm=6cm)intAXIS_SCALE:坐标轴最大刻度,通过菜单项修改intS_LEN:单位长度像素数(=AXIS/AXIS_SCALE)intsx,sy:直线插补用到的平移系数(二)对话框设置4个Edit框,连接变量m_x1、m_y1、m_x2、m_y2用于存储输入的坐标值。默认值m_x1=10,m_y1=0,m_x2=0,m_y2=10。(三)菜单CaptionIDFunction建立坐标系
法插补原理VC程序设计—ByO.z.坐标系样式标准大小(20*20)ID_AXES_OOnAxesO()样式1(15*15)ID_AXES_AOnAxesA()样式2(12*12)ID_AXES_BOnAxesB()样式3(10*10)ID_AXES_COnAxesC()样式4(30*30)ID_AXES_HOnAxesH()样式5(50*50)ID_AXES_IOnAxesI()样式6(60*60)ID_AXES_JOnAxesJ()清空ID_EDIT_CLCOnEditClc()插补类型直线插补ID_EDIT_LINEOnEditLine()圆弧插补IDEDITROUNDOnEditRound()说明:同时创建了三个右键菜单与“清空”、“直线插补”、“圆弧插补”同ID。(四)部分代码〃绘制坐标系voidCChabuDrawView::DrawAxes(void){CClientDCpDC(this);〃窗口映射,单位像素长度为0.1mm,坐标轴x向右为正,y轴向上为正pDC.SetMapMode(MM_LOMETRIC);CRectRecto;GetClientRect(&Recto);pDC.SetViewport0rg(Recto.Width()/2,Recto.Height()/2);〃绘制坐标轴pDC.MoveTo(-AXIS,0);pDC.LineTo(AXIS,O);法插补原理VC程序设计一ByO.z.pDC.MoveTo(0,-AXIS);pDC.LineTo(0,AXIS);〃绘制网格线for(inti=—AXIS;i<=AXIS;i+=S_LEN){if(i){pDC.MoveTo(i,—AXIS);pDC.LineTo(i,AXIS);pDC.MoveTo(—AXIS,i);pDC.LineTo(AXIS,i);}}〃标注坐标CStringstr;str.Format(_T("%d"),0);pDC.TextOutW(-8,15,str);str.Format(_T("%d"),-AXIS_SCALE);pDC.Text0utW(-AXIS-30,15,str);pDC.TextOutW(-25,-AXIS+15,str);str.Format(_T("%d"),AXIS_SCALE);pDC.Text0utW(AXIST5,15,str);pDC.Text0utW(T5,AXIS+15,str);}〃画"点”函数(走步控制程序)voidCChabuDrawView::DrawPoint(intx,inty){inthalf_s_len=S_LEN/2;〃坐标变换x=x*S_LEN;y=y*S_LEN;intx1=x-half_s_len;inty1=y+half_s_len;intx2=x+half_s_len;inty2=y-halfslen;法插补原理VC程序设计—ByO.z.x1+=sx*S_LEN;x2+=sx*S_LEN;y1+=sy*S_LEN;y2+=sy*S_LEN;〃绘制矩形CBrushbrush;brush.CreateSolidBrush(RGB(255,0,255));CPenpen;pen.CreatePen(PS_S0LID,1,RGB(255,0,255));CClientDCdc(this);dc.SelectObject(&pen);dc.SelectObject(&brush);dc.SetMapMode(MM_LOMETRIC);CRectRecto;GetClientRect(&Recto);dc.SetViewportOrg(Recto.Width()/2,Recto.Height()/2);dc.Rectangle(x1,y1,x2,y2);}〃通过坐标平移实现任意两点间直线绘制voidCChabuDrawView::cb_line(intx1,inty1,intx2,inty2){sx=x1;sy=y1;cb_line_std(x2-sx,y2-sy);sx=0;sy=0;}〃以原点为起点画线voidCChabuDrawView::cb_line_std(intxo,intyo){intfm=0,xe=abs(xo),ye=abs(yo),xoy;intx=0,y=0;DrawPoint(x,y);intnxy=abs(xo)+abs(yo);〃判断象限法插补原理VC程序设计一ByO.z.if(xo>=0)xoy=yo>0?1:4;elsexoy=yo>0?2:3;〃通过绘制方形模拟刀具进给for(inti=nxy;nxy>0;nxy—){if(fm>=0){fm-=ye;if(xoy==l||xoy==4)DrawPoint(++x,y);elseDrawPoint(一x,y);}else{fm+=xe;if(xoy==1||xoy==2)DrawPoint(x,++y);elseDrawPoint(x,—y);}}}〃画圆voidCChabuDrawView::cb_round_std(intx1,inty1,intx2,inty2){sx=0;sy=0;intfm=0,xm=abs(x1),ym=abs(y1),rns;intnxy=abs(x2-x1)+abs(y2-y1);intx=x1,y=y1;DrawPoint(x,y);〃判断圆弧类型if(x2>x1){
法插补原理VC程序设计一ByO.z.法插补原理VC程序设计一ByO.z.ym——;if(rns==l||rns==6)DrawPoint(x,—y);elseDrawPoint(x,++y);elsefm=fm+2*xm+1;xm++;if(rns==1||rns==8)DrawPoint(++x,y);elseDrawPoint(一x,y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川资阳中学2024-2025学年高三5月高考冲刺英语试题含解析
- 江苏省泰州市实验小学2024-2025学年数学四下期末质量跟踪监视模拟试题含解析
- 四川省乐山市峨眉山市第二中学2025年高三4月联考物理试题含解析
- 营口市大石桥市2024-2025学年数学五年级第二学期期末达标测试试题含答案
- 专业技术人员聘用合同
- 2025版企业间服务与咨询合同范本
- 服务供应商合同范本
- 餐饮业食材供应合同模板
- 儿童歌曲钢琴简易伴奏编配 课件 第1-3章 和弦-五线谱、简谱互译
- 1生活在新型民主国家 公开课一等奖创新教学设计(表格式)
- 林则徐课件完整版
- 电力铁塔基础施工方案资料
- 人教版高中英语选择性必修第三册课件Unit 5 Poems
- 国家移民管理局直属事业单位公开招考24名工作人员【共500题含答案解析】模拟检测试卷
- 小白兔拔萝卜课件
- 房树人心理画绘画分析(附图)-课件
- 2023年河南推拿职业学院单招考试面试模拟试题及答案解析
- 现代生物技术与人类健康课件
- 篮球裁判法(裁判手势)课件
- 辞职报告辞职信
- 2021年新湘教版九年级数学中考总复习教案
评论
0/150
提交评论