[UG后处理] UG NX后处理构造器定制UG后处理常用代码分享下载

[复制链接]
查看18 | 回复0 | 2020-3-19 11:43:16 | 显示全部楼层 |阅读模式
最近在学习制作三轴UG后处理,整理了一些常用的后处理语句,和大家分享一下啊;
有不对的地方还望大家多多指点。
FANUC程序预读 添加引导号里的代码
MOM_output_literal "G05.1 Q1"
程序名称
$mom_operation_type
后处理文件位置图档名称,生成文件时间
global mom_date
global mom_part_name
MOM_output_literal "(Part_name: $mom_part_name)"
MOM_output_literal "(Date: $mom_date)"

刀具名称,刀具规格尺寸
global  mom_tool_name
global  mom_tool_diameter
global  mom_tool_corner1_radius
MOM_output_literal "(ToolName=$mom_tool_name  D=[format "%.2f" $mom_tool_diameter] R=[format "%.2f" $mom_tool_corner1_radius])"

加工余量(侧面,底面)
global mom_stock_part
global mom_stock_floor
MOM_output_literal "(stock_part: [format "%.2f" $mom_stock_part])"
if {[info exist mom_stock_floor]} {MOM_output_literal "(stock_floor: [format "%.2f" $mom_stock_floor])"} else {MOM_output_literal "(stock_floor: [format "%.2f" 0])"}

安全高度和加工深度
加工时间等
在用户命令里新建一个 proc_CMD_before_motion  (必须是这个名字)
global mom_pos
global max_z min_z max_x min_x max_y min_y
        if {![info exists min_z]}  {
                    set min_z $mom_pos(2)
        } elseif { $mom_pos(2) < $min_z} {
        set min_z $mom_pos(2)
        }
        if {![info exists max_z]}  {
        set max_z $mom_pos(2)
        } elseif { $mom_pos(2) > $max_z} {
        set max_z $mom_pos(2)
        }

        if {![info exists min_x]}  {
                    set min_x $mom_pos(0)
        } elseif { $mom_pos(0) < $min_x} {
        set min_x $mom_pos(0)
        }
        if {![info exists max_x]}  {
        set max_x $mom_pos(0)
        } elseif { $mom_pos(0) > $max_x} {
          set max_x $mom_pos(0)
        }

        if {![info exists min_y]}  {
                    set min_y $mom_pos(1)
         } elseif { $mom_pos(1) < $min_y} {
         set min_y $mom_pos(1)
         }
         if {![info exists max_y]}  {
         set max_y $mom_pos(1)
         } elseif { $mom_pos(1) > $max_y} {
           set max_y $mom_pos(1)
         }

然后在程序里 定制命令
global max_z min_z
set zmax [string trimright [format %.4f $max_z] 0]
set zmin [string trimright [format %.4f $min_z] 0]
MOM_output_literal  "{MAXZ = $zmax , MINZ = $zmin}"
global mom_machine_time
MOM_output_literal "(Total Operation Machine Time : [format "%.2f" $mom_machine_time] min )"
MOM_output_literal "(姓名 + 联系方式等)"

再新建一个proc PB_CMD_command 添加
global max_z min_z max_x min_x max_y min_y
set zmax [string trimright [format %.4f $max_z] 0]
set zmin [string trimright [format %.4f $min_z] 0]
set xmax [string trimright [format %.4f $max_x] 0]
set xmin [string trimright [format %.4f $min_x] 0]
set ymax [string trimright [format %.4f $max_y] 0]
set ymin [string trimright [format %.4f $min_y] 0]
MOM_output_literal  "{MAXZ = $zmax , MINZ = $zmin}"
MOM_output_literal  "{MAXZ = $xmax , MINZ = $xmin}"
MOM_output_literal  "{MAXZ = $ymax , MINZ = $ymin}"
然后在程序尾巴 添加command OK
X,Y,Z,A,B/C的对应变量,仅供参考
x==??mom_pos(0)
Y==??mom_pos(1)
Z==??mom_pos(2)
A==??mom_out_angle_pos(0)
B/C==??mom_out_angle_pos(1)

在S=0   F=250 时报警
添加 定制命令 PB_CMD_custom_command_baojing

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

7

主题

11

帖子

208

积分

中级会员

Rank: 3Rank: 3

积分
208