NC加工自动编程技术的研究
}
Carc entArc; Entity;
//实体类的定义,这是C++中特有的,利用了C++的优点 class CEntity { public: CEntity(); virtual ~CEntity(); public:
//实体变量定义 Entity m_Entity; };
程序的流程图如图4-2所示。
11
NC加工自动编程技术的研究
4.3 原始轨迹的显示模块
对于直线,从文件中得到其起点和终点,调用自定义的画直线的函数DrawLine(tmpEntity,pDC)将直线画出;对于圆弧,根据从文件中得到的圆弧的相关数据,用自定义的函数DrawArc(tmpEntity,pDC)将其画出。
12
开 始 到文件结束标记,或者数组下标不小于文件总行数 否 该行是”ENTITIES” 是 是 否 下标增1 是 到”ENDSEC”或者数组下标小于文件总行数 是 否 “LINE” 是 否 “ARC” 是 否 “CIRCLE” 否 下标增1 保存直线实体至实体数组 保存圆弧实体至实体数组 保存圆实体至实体数组 结 束 图4-2 将保存在字符数组中的文件内容解析为实体数组部分流程图
NC加工自动编程技术的研究
这部分的程序比较简单,流程图如下图4-3所示。
图4-3 原始轨迹显示模块流程图
4.4 小结
本部分通过DXF文件的读取保存模块和原始轨迹的显示模块实现了CAD模块的部分功能,使用户可以直观的从软件界面上看到在AutoCAD下绘制的零件图。这其间,DXF起到了桥梁的作用,它为图形信息在AutoCAD和第三方软件之间进行交换传输提供了一种简单而实用的解决办法。本部分主要代码见附录。
13
NC加工自动编程技术的研究
五、刀具半径补偿概念及原理
※本章关于刀具半径补偿的算法参考了周晓东师兄关于C功能刀具半径补偿的研究中的算法。[1]
5.1 刀具半径补偿的概念
刀具补偿包括刀具半径补偿和刀具长度补偿,这里讨论刀具半径补偿的相关问题。为了方便零件加工程序编制,程编轨迹为零件轮廓轨迹,而数控系统(CNC系统)控制刀具移动的轨迹为刀具中心轨迹。由于刀具半径的存在,零件的轮廓轨迹与刀具中心轨迹不相重合。为了加工出符合图纸要求的零件轮廓,必须进行刀具半径偏移。这个问题有两种解决办法:一种是由编程人员按照零件的几何形状尺寸及刀具半径大小人工计算刀具中心轨迹,然后再按刀具中心运动轨迹编制加工程序;另一种方法是由编程人员按照零件实际轮廓尺寸编制加工程序,并在程序中指明刀具参数及走刀方式,由数控系统自动完成刀具中心运动轨迹的计算。前一种方法繁琐、工作量大,已不采用。第二种方法具有很大的灵活性,既可以减轻编程人员的计算工作量,又允许实际加工中根据具体情况选择适宜的刀具,现代CNC系统都具有自动计算刀具中心运动轨迹的功能,这种功能称之为刀具半径补偿功能。
5.2 数控系统中C功能刀具补偿功能的实现方法
只有B刀具半径补偿功能的CNC系统,在数控加工时,采取读一段,算一段,走一段的控制方法。因此,无法估计由于刀具半径补偿所造成的下一段加工轨迹对本段加工轨迹的影响 。为了解决这一问题,需要在计算完本段程编轨迹之后,提前将下一段程序读入,然后根据它们之间转接的具体情况,求得本段程序的刀具中心轨迹。按照这一思路,具有C刀具半径补偿功能的CNC系统应设置多个数据寄存区。如图5-1所示:
缓冲寄存器(BS) 刀具补偿缓冲区( CS) 输出寄存区(OS) 工作寄存器(AS) 图5-1带C功能刀补的CNC系统
的工作流程图
14
相关推荐: