分享好友 数控技术首页 数控技术分类 切换频道

UG 3B格式线切割后置处理的开发

2018-10-20 00:00510

    一、前言

    线切割能加工各种窄槽、小凹圆角,对硬度不敏感、特别适合淬火后加工,并且成本低、操作方便,故在加工行业中是一种不可缺少的工艺手段。近年来线切割机床也迅速发展,控制系统也逐渐与世界接轨,G代码的控制系统逐渐成为主流,但在一些低端产品,尤其是老式机床中,3B格式的控制系统却几乎一统天下,我们厂是汽车模具专业生产厂,目前就有多台老式快走丝线切割机床。虽然我厂也有先进的慢走丝机床,但因快走丝机床加工成本低,对环境要求也低,所以一直是线切割工段的主力。

    最初,我们编线切割程序是在autocad中用一个二次开发程序编制,后来单位上了UG,但UG常用的后置处理没有3B代码格式,我们就把UG的线条转换到  Auto CAD中,常常因为两种软件衔接不好而反复调整,费时费力,我们斥巨资购买的UG软件无法发挥其做线切割的强大功能。后来随着对UG的深入了解,发现也能处理出3B格式来,下面就介绍一下,希望能对大家有所启迪。

    二、3B代码的编程规则

    1.3B代码的格式为:B x   B y  B j  G   Z ,B为分割符号,x,y,j为数值,以微米为单位。j为计数长度,G  为计数方向,Z 为加工指令。

    2.加工指令共有12种。

    a.加工直线时,以起点为坐标原点,终点在坐标轴上时,x、y值为零,计数长度j为线段长度,按X+,X-,Y+,Y-,四半轴计数方向与加工指令分别为,GX L1,GY L2,GX L3,GY L4。
    b.加工直线时,以起点为坐标原点,终点在各象限内时,x,y为终点相对起点坐标值,可同比例放大或缩小,计数长度j为线段在计数方向的投影长度,按终点在1、2、3、4象限,加工指令分别为L1、L2、L3、L4。各象限以45度线分割后,终点贴近X轴,则计数方向为GX,反之为GY。
    c.加工圆弧时,加工圆弧时x,y为起点相对于圆心的坐标值,圆弧起点相对圆心在1、2、3、4象限时,顺时针圆弧分别为SR1、SR2、SR3、SR4,逆时针圆弧分别为NR1、NR2、NR3、NR4。各象限以45度线分割后,终点贴近X轴,则计数方向为GY,反之为GX。

   例:

图1

    三、分析

    UG 在后置处理为G代码程序时有直线(G01)、顺时针圆弧(G02)、逆时针圆弧(G03)几种格式,如果能编写一段代码将直线及圆弧按3B格式分类计算,那么处理成3B格式就容易了。

    为方便介绍,将每一步的终点坐标为X、Y,起点也就是上一步终点为X0、Y0,圆心点Xc,Yc。

图2

    区域划分:
    1.直线运动时,终点相对于起点在X+半轴的条件为:X>X0,Y=Y0,计数长度为:|X-X0|,指令为:GX L1;
    同理X负半轴: 条件X<X0,Y=Y0, 计数长度|X-X0|,GX L3;
    Y正半轴: 条件X=X0,Y>Y0, 计数长度|Y-Y0|,GY L2;
    Y负半轴: 条件X=X0,Y<Y0, 计数长度|Y-Y0|,GY L4;

    2.直线运动不在坐标轴上时,按如图2所示划分为8区域:
    1/8区:条件X>X0,Y>Y0,|X-X0|>=|Y-Y0|,计数长度|X-X0|,指令GX L1;
    2/8区:条件X>X0,Y>Y0,|X-X0|<|Y-Y0|,计数长度|Y-Y0|,指令 GY L1;
    3/8区:条件X<X0,Y>Y0,|X-X0|<|Y-Y0|,计数长度|Y-Y0|,指令 GY L2;
    4/8区:条件X<X0,Y>Y0,|X-X0|>=|Y-Y0|,计数长度|X-X0|,指令GX L2;
    5/8区:条件X<X0,Y<Y0,|X-X0|>=|Y-Y0|,计数长度|X-X0|,指令GX L3;
    6/8区:条件X<X0,Y<Y0,|X-X0|<|Y-Y0|,计数长度|Y-Y0|, 指令GY L3;
    7/8区:条件X>X0,Y<Y0,|X-X0|<|Y-Y0|,计数长度|Y-Y0|, 指令GY L4;
    8/8区:条件X>X0,Y<Y0,|X-X0|>=|Y-Y0|,计数长度|X-X0|,指令GX L4;
 
    3.圆弧划分较为麻烦:
    按方向,分为顺时针,逆时针;按起点象限分为1、2、3、4象限,按终点分图2所示的8区域。下面仅以逆时针,起点在1象限的圆弧加以分析:
    1/8区:(优弧)条件Y>Y0,计数长度|Y-Y0|,指令GY NR1;
        (劣弧)条件Y<=Y0,计数长度4R-|Y-Y0|,指令GY NR1;

    2/8区:(优弧)条件X<X0,计数长度|X-X0|,指令GX NR1;
        (劣弧)条件X>=X0,计数长度4R-|X-X0|,指令GX NR1;
    3/8区:计数长度|X-X0|,指令GX NR1;
    4/8区:计数长度2R-|Y0-Yc|-|Y-Yc|,指令GY NR1;
    5/8区:计数长度2R-|Y0-Yc|+|Y-Yc|,指令GY NR1;
    6/8区:计数长度2R+|X0-Xc|-|X-Xc|,指令GX NR1;
    7/8区:计数长度4R-|X0-Xc|-|X-Xc|,指令GX NR1;
    8/8区:计数长度4R-|Y0-Yc|-|Y-Yc|,指令GY NR1;
    起点在2、3、4象限的圆弧以及顺时针圆弧同理。

    四、实施

    先看看UG后处理的构成,UG后处理主要由两个文件组成,*.DEF与*.TCL。前者主要定义了一些格式,后者主要定义了一些运算,我们所要加的程序代码就在后者中。

    打开*.TCL,找到程序段proc MOM_linear_move { } { ……},直线运动的运算就在该段内运算,圆弧运动在程序段proc MOM_circular_move { } { ……}中。UG后处理中定义了一些变量,mom_prev_pos为前一点坐标,即起点坐标,mom_pos为终点坐标,mom_pos_arc_center为圆弧运动的圆心点坐标,mom_arc_radius为圆弧半径值,mom_arc_direction为圆弧旋转方向,等等,可从post builder 中查得。

    由于UG在运算时按允差计算,并进行四舍五入,在判断相等时不要用相等,而是判断差值小于允差。

    有了这些准备,就可以动手编程序了。当然也可以利用post builder做一个用户自定义指令,但核心内容不变,仍需自己编写。限于篇幅,仅示例直线运动的一部分。
    global  mom_l_code   自定义变量其值为:1,2,3,4
    global  mom_gxy      自定义变量其值为:X,Y
    global  mom_ba     自定义变量,第一个B 的值,即第二部分介绍的x值
    global  mom_bb  自定义变量,第二个B 的值,即y值
    global  mom_bc      自定义变量,计数长度,即j值
    global  mom_pos  终点变量
    global  mom_prev_pos 起点变量    
        set mom_ba abs($mom_pos(0)-$mom_prev_pos(0))
        set mom_bb abs($mom_pos(1)-$mom_prev_pos(1))        
        if {abs($mom_pos(1)-$mom_prev_pos(1)) < 0.001} {
        if {[EQ_is_gt   $mom_pos(0)  $mom_prev_pos(0)]} {
    #X正半轴
        set mom_ba 0
        set mom_bb 0
        set mom_bc $mom_pos(0)-$mom_prev_pos(0)
         set mom_gxy X
        set mom_l_code 1
            } else  {
    # X负半轴
        set mom_ba 0
        set mom_bb 0
        set mom_bc $mom_pos(0)-$mom_prev_pos(0)
        set mom_gxy X
        set mom_l_code 3
            }
        } elseif  {abs($mom_pos(0)-$mom_prev_pos(0)) < 0.001} {
        if {[EQ_is_gt  $mom_pos(1)  $mom_prev_pos(1)]} {
    # Y正半轴
        ……
        } else {
    # Y 负半轴
        ……
            }
        }  elseif  {[EQ_is_gt $mom_pos(1)  $mom_prev_pos(1)]}  {
        if {[EQ_is_gt  $mom_pos(0)  $mom_prev_pos(0)]} {
        if{abs($mom_pos(0)-$mom_prev_pos(0))> abs($mom_pos(1)-$mom_prev_pos(1))} {
    # 终点在第1/8区域
        set mom_bc abs($mom_pos(0)-$mom_prev_pos(0))
        set mom_gxy X
        set mom_l_code 1
            } else  {
    # 终点在第2/8区域
        set mom_bc abs($mom_pos(1)-$mom_prev_pos(1))
        set mom_gxy  Y
        set mom_l_code 1
            }
        } else {
    if{abs($mom_pos(1)-$mom_prev_pos(1))>abs($mom_pos(0)-$mom_prev_pos(0))}{
    # 终点在第3/8区域
            ……   
    # 终点在第8/8区域
            } else  {
            set mom_bc abs($mom_pos(0)-$mom_prev_pos(0))
            set mom_gxy  X
            set mom_l_code 4
            }
            }
            }       
    其他部分略。

    五、结束语

    如图2所示的图形由ug后处理出的程序如下所示,我厂的线切割需手工输入,为方便程序阅读,加入了坐标值,如果为自动传输,略加修改即可。

举报
收藏 0
打赏 0
轻松提高数控机床精度
随着我国经济的飞速发展,数控机床作为新一代工作母机,在机械制造中已得到广泛的应用,精密加工技术的迅速发展和零件加工精度的

0评论2025-01-04313

加工中心刀具长度补偿怎么用?
在数控加工中,刀具长度补偿是一种重要的措施,用于消除机床变形、热变形等因素引起的误差,保证加工精度,从而提高培训效率,减

0评论2024-12-18400

加工中心主轴定位角度怎么调?
  在数控加工领域,加工中心主轴的定位角度是影响加工精度和效率的重要因素之一。正确调整主轴的定位角度可以提高加工质量,减

0评论2024-12-11496

简述机器人加装电主轴就选Kasite 4060ER-S的理由
  近年来,随着科技的不断发展,机器人作业已经渗透到各个领域,尤其在工业制造领域,更加随处可见。高精密切割、铣削、雕刻、

0评论2024-05-20707

机器人主轴怎么选?Kasite高速电主轴满足你的需求
  机器人发展到现在越来越受到人们的欢迎和重视,现在很多传统行业都在生产作业中引入了工业机器人,随着机器人的改进和优化,

0评论2023-10-231208

机械臂加装2.2KW大力矩电主轴,就选MSIY-80电主轴
机械臂想加装大力矩电主轴,用于铸钢等硬质材料去毛刺,铣削等加工,可以考虑MSIY-80电主轴,外径80mm,重量4.8公斤,可搭配轴向或径向浮动刀柄配套使用。

0评论2023-08-261203

每天早上打开数控机床时有没有必要热机?
工厂使用精密数控机床(加工中心、电火花、慢走丝等机床)进行高精密加工,你是否有这样的经验:每天早上开机进行加工,首件的加

0评论2023-08-151093