UG后处理三轴基础篇代码下载



NX(UG)后处理_三轴基础篇大纲及代码.doc

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主轴转速SM03单独占一行或M3M8不在同一行

2.0802当主轴转速改变时重新输出SM

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主轴转速S0等安全报警设置

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.1402pui文件的后处理方法

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

 

 

 


客服中心
联系方式
18011583920
15928168240
- 客服1:祝老师
- 客服2:林老师
晨航数控技术中心公众号
0
×

购物车

商品名称 数量 产品单价 折扣 总计
金额总计:¥23立即结算
seo seo