程序起始序列:用来定义程序头的输出的语句,程序头是所有事件之前的
工序起始序列:用于定义操作开始到第一个切削运动之间的事件
刀径:用于定义机床控制事件以及加工运动钻循环等事件
①机床控制:主要用于定义进给、换刀、切削液、尾座、夹紧等事件,也可以用于模式改变如输出是绝对或相等。
②运动:用于定义后处理如何处理刀位轨迹源文件中的goto语句。
③现成循环:用于定义执行孔循环时,系统是如何处理这类事件的。并定义其输出格式
④杂项:用于定义子操作刀轨的开始和结束事件。
工序结束序列:用于定义退刀动作到操作结束之间的事件。
程序结束序列:用于定义程序结束是需要输出的程序行一个NC程序只有一个程序结束事件
/**************************************************************/
指令含义:
MOM_set_seq_off:关闭输出行号
MOM_set_seq_on:启用输出行号
NX11.0删除不要的后处理器
在O:\Program Files\Siemens\NX 11.0\MACH\resource\postprocessor里=里面找到template_post.dat并打开,删除你不要的后处理程序段,重启NX即可。
输出坐标
工序中设置[MSC];[指定MCS];[细节];[夹具偏置]0代表G53,1代表G54,以此类推
,后处理器设置【刀轨】【运动】【快速移动】添加块【G】【G MCS Fixture Offset(G54 ~ G59)】
安装后处理器
编程环境,菜单-》工具-》安装后处理器
定制自己的后处理器
我的后处理器
1,打开后处理构造器,
【机床设置】单位改成毫米,其余默认
程序开始
定制命令
global mom_date
MOM_output_literal "(Create time: $mom_date)"
global mom_part_name
MOM_output_literal "(Part Name: $mom_part_name)"
MOM_output_literal "\n\n\n"
【工序起始序列】【刀轨开始】
定制命令
global mom_spindle_speed
global mom_operation_name
if { $mom_spindle_speed == 0 } {
MOM_abort "\n\n工序名为:$mom_operation_name,主轴转速设置为0\n张海霖(19978519719)温馨提示:请重新设置转速!\n\n"
}
MOM_output_literal "(Process Name:$mom_operation_name)"
G40 G17 G49 G69 G80 G21 G94
【工序结束序列】【刀轨结束】
M05
M09
G91G29Z0.
定制命令
global mom_operation_name
MOM_output_literal "(End of $mom_operation_name)\n\n\n";
程序结尾
G91G28Y0.
M30
2,程序输出G坐标系and打开切削液
首先在ug编程时在MCS_MILL中【机床坐标系】【细节】【装夹偏置】【0代表53,1代表G54,以此类推,到G59】。修改后处理器【程序和刀轨】【刀轨】【快速运动】中添加【G MSC Fixture Offset (G54-G59)】,强制输出。
3,钻孔循环加入,自动加入G98/G99,打开后处理构造器,【程序和刀轨】【刀颈】【现成循环】【公共参数】加入【G return - cycle return auto/manual】,模态指令不用强制输出。
4,转速为0,中断后处理并报警
【程序和刀轨】【程序起始序列】添加【定制命令】
global mom_spindle_speed
global mom_operation_name
if { $mom_spindle_speed == 0 } {
MOM_abort "\n\n工序名为:$mom_operation_name,主轴转速设置为0\n张海霖(19978519719)温馨提示:请重新设置转速!\n\n"
}
5,攻牙M29S Speed
【程序和刀轨】【刀颈】【现成循环】【攻丝】(添加Text M29,记得另起一行,添加 S Speed)
6,自动换刀
G91G28Z0.
T M06
【定制命令】//查看下文
S M03
M08
输出刀具信息,
【程序和刀轨】【工序起始序列】【自动换刀】在【T M06】下面添加定制命令
global mom_tool_name
global mom_tool_diameter
global mom_tool_corner1_radius
MOM_output_literal "(TOOL=$mom_tool_name,D[format "%.2f" $mom_tool_diameter],R[format "%.2f" $mom_tool_corner1_radius])"
7,两个工序同一把刀,不设置可能会撞机,需要启用工序的手动换刀教程传送门
先把手动换刀的所有块删除,在手动换刀中添加定制命令
PB_auto_tool_change //执行自动换刀的指令
MOM_force once H G_adjust//输出刀长补正
当多工序使用同一把刀具,除了第一个工序,其余工序都要勾选手动换刀选项,否则可能会撞机。
8,刀具半径补偿
删除掉【程序和刀轨】【刀径】【机床控制】【刀具补偿关闭】,把G40,删除掉,否则G40会单独一行输出。删除掉NX也会输出G40.、
知识点:
检查相同刀具号
global mom_tool_number mom_tool_name
global tool_seq tool_name_array tool_num_array
if {![info exists tool_seq]} {
set tool_seq 0
}
set tool_name_array($tool_seq) $mom_tool_name
set tool_num_array($tool_seq) T[format "%.2d" $mom_tool_number]
set i 0
while {$i<$tool_seq} {
if {$tool_num_array($i)=="T[format "%.2d" $mom_tool_number]"} {
incr tool_seq -1
if {![string equal $tool_name_array($i) $mom_tool_name]} {
set msg [MOM_display_message "刀具名称 $mom_tool_name 与 $tool_name_array($i) 使用了相同刀具号" 小张温馨提示 I 继续输出 中止后处理]
switch $msg {
1 {set offset_flag 1}
2 {MOM_abort \n\n已中止后处理程序\n\n}
}
}
}
incr i
}
incr tool_seq