|
一.引言
在模具制造系统中,线切割起到了重要作用,是模具加工工艺领域中的一种关键技术。线切割机的数控系统已日臻完美,我们便需要一种高效自动的编程系统,以适应模具加工的多品种、小批量特性。 AutoCAD是目前国内外使用最为广泛的CAD软件,但其只是一个通用的绘图平台,不具备CAM的功能。大多数使用者采用在AutoCAD内绘好图形后,再通过DXF文件将图形转换到其他的CAM软件内的方式。这种方式存在两个弊端:操作过程繁琐,耗费时间长;在转换的过程中,容易产生小数位的舍入误差,丢失资料,损伤精度,影响加工的准确性。 根据众多编程人员的实际需求,我们在AutoCAD通用支撑平台上开发了一套全新的线切割编程系统Ycut,把用户从以往的DOS环境带到Windows环境,将CAD、CAM分开操作模式变为了真正的CAD/CAM一体化;改善了其他线切割CAM软件绘图困难的状况。
二.Ycut的体系结构和主要功能
Ycut由辅助绘图、定义加工路线、生成加工代码、NC程序编辑器等模块组成,其构成和工作流程见图1。

1. 辅助绘图模块 辅助绘图模块的主要功能是绘制无法通过AutoCAD直接绘制的图形和编辑图形,由下列功能组成: (1) 绘制图形 参数化绘制齿轮、凹槽、各种函数曲线和其它一些绘制比较困难的图形,将图形保存为AutoP文件或者导入AutoP文件(可预览AutoP图形)。
 
图2 绘制齿轮 (2) 编辑图形 清除重复线、自动串接复线、检查复线方向、筛选编辑等。 2. 定义加工路线模块 定义加工路线模块的主要功能是将AutoCAD绘制的图形生成线切割加工轨迹轮廓线和编辑加工路线,由下列功能组成: (1) 生成加工路线 手动/自动定义加工路线、定义上下异型、无屑加工、内外同割加工路线。 (2) 编辑加工路线 处理尖角、取消加工路线、指定跳步、改变加工形态、改变加工方向、指定局部锥度、指定整孔锥度等。 3. 生成加工代码模块 生成加工代码模块的主要功能是根据加工路线,生成指定格式的3B/4B/G代码,由下列功能组成: (1) 机床后处理 按照机床的所要求的格式设定后处理文件,以便生成加工代码时使用。 (2) 生成加工代码 根据设定好的后处理文件生成对应格式的3B/4B/G代码 4. NC程序编辑器 NC程序编辑器是一个功能强大的多文本编辑器,如图3所示,能同时打开多个程序文件并将程序传送到线切割机床控制器。
图3 NC程序编辑器 三.Ycut实现的技术原理
Ycut采用的ARX和MFC相结合、应用面向对象的设计方法 ,该技术代表了以PC机为硬件平台的CAD应用软件最先进的开发技术。 AutoCAD提供了诸如点、线、圆、弧等一些基本图形对象,用以构成复杂的图形。但是这些图形并不包含线切割加工的工艺特性,如穿线孔位置、钼丝补偿、加工方向等内容。为此,我们利用C++的特性,从ObjectARX提供的基类中派生一种新的类,封装线切割加工路线的工艺数据和操作,由此产生一种与AutoCAD自身提供的标准图形对象同等的线切割加工路线对象。 根据分析,一个线切割加工路线包含以下基本数据:穿线孔位置,加工形态,加工顺序等;所具备的操作有:显示图形,产生自身的加工代码,对数据的查询编辑等。类的定义如下: class CToolPath { public: CToolPath(); //构造函数 ~CToolPath(); //析构函数 double getEntLen(); //返回加工路线的长度
int pathFromCircle(ads_point p_hole, ads_point p_cut, int nModul, int nDir, ads_point pc, double rad, int nDivide, BOOL bOil, double dOilWW, double dOilHH, double dOffset, double dGap); //根据一个圆产生加工路线 int pathFromClosePoly(double nWireRad, ads_point p_hole, ads_point p_cut, int nModul, int nDir, AcDbPolyline *pPline, int nEdge, BOOL bOil, double dOilWW, double dOilHH, double dOffset, double dGap); //根据复线产生加工路线 Acad::ErrorStatus redraw(int nOrder, BOOL bShowTool, int nColorTool, BOOL bShowReal, int nColorReal, BOOL bShowNull, int nColorNull, BOOL bShowOrder, BOOL bShowPoint, BOOL bShowArrow, double dTextHeight, double dArrowLen); //重新显示加工路线
Acad::ErrorStatus reverseDir(); //改变加工方向 Acad::ErrorStatus reverseIO(); //改变加工形态 …… private: Adesk::Int32 m1_nOrder; //加工顺序 Adesk::Int32 m1_nGroup; //加工条件组 Adesk::Int32 m1_nDir; //加工方向(CW/CCW) Adesk::Int32 m1_nModul; //加工型态(模孔/冲块) double m1_dEntLen; //图元长度 double m1_dArea; //图元面积 double m1_dTap; //整体斜度 double m1_dGap; //工艺间隙 double m1_dOffset; //刀具补偿 …… }; 应用面向对象的设计方法,将数据和操作通过类封装起来,使加工路线成为AutoCAD的一种图形对象,各个元素显示成为一个整体,不再是用一堆孤立的图形组成,既可以使其象点、线、圆图形一样对其进行任意的编辑,又可以通过调用对象的成员函数,自动生成自身的加工代码,给使用者和开发者都带来极大的方便。
四.结束语
在AutoCAD里面直接编程,真正实现线切割CAD/CAM一体化,一则能充分利用AutoCAD强大的绘图功能和已有的图形资源,二则减少了中间环节,降低出错率。这样能极大的提高工作效率,提高代码的准确性,降低生产成本,减小劳动强度。 应用面向对象的设计方法,又可以提高程序的执行效率,使系统的维护和升级都变得容易。
|