最初,我们编线切割程序是在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 为加工指令。
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
}
}
}
其他部分略。