基于图形交换文件方式的电火花铣削自动编程系统
<DD>传统的电火花加工主要分为两大类:电火花成型加工(SEDM)和电火花线切割加工(WEDM)。成型加工的关键也是其难点之一是成型电极的制作。工具的设计和制造几乎占总加工时间的一半,成本也较高。多年来,电加工研究人员一直在寻找替代成型电极的方法。电火花铣削(EDM-Mill)正是利用简单形状电极按一定轨迹作成型运动,通过工具电极与工件间的放电进行加工。这样就避免了成型电极的制作,提高了生产率。相应地,它对EDM机床也提出了更高的要求,需要开发专门的数控系统。AutoCAD是目前应用得最广泛的CAD软件。<DD>它不仅具有丰富的二维绘图、编辑命令及较强的三维建模功能。而且提供有线形文件、菜单文件、命令文件等程序设计方法。其灵活性和开放性决定了众多的应用程序选择它作为图形设计、编辑及其前后处理的支撑平台。AutoCAD及其图形格式已成为一种事实上的国际工业标准。另外,AutoCAD可以通过标准的数据格式与其它的CAD系统或CAM系统进行数据交换,这就是“图形交换文件(DrawingeXchangeFile)”,简称为DXF文件。要实现电火花铣削加工CAD/CAM的集成,就需要从这个文件中提取有用的零件信息,并将这些信息转换成电火花铣削机床的数控程序。
<H1><FONT size=2>1 接口程序的设计</FONT></H1>
<DD>DXF文件是ASCⅡ码文本文件,典型的DXF文件由六个节组成:标题节、类节、表节、块节、实体节、对象节。DXF文件包含的信息量极大,但对数控编程有用的是实体节。因此,我们只关心实体节的内容。根据实体节的数据格式,编制相应的接口程序,可提取出图形的几何信息。但是,从DXF文件中得到的起点坐标是最先输入图形的起始点。而电火花铣削加工起始点的设置需要考虑工件应力状态以及对工件加工精度和表面粗糙度的影响两个方面。往往与绘图的起点不一致。为解决这一问题,我们在绘制图形时就在加工起始点旁边加入字符“O”。为便于修改和对DXF文件中的实体重新排序。我们采用双链表结构存放实体坐标值。
<TABLE align=right>
<TBODY>
<TR>
<TD align=middle colSpan=2><FONT size=2><IMG src="http://www.chmcw.com/upload/news/RCL/13220_jy9gty2008719162440.gif"><BR><B>图1 DXF文件接口程序流程简图</B></FONT></TD></TR>
<TR>
<TD align=middle><FONT size=2><IMG src="http://www.chmcw.com/upload/news/RCL/13220_6wf8ya2008719162737.gif"><BR>(a)</FONT></TD>
<TD align=middle><FONT size=2><IMG src="http://www.chmcw.com/upload/news/RCL/13220_w1e5od2008719162747.gif"><BR>(b)</FONT></TD></TR>
<TR>
<TD align=middle colSpan=2><B><FONT size=2>图2 侧面轮廓</FONT></B></TD></TR></TBODY></TABLE>
<DD>接口程序流程图如图1所示。
<H1><FONT size=2>2 加工方向的自动判别</FONT></H1>
<DD>获得零件几何信息后,通过补偿工具半径(圆柱形工具)就可生成工具轨迹。在进行工具半径补偿时,工具中心的偏移方向由轮廓内外特性和加工方向(加工闭环的旋向)决定。轮廓的内外特性在加工时设定,而加工方向须根据轮廓图和工具进给方向来确定。因此,加工方向的判别是解决工具补偿的基础。零件轮廓一般由直线和圆弧组成,因此我们讨论这两种图形组成的平面轮廓工具轨迹的计算。
<DD>将多边形各边当作矢量来看待,矢量方向为走刀方向,各矢量按走刀顺序依次连接。如图1中的M<SUB>1</SUB>M<SUB>2</SUB>、…、M<SUB>7</SUB>M<SUB>8</SUB>、M<SUB>8</SUB>M<SUB>1</SUB>。圆弧轮廓则取起点和终点的连线。图中箭头表示工具走刀方向。对于图2(a)所示图形,各项点均为凸点,判别方法较简单。通过判断任意一个顶点相邻两矢量的叉积即可确定加工闭环的旋向。规定加工闭环逆时针旋转为正,顺时针旋转为负。则当两矢量叉积为正时,加工方向逆时针走向:反之为顺时针走向。但对于图2(b)所示轮廓,这种方法就不行了。我们设计了以下两种判别方法。
<OL>
<LI><B>顶点旋向累积判断法</B> 定义顶点旋向为顶点相邻两矢量的叉积方向。对于任意一个平面图形,其加工方向与各顶点旋向有关。若旋向为正的顶点数多于为负的顶点数,加工方向为正:反之为负。可以验证,这种方法对于任何平面图形都是有效的。但顶点数较多时,运算量较大。
<LI><B>极点判别法</B> 定义多边形的极点为x坐标最小的顶点。通过判断极点的旋向即可得出加工闭环方向。具体说来,首先在双链表中选出极点和相邻两矢量(若有多个极点则任选一个),计算其叉积。叉积为正,加工方向为正(逆时针):反之加工方向为负(顺时针)。极点判别法与多边顶点数无关,所以计算量较小。</LI></OL>
<H1><FONT size=2>3 工具轨迹的计算</FONT></H1>
<DD>根据前面判断出的加工方向,就可计算出工具轨迹。设工具半径为<FONT face=symbol>d</FONT>r<SUB>工</SUB>,单边放电间隙为<FONT face=symbol>d</FONT>,则工具中心的偏移量b=<FONT face=symbol>d</FONT>+r<SUB>工</SUB>。
<OL>
<TABLE align=right>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=0 width=210 bgColor=#e5ebba borderColorLight=#006600 border=1>
<CAPTION><FONT size=2><STRONG>表1 直线轮廓时的符号选取</STRONG></FONT></CAPTION>
<TBODY>
<TR>
<TH><FONT size=2>部位</FONT></TH>
<TH><FONT size=2>加工方向</FONT></TH>
<TH><FONT face=symbol size=2>a</FONT></TH>
<TH><FONT size=2>符号</FONT></TH></TR>
<TR align=middle>
<TD rowSpan=6><FONT size=2>外轮廓</FONT></TD>
<TD rowSpan=3><FONT size=2>负</FONT></TD>
<TD><FONT size=2>0≤,<<FONT face=symbol>p</FONT>/2</FONT></TD>
<TD><FONT size=2>取“+”</FONT></TD></TR>
<TR align=middle>
<TD><FONT size=2><FONT face=symbol>p</FONT>/2≤,<3<FONT face=symbol>p</FONT>/2</FONT></TD>
<TD><FONT size=2>取“-”</FONT></TD></TR>
<TR align=middle>
<TD><FONT size=2>3<FONT face=symbol>p</FONT>/2≤,≤2<FONT face=symbol>p</FONT></FONT></TD>
<TD><FONT size=2>取“+”</FONT></TD></TR>
<TR align=middle>
<TD rowSpan=3><FONT size=2>正</FONT></TD>
<TD><FONT size=2>0≤,<<FONT face=symbol>p</FONT>/2</FONT></TD>
<TD><FONT size=2>取“-”</FONT></TD></TR>
<TR align=middle>
<TD><FONT size=2><FONT face=symbol>p</FONT>/2≤,<3<FONT face=symbol>p</FONT>/2</FONT></TD>
<TD><FONT size=2>取“+”</FONT></TD></TR>
<TR align=middle>
<TD><FONT size=2>3<FONT face=symbol>p</FONT>/2≤,≤2<FONT face=symbol>p</FONT></FONT></TD>
<TD><FONT size=2>取“-”</FONT>
<TR align=middle>
<TD rowSpan=6><FONT size=2>内轮廓</FONT></TD>
<TD rowSpan=3><FONT size=2>负</FONT></TD>
<TD><FONT size=2>0≤,<<FONT face=symbol>p</FONT>/2</FONT></TD>
<TD><FONT size=2>取“-”</FONT></TD></TR>
<TR align=middle>
<TD><FONT size=2><FONT face=symbol>p</FONT>/2≤,<3<FONT face=symbol>p</FONT>/2</FONT></TD>
<TD><FONT size=2>取“+”</FONT></TD></TR>
<TR align=middle>
<TD><FONT size=2>3<FONT face=symbol>p</FONT>/2≤,≤2<FONT face=symbol>p</FONT></FONT></TD>
<TD><FONT size=2>取“-”</FONT></TD></TR>
<TR align=middle>
<TD rowSpan=3><FONT size=2>正</FONT></TD>
<TD><FONT size=2>0≤,<<FONT face=symbol>p</FONT>/2</FONT></TD>
<TD><FONT size=2>取“+”</FONT></TD></TR>
<TR align=middle>
<TD><FONT size=2><FONT face=symbol>p</FONT>/2≤,<3<FONT face=symbol>p</FONT>/2</FONT></TD>
<TD><FONT size=2>取“-”</FONT></TD></TR>
<TR align=middle>
<TD><FONT size=2>3<FONT face=symbol>p</FONT>/2≤,≤2<FONT face=symbol>p</FONT></FONT></TD>
<TD><FONT size=2>取“+”</FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=0 width=210 bgColor=#e5ebba borderColorLight=#006600 border=1>
<CAPTION><FONT size=2><STRONG>表2 圆弧轮廓时工具的补偿</STRONG></FONT></CAPTION>
<TBODY>
<TR>
<TH><FONT size=2>部位</FONT></TH>
<TH><FONT size=2>圆弧方向</FONT></TH>
<TH><FONT size=2>工具轨迹<BR>圆弧半径</FONT></TH></TR>
<TR align=middle>
<TD rowSpan=2><FONT size=2>内轮廓</FONT></TD>
<TD><FONT size=2>顺圆</FONT></TD>
<TD><FONT size=2>r-b</FONT></TD></TR>
<TR align=middle>
<TD><FONT size=2>逆圆</FONT></TD>
<TD><FONT size=2>r+b</FONT></TD></TR>
<TR align=middle>
<TD rowSpan=2><FONT size=2>外轮廓</FONT></TD>
<TD><FONT size=2>顺圆</FONT></TD>
<TD><FONT size=2>r+b</FONT></TD></TR>
<TR align=middle>
<TD><FONT size=2>逆圆</FONT></TD>
<TD><FONT size=2>r-b</FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><B>
<LI>直线轮廓</B>
<DD>对于直线轮廓,需将直线沿走刀方向的法线方向平移距离b,已知直线两端点A(x<SUB>a</SUB>,y<SUB>a</SUB>)、B(x<SUB>b</SUB>,y<SUB>b</SUB>),可得直线方程y=kx+c
<TABLE>
<TBODY>
<TR>
<TD rowSpan=3><FONT size=2>式中k=</FONT></TD>
<TD><FONT size=2>y<SUB>b</SUB>-y<SUB>a</SUB></FONT></TD>
<TD rowSpan=3><FONT size=2>,c=</FONT></TD>
<TD><FONT size=2>x<SUB>b</SUB>y<SUB>a</SUB>-x<SUB>a</SUB>y<SUB>b</SUB></FONT></TD></TR>
<TR bgColor=#006600 height=1>
<TD><FONT size=2></FONT></TD>
<TD><FONT size=2></FONT></TD></TR>
<TR>
<TD><FONT size=2>x<SUB>b</SUB>-x<SUB>a</SUB></FONT></TD>
<TD align=middle><FONT size=2>x<SUB>b</SUB>-x<SUB>a</SUB></FONT></TD></TR></TBODY></TABLE>平移后直线方程为y=kx+c',c'可由下式计算出
<TABLE width=350>
<TBODY>
<TR>
<TD align=middle><FONT size=2>c'=c-f(1+k<SUP>2</SUP>)<SUP>½</SUP></FONT></TD>
<TD width=10><FONT size=2>(1)</FONT></TD></TR></TBODY></TABLE>式中正负号根据加工方向和轮廓的内外特性来选取。设矢量与X轴的夹角为<FONT face=symbol>a</FONT>,表1为不同情况下的取值。<B></DD>
<LI>圆弧轮廓</B>
<DD>圆弧轮廓的补偿较直线简单,只涉及圆弧半径r的增大或减小。首先要判断圆弧方向。从DXF文件我们可以获得圆弧的起点和终点坐标、圆弧半径以及起始角和终止角,这样可得到圆弧的起点和终点处的切矢,起点切矢与终点切矢的叉积决定了圆弧的方向。判断规则是:叉积为正,逆圆:叉积为负,顺圆。判断出圆弧方向后,利用表2进行工具轨迹补偿。</DD></LI></OL>
<DD>经过处理后,便完成了工具轨迹的自动补偿。但在两实体相交形成尖角时,还需对尖角进行过渡处理,避免尖角处工具产生的干涉或工具轨迹不连续现象。我们采用圆弧过渡的方法对尖角进行预处理,解决了这一问题。
<DD>根据最后得到的工具轨迹,经过后置处理即可生成数控代码。
<H1><FONT size=2>4 结论</FONT></H1>
<DD>AutoCAD输出的DXF文件为电火花铣削加工的CAD/CAM集成提供了基础。本文根据DXF文件结构,开发了提取实体信息的接口软件,并提出了两种判别加工方向的方法。它们都能有效地判断出平面图形的旋向。根据加工方向和轮廓的内外特性,即可计算出工具轨迹。这就为最终数控代码的生成打下了基础。利用本文所述方法,可以迅速、可靠地获得工具轨迹。但是,按照本文方法得到的工具轨迹是理论轨迹,没有考虑加工过程中工具的损耗。要实现电火花铣削加工CAD/CAM 的集成,并达到较好的工艺效果,还要解决加工过程中工具损耗动态补偿的问题。 </DD>
页:
[1]