|
UG后处理三轴基础篇教程大纲及代码 一、UG后处理基础知识 UG后处理课程分销方法 课程分销地址: 1.1UG后处理入门体验 1.0101什么是后处理及其作用 1.0102新建并使用一次后处理 1.2UG后处理构造器各页面简介 1.0201启动页面 1.0202机床页面 1.0203程序和刀轨页面 1.0204NC数据定义页面 1.0205输出设置页面 1.3UG后处理构造器特殊颜色符号介绍 1.0300后处理构造器特殊颜色符号介绍 1.0301蓝色块(视频合成在1.0300中) 1.0302输出条件(视频合成在1.0300中) 1.0303可选输出(视频合成在1.0300中) 1.0304强制输出(视频合成在1.0300中) 1.4UG后处理常用系统变量名 1.0401常放置在程序头和程序尾的变量 NC文件名称:mom_output_file_basename 零件名称:mom_part_name 后处理器名称:mom_event_handler_file_name 程序组名称:mom_group_name 工序名称:mom_operation_name 加工余量:mom_stock_floor mom_stock_part mom_wall_stock 加工预计工时:mom_machine_time 电脑用户名:mom_logname 后处理日期:mom_date
1.0402某参数不知道变量名的查询方法 1.5UG后处理编辑复制粘贴问题 1.0500后处理编辑复制粘贴问题 1.0501复制的代码无法粘贴(视频合成在1.0500中) 1.0502复制别人给的代码总是报警(视频合成在1.0500中) 二、UG后处理各项功能实现 2.1程序头相关设置 2.0101什么是操作头及通常设置 MOM_output_literal "G5.1Q1"
global mom_output_file_basename mom_part_name global mom_event_handler_file_name MOM_output_literal ";NC:$mom_output_file_basename " MOM_output_literal ";Part:$mom_part_name " MOM_output_literal ";Post:$mom_event_handler_file_name "
2.0102有两个操作就输出某信息只有一个操作就不输出 global mom_current_oper_is_last_oper_in_program if {$mom_current_oper_is_last_oper_in_program == NO } { MOM_output_literal "M60" MOM_output_literal "NA 1" MOM_output_literal "G30 P1" MOM_output_literal "TLFON" MOM_output_literal "M289 RP=2" }
2.2操作头相关设置 2.0201操作头输出操作名 global mom_operation_name MOM_output_literal "$mom_operation_name"
2.0202操作头输出加工余量 global mom_stock_floor mom_stock_part global mom_wall_stock mom_stock_part_use global sidestock floorstock if {[info exists mom_stock_part]} { set sidestock $mom_stock_part } elseif {[info exists mom_wall_stock]} { set sidestock $mom_wall_stock } else { set sidestock 0 } if {[info exists mom_stock_floor]} { if {[info exists mom_stock_part_use] && $mom_stock_part_use == 1} { if {[info exists mom_stock_part]} { set floorstock $mom_stock_part } } else { set floorstock $mom_stock_floor } } else { set floorstock 0 } MOM_output_literal "(sidestock =[format "%.3f" $sidestock] \ floorstock =[format "%.3f" $floorstock])"
2.0203操作头强制功能字与操作属性判断 MOM_force once X Y Z F R I J MOM_force once G_motion G_mode G M_spindle S
global mom_current_oper_is_last_oper_in_program if { [ info exists mom_current_oper_is_last_oper_in_program ] && $mom_current_oper_is_last_oper_in_program ==YES } { MOM_output_literal "--------------------YES------------------" }
global first_operation set first_operation 1
global first_operation if { $first_operation == 1 } { MOM_output_literal "---------------我是第一个操作-------------------" set first_operation 0 } else { MOM_output_literal "-------------no--no--no-----------------" }
2.3程序组相关设置 2.0301按程序组一次输出多个程序 2.0302每个程序组只输出一次组名 global tempgroupname set tempgroupname 57205362
global mom_operation_name global mom_group_name tempgroupname if { [info exists mom_group_name] && $mom_group_name != $tempgroupname } { MOM_output_literal " ($mom_group_name) " set tempgroupname $mom_group_name } MOM_output_literal " ($mom_operation_name) "
MOM_force once S M_spindle
2.4加工坐标系G54相关设置 2.0401直接输出G54及自动判断输出G54-G59 2.0402输出G54.1p1等想输出什么就输出什么 global mom_mcsname_attach_opr mom_operation_name MOM_output_literal "$mom_mcsname_attach_opr($mom_operation_name)"
global mom_operation_name MOM_output_literal "($mom_operation_name)" global mom_fixture_offset_value if {[info exists mom_fixture_offset_value]} { if { $mom_fixture_offset_value == 0 } { MOM_output_literal "G54.1P0" }
if { $mom_fixture_offset_value == 1 } { MOM_output_literal "G54.1P1" } if { $mom_fixture_offset_value == 2 } { MOM_output_literal "G54.1P2" } }
2.0403每次换刀输出一次坐标系不换刀不输出 global hastoolchange set hastoolchange 1
global mom_next_oper_has_tool_change hastoolchange if { $mom_next_oper_has_tool_change == YES } { set hastoolchange 1 }
global mom_operation_name MOM_output_literal "($mom_operation_name)" global hastoolchange if {[info exists hastoolchange] && $hastoolchange == 1} { MOM_force once G54 set hastoolchange 0 }
$mom_fixture_offset_value + 53
2.0404换坐标系时输出一次Z轴回零不换坐标不输出 global mom_fixture_offset_value tem_mom_fixture_offset_value set tem_mom_fixture_offset_value $mom_fixture_offset_value
global mom_fixture_offset_value tem_mom_fixture_offset_value if {[info exists tem_mom_fixture_offset_value] } { if { $tem_mom_fixture_offset_value != $mom_fixture_offset_value } { MOM_output_literal "G91 G30 Z0. " MOM_force once G_mode } }
2.5行号相关设置 2.0501行号信息设置 2.0502每个操作头输出一次行号其他行不输出行号 $mom_operation_name
2.0503每次换刀输出一次行号其他行不输出行号 2.0504要求行号单独占一行且在换刀之后的M01之前 global temseq set temseq 1
global temseq MOM_output_literal "N$temseq" MOM_output_literal "M01" incr temseq 1
2.6刀具相关设置 2.0601无刀库的机床不输出换刀指令方法 2.0602输出刀具信息防止未定义刀具类型出错-1 global mom_tool_number mom_tool_name global mom_tool_diameter mom_tool_corner1_radius global mom_tool_flute_length mom_tool_length if {![info exists mom_tool_corner1_radius] } { set mom_tool_corner1_radius 57205362 } MOM_output_literal "(T$mom_tool_number=$mom_tool_name \ D=[format "%.2f" $mom_tool_diameter] \ R1=[format "%.2f" $mom_tool_corner1_radius] \ FL=[format "%.2f" $mom_tool_flute_length] \ L=[format "%.2f" $mom_tool_length]“ unset mom_tool_corner1_radius
2.0602输出刀具信息防止未定义刀具类型出错-2 global mom_tool_number mom_tool_name global mom_tool_diameter mom_tool_corner1_radius global mom_tool_flute_length mom_tool_length global mom_tool_lower_corner_radius mom_tool_type global mom_tool_shank_diameter if {$mom_tool_type == "Milling Tool-T Cutter"} { MOM_output_literal "(T$mom_tool_number=$mom_tool_name \ D=[format "%.2f" $mom_tool_diameter] \ R1=[format "%.2f" $mom_tool_lower_corner_radius] \ ND=[ format "%.2f" $mom_tool_shank_diameter] \ FL=[format "%.2f" $mom_tool_flute_length] \ L=[format "%.2f" $mom_tool_length] ) " } elseif {$mom_tool_type == "Milling Tool-5 Parameters"} { MOM_output_literal "(T$mom_tool_number=$mom_tool_name \ D=[format "%.2f" $mom_tool_diameter] \ R1=[format "%.2f" $mom_tool_corner1_radius] \ FL=[format "%.0f" $mom_tool_flute_length] \ L=[format "%.2f" $mom_tool_length] ) " } else { MOM_output_literal "(undefine tool type message)" MOM_output_literal "(Tool_type:$mom_tool_type )“ }
2.0603换刀前M5M9换刀后M01M3M8但第一把刀不输出M5M9 2.0604每个操作都输出一次换刀不管是否有换刀且避免有换刀时重复输出 global hastoolchange mom_next_oper_has_tool_change if {[info exists mom_next_oper_has_tool_change] \ && $mom_next_oper_has_tool_change == "YES" } { set hastoolchange 0 } else { set hastoolchange 1 }
global mom_operation_name MOM_output_literal "($mom_operation_name)" global hastoolchange if {[info exists hastoolchange] && $hastoolchange == 1 } { MOM_force once T M S M_spindle G G_adjust H PB_auto_tool_change set hastoolchange 0 }
2.0605每个程序组都输出一次换刀信息不管是否有换刀但不是每个操作都输出 global tempgroupname set tempgroupname 57205362
global hastoolchange mom_next_oper_has_tool_change if {[info exists mom_next_oper_has_tool_change] \ && $mom_next_oper_has_tool_change == "YES" } { set hastoolchange 0 } else { set hastoolchange 1 }
global mom_operation_name MOM_output_literal "($mom_operation_name)" global mom_group_name tempgroupname if { [info exists mom_group_name] && $mom_group_name != $tempgroupname } { MOM_output_literal " ($mom_group_name) " set tempgroupname $mom_group_name global hastoolchange if {[info exists hastoolchange] && $hastoolchange == 1 } { MOM_force once T M S M_spindle G G_adjust H PB_auto_tool_change set hastoolchange 0 } }
2.7刀补相关设置 2.070101输出刀补的条件说明 2.070102关于刀补的参数说明 2.070103刀补G40不单独占一行 2.070104刀补G41之后必然有D01 MOM_force once D
2.070105是否输出G41的判断 global mom_cutcom_type mom_tool_cutcom_register if { [info exists mom_cutcom_type] && $mom_cutcom_type != 0 } { MOM_output_literal "D = $mom_tool_cutcom_register " }
2.070106螺旋铣HOLE_MILLING输出刀补的办法 2.070200长度补偿G43H01设置 2.8主轴相关设置 2.0801主轴转速S和M03单独占一行或M3M8不在同一行 2.0802当主轴转速改变时重新输出S和M global temp_spindle_speed mom_spindle_speed set temp_spindle_speed $mom_spindle_speed
global mom_operation_name MOM_output_literal "($mom_operation_name)" global temp_spindle_speed mom_spindle_speed if {[info exists temp_spindle_speed] && \ $temp_spindle_speed != $mom_spindle_speed} { MOM_force once M_spindle S }
global mom_tool_number MOM_output_literal "TOOL CALL \ T$mom_tool_number Z \ S$mom_spindle_speed" MOM_output_literal "M03"
2.0803主轴旋转后暂停3秒再移动工作台 2.9运动类型相关设置 2.0901快速运动G00及线性运动G01设置 2.090201输出圆弧代码与否的区别及无法输出圆弧的原因 2.090202圆弧参数设置说明 2.090203圆弧异常最大最小圆弧设置问题 2.090204圆弧异常IJ模态问题 2.090205圆弧IJ方式输出为R方式及问题 2.090301输出螺旋代码与否的区别及无法输出螺旋代码的原因 2.090302螺旋参数设置说明及螺旋代码K报警处理 2.090303西门子铣螺纹螺距不正确问题 #加入晨航数控技术中心http://www.chskjszx.com编写的代码即可\r set mom_helix_turn_number [expr ($feed_distance/$pitch)] if { $mom_helix_turn_number > 1 } { set mom_helix_turn_number [expr ceil($mom_helix_turn_number-1)] } else { set mom_helix_turn_number 0 }
2.090304海德汉螺旋代码不正确问题 MOM_force once X Y Z MOM_do_template helix_pos
2.090401输出钻孔循环与否的区别及无法输出钻孔循环代码的原因 2.090402不同编程方式对应输出的循环代码及不符合要求时的修改方法 2.090403输出G98G99的选择及G99回退不正确问题 2.090404钻孔循环特殊要求及问题 global G81_first_point set G81_first_point 1
global G81_first_point if { $G81_first_point == 1 } { MOM_suppress once X Y set G81_first_point 0 }
2.090405攻丝循环G84说明及问题-1 2.090405攻丝循环G84说明及问题-2 $mom_cycle_delay
MOM_force once M29 G95 TAP_S TAP_M TAP_F TAP_Q
global mom_current_motion if { $mom_current_motion != "tap_move" } { MOM_suppress once G94 }
2.090406_siemens840d系统CYCLE84攻丝循环设置 global mom_siemens_cycle_o_var1 global mom_siemens_cycle_o_dam global mom_siemens_cycle_o_vrt global mom_cycle_cam global mom_cycle_delay if {[info exists mom_cycle_cam] \ && [info exists mom_cycle_delay] } { set mom_siemens_cycle_o_var1 $mom_cycle_cam set mom_siemens_cycle_o_dam $mom_cycle_delay set mom_siemens_cycle_o_vrt $mom_cycle_delay }
2.090407_heidenhainI530系统CYCL209攻丝循环设置 global mom_cycle_step1 global mom_cycle_delay global dpp_TNC_cycle_step_clearance if {[info exists mom_cycle_delay] } { set mom_cycle_step1 $mom_cycle_delay set dpp_TNC_cycle_step_clearance $mom_cycle_delay } else { set mom_cycle_step1 0 set dpp_TNC_cycle_step_clearance 0 }
2.10进给率相关设置 2.1000进给率相关设置 MOM_force once S M_spindle X Y Z fourth_axis fifth_axis F
MOM_force once F
2.1001每个操作输出一次进给率F (合成在2.1000进给率相关设置中) 2.1002进给率F后面有小数点问题(合成在2.1000进给率相关设置中) 2.1003编程进给过大导致G01变成G00问题(合成在2.1000进给率相关设置中) 2.1004每次G00之后必须重新输出F问题(合成在2.1000进给率相关设置中)
2.11操作结束相关设置 2.1100操作结束相关设置 MOM_output_literal "G91 G28 Z0 " MOM_output_literal “G90 "
global mom_current_oper_is_last_oper_in_program if { [ info exists mom_current_oper_is_last_oper_in_program ] && $mom_current_oper_is_last_oper_in_program ==YES } { MOM_output_literal "-------------YES-----------------" }
global mom_current_oper_is_last_oper_in_program if { [ info exists mom_current_oper_is_last_oper_in_program ] \ && $mom_current_oper_is_last_oper_in_program ==YES } { return 0 } else { return 1 }
2.1101什么是操作结束及其通常设置(合成) 2.1102操作结束Z轴回零(合成) 2.1103判断当前操作是否是最后一个操作(合成) 2.1104每个操作结束都输出M01但程序结束不输出(合成) 2.1105换坐标系后G0定位坐标未输出的问题(合成) 2.12程序尾相关设置 2.1200程序结束相关设置 PB_CMD_check_travel_limits
global mom_sys_max_travel global mom_sys_min_travel MOM_output_literal "( Max Z = [format %.3f $mom_sys_max_travel(2)] \ MIN Z = [format %.3f $mom_sys_min_travel(2)] ) "
global mom_machine_time mom_logname MOM_output_literal "( Cutting Time = [format "%0.1f" $mom_machine_time] Min )" global mom_logname MOM_output_literal "( PC_name = $mom_logname )" set chskjszx [clock format [clock seconds] -format "%Y-%m-%d %H:%M:%S"] MOM_output_literal "( Post Date = $chskjszx )"
2.1201什么是程序结束及其通常设置(合成) 2.1202输出最大加工深度ZMIN坐标到程序尾(合成) 2.1203输出电脑用户名(合成) 2.1204输出加工时间(合成) 2.1205输出后处理日期(合成) 2.13安全保护报警相关设置 2.1301安全保护报警相关设置_报警代码介绍 MOM_display_message <message> <title> <type> [<button1>][<button2>][<button3>] ========================================== MOM_display_message "我们的网站是 www.chskjszx.com" \ "晨航数控技术中心提示" \ "E"
MOM_abort "\n\n 林老师提示:后处理已经终止 \n\n"
2.1302主轴转速S为0等安全报警设置 global mom_spindle_speed mom_operation_name if { $mom_spindle_speed == 0 } { MOM_abort "\n\n 林老师提示:S=0\n \ 操作名为: $mom_operation_name 的主轴转数为0\n\n" }
global mom_tool_number mom_tool_name if {$mom_tool_number == "0" || $mom_tool_number > "30"} { MOM_display_message "刀具名称为:$mom_tool_name 的刀具号设置错误!" \ "晨航数控技术中心提示" \ "E" }
$mom_mcsname_attach_opr($mom_operation_name)
$ mom_next_tool_name
2.14其他杂项技巧设置 2.1401添加后处理到NX系统中 2.1402无pui文件的后处理方法 2.1403后处理简单加密方法 global mom_logname MOM_output_literal "mom_logname $mom_logname" if {$mom_logname != "Administrator" } { MOM_abort "\n\n 您无权使用此后处理,请联系QQ57205362 \n\n" }
三、NX三轴后处理典型案例 3.1三轴Fanuc_0iMD系统后处理制作 G54 G17 G21 G40 G49 G69 G80 G90
$mom_operation_name
MOM_force once G_motion X Y Z I J K
3.2三轴Siemens_840D系统后处理制作 MOM_force once X Y Z F S I J K M_spindle G_mode G_motion
set mom_helix_turn_number [expr ($feed_distance/$pitch)] if { $mom_helix_turn_number > 1 } { set mom_helix_turn_number [expr ceil($mom_helix_turn_number-1)] } else { set mom_helix_turn_number 0 }
MOM_force once G_motion
3.3三轴Heidenhain__I530系统后处理制作 MOM_force once X Y Z MOM_do_template helix_pos
|