去掉钻孔循环结束时后面的M9和M59,只须将下面的定义
define block cycle end if ( cycledwell = 0 ) N ; G4 80 ; M2 9 ; M3 59 end if
if ( cycledwell > 0 ) N ; G4 05 =C ; \ end if end define
改为
define block cycle end if ( cycledwell = 0 ) N ; G4 80 end if
if ( cycledwell > 0 ) N ; G4 05 =C ; \ end if
end define
有的机床当程序结束时执行G49或者H00时(前提是不再有Z座标),机床不运动(补偿刀长),而有的机床会运动补偿刀长到上一个Z座标处,这和机床参数的设定有关;因此建议,在程序的结尾不要执行G49或者H00
注意:ductpost后置opt文件每行字数有限制
说明1:retract at angular limit = true 控制5轴机床当程序角度超过机床极限时,是否抬刀
到相对安全的高度,然后下刀继续加工
withdrawal amount = 100.0 与retract at angular limit = true结合
使用,沿轴向相对抬刀100.0毫米。
go home output = true(程序终点摆角回零输出)
FromX,FromY,FromZ刀具开始点坐标
说明2: N ; rapid =C ; G4 54 =C ; x coord FromX =C ; y coord FromY =C 中的=C表示输出当前值,而不管是否是模态值
说明3:编写多轴后置时必须注意,DUCTPOST内置缺省的指令可能不能正常输出主轴旋转、冷却输出、 刀具长度补偿,这时需要在后置中定义 define codes
spindle on cw = M1 3 spindle on cc = M1 4 spindle off = M1 5
spin coolant on cw = M1 13 spin coolant on ccw = M1 14 coolant on mist = M2 7 coolant on = M2 8 coolant on flood = M2 8 coolant off = M2 9 end define
spindle output = ( 1 1 1 1 ) coolant output = ( 1 1 )
并且在换刀定义块中定义有关刀具长度补偿,比如像下面这样 define block tool change first
NT ToolNum ; OP ; change tool ; T ToolNum
N ; G5 90 ; G3 54 ; G1 0 ; X FromX ; Y FromY N ; G6 43 ; Z FromZ =C ; H ToolNum end define
define block tool change
NT ToolNum ; change tool ; T ToolNumber
N ; G5 90 =C ; G3 54 =C ; G1 0 ; X FromX =C ; Y FromY =C N ; G6 43 ; Z FromZ =C ; H ToolNum end define
注:在快进定义中也可以加入刀具长度补偿信息 define block move rapid
N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; T ; H ; S ;
M1 ; M2
end define
1,特殊字符的输出 1。字符“\\”
在ductpost中是无法直接输出字符“\\”的 比如: \ 输出结果是CALL PGM TNC:WORKDATUM.H
要想输出正确的结果,必须用“\\\\\\”(2个\\以上) 比如: \ 输出结果是CALL PGM TNC:\\WORK\\DATUM.H
2 五轴后置快进速率特殊控制(G00,Powermill中默认显示为红色) 五轴后置快进速率特殊控制(G00,Powermill中默认显示为红色)
在5轴程序中,为了安全期间有时候需要把快进速率G00用G01加F进给值代替,最快捷的方法如下 1.在后置中加入 output rapids in multiaxis = false 2.设置 rapid feedrate = 80000.0
也就是说这样设置的5轴后置,所有的G00都被G01F80000代替
大家有时候发现后置中分明设置了快进速率为G00,而输出的NC程序中没有G00就是这个原因(这是PowerMill多轴后置的默认设置),如果需要快进速率以常规的G00输出,需要将
output rapids in multiaxis = false 改为 output rapids in multiaxis = true 并删除 define block move rapid 定义块中关于进给F的设定(feedrate per minute等) 当然以上的情况可以通过多种方法实现,这是最快捷的方法
3如果对输出的转速有最大转速限制,可以通过在后处理合适位置加入如下判断,比如,如果转速超过15000转
则将转速设定为15000
if ( ToolSpeed[ToolNum] > 15000 ) \else
\end if