UG 后处理(后面有点UG与VERICUT)要适当的提高自己的英语水平
1.0.0:打开后处理工具卡
1.2.0:进入创建后处理文件页面
1.2.1 创建一个新的后处理文件这里输入文件名(英文)
此区域Inches 英制单位Millimeters 公制设定
此区域轴选项3-轴4-轴或5轴这里只讲解3轴通用设定此区域为机床类型设定Generic 通用的Library 浏览自带机床User’s 用户自定义
此区域描述你的后处理单只能输入英文
选择完自己需要的格式后处理单击OK 进入下一步
这一选项进行修改你的程序头程序尾中间换刀程序衔接道具号道具属性显示的添加进行讲解
此选项为程序头选项此选项为增加程序条命令点击它可以拖入程
序条就像这样这里的垃圾桶通样你不想要的此条可以删除
下面讲解通用的编程设置下面图片是默认的设置
此选项为N码关闭此选项为N码开启一般都是把这条此选项需要更改改成你需要的G40 G49 G80 G90既可单击这条词条就可修改进入下一画面把不需要的拖入垃圾桶
通过此选项里的代码你可以找到你想要的改好后点击OK既可
安全起见最好加入个Z轴回零命令拉入一个词条框
添加一个新的词条框如果你想把词条框放在哪个词条框的周围只要看好词条对应放置位置变白既可松掉鼠标下面进入新词条选项里点击这里可以加入你要的词条
而我们需要的是 G00 G91 G28 Z0 命令可以用文本形式输入就是这里选择第二个选项“TEXT”文本点击 Add word 拉入这个区域同样变白放置输入你要的文本G00 G91 G28 ZO 点击OK 既可程序头设定完成就是这个效果看下图如果需要加入O号
下面编辑你的换刀过程点击中文意思就是操作开始步骤
在这里你可以加入你需要的道具信息 N号的开关 M8 M9的开关设置 G43H00等设置下面先讲解 N号的加入
加入N号我们只需要拉两个 N号开关词条就可以
选择这一选项拉到上面是N号开
然后拉入在下面既可下面加入刀具信息找到这个选项操作员消息
拉入 N号关后面
输入命令
MOM_output_literal “( 刀具名称:$mom_tool_name )”
MOM_output_literal “( 刀具直径:$mom_tool_diameter )”
MOM_output_literal “( 刀具R角半径:$mom_tool_corner_radius )”
想要哪个信息就输入哪行如果要两个以上就飞边拉入词条输入
这项编辑完毕
单击蓝色的区域
机床控制 Machine Control 进入一下界面我们只要在G43后加上M8既可完成此项设定
然后点击进程动作设定我们只需要修改中间的那个 G02 G03
的
进入下一页面
该为Vector-Arc Start to Center 修改后OK 推出不改出程序带R的带圆的程序就是乱做一团。
这项无需修改固定循环孔功能
All right! 最后让我们来修改程序尾。可以加入加工时间只是参考值的时间点击进入以下界面
把不需要的拉入垃圾桶把M02 该为M30 或在前面加入你要的 M5 M9 啊什么的过加入G00 G91 G28 Z0 最后加入加工时间It’s a interesting sequence!!~!~
在这里找到这个选项 Custom Command 拉入最后输入
global mom_machine_time
MOM_output_literal “运行时间:[ format “%.2f” $mom_machine_time]”
点击OK 保存在一个你能找到的英文文件夹里你的后处理可以用了可以试试了自己多研究研究很有趣的
UG与VERICUT
后处理中加刀具注释与时间方法
在后出里构造器里打开一个后处理文件,或者新建一个也行,然后在打开的后处理文件里添
加变量,
如global mom_tool_name // 刀具名
global mom_tool_diameter // 刀具直径
global mom_tool_corner1_radius // 刀具角半径
global mom_path_name // 路径名称
global mom_machine_time //加工时间
MOM_output_literal "(NAME mom_tool_name )"
MOM_output_literal "(D : [ format "%.2f" $mom_tool_diameter] )"
"%.2f" $mom_tool_corner1_radius] )"
MOM_output_literal “(Path name: $mom_path_name)"
MOM_output_literal "(TIME :[ format "%.2f" $mom_machine_time])" VERICUT7.0怎么样删除和添加定义的用户目录
在平时使用当中,我们会设置很多用户路径,但有些仿真文件被移动后,该用户目录就没有用处了,但还会在shortcut下拉列表框出现。我们可以通过编辑cgtech_62_user.prefs文件,来删除和添加定义的用户目录。
1.cgtech_62_user.prefs文件一般在C:\Documents and Settings\×××\目录下,xxx是你的windows 用户名。
2.打开cgtech_62_user.prefs文件,找到以Recent Work开头的行,这些就是我们设置的用户路径,你可以按照这种格式删除或添加用户路径。
3.还可以找到Toolpath Filters这一行,可以添加你想要的数控程序的后缀名。
4.用户还可以在这里编辑其它一些设置,但在设置前你最好知道这些设置是干什么用的!!!
有关海德汉M128的后处理更改
后处理里XYZ坐标变量分别改为
x mom_mcs_goto(0)
y mom_mcs_goto(1)
z mom_mcs_goto(2)
UG后处理刀补的正确输出方法
前一段时间搞ug 刀补的多刀处理问题,蛮头疼的,看到一强人Yeager给了一个方法
在Cutcom On里面增加一個Custom Command.,.填入"MOM_force once D",这个方法可以解决D号的模态省略的问题
,即在分层刀路里第二层G41/G42后没有D号的问题. 佩服啊!
关于G40的处理:
在Cutcom off项中删除G40 ,生成程序的效果如下:
N40 G0 G90 X-58. Y30. M03 S2000
N50 G43 Z3. H01
N60 Z1.077
N70 G1 Z-1.923 F250.
N80 G41 X-55. D01
N90 G2 X-50. Y35. I5. J0.0
N100 G1 X50.
N110 G2 X55. Y30. I0.0 J-5.
N120 G1 Y-30.
N130 G2 X50. Y-35. I-5. J0.0
N140 G40 G1 Y-37.54
N150 G0 Z1.077
N160 Y-38.
N170 Z-.846
N180 G1 Z-3.846
N190 G42 Y-35. D01
N200 G3 X55. Y-30. I0.0 J5.
N210 G1 Y30.
N220 G3 X50. Y35. I-5. J0.0
N230 G1 X-50.
N240 G3 X-55. Y30. I0.0 J-5.
N250 G40 G1 X-57.54
N260 G0 Z-.846
N270 X-58.
N280 Z-2.769
N290 G1 Z-5.769
N300 G41 X-55. D01
N310 G2 X-50. Y35. I5. J0.0
在fanuc 、mazak等机床上试验过,在fanuc系统上如果G41后没有D号,可以执行前一个模态的有效的D号,在G40后如果没有撤销刀补的直线段,刀补撤销没有问题,在G40这一句不产生移动,在下一句G1 x y 的语句执行
。如果将G41D1 单独列一行,可以对下一个坐标点进行补偿,但是补偿点的位置有误
在mazak系统中:G41D1单独列一行的语句运行后,立即对前一个坐标点进行补偿,G40
也是如此,也就是说补的位置不是我们要补的位置。
所以我们为了程序的正确性,必须保证G41 D1 position
,G40 position 的格式。
做好刀补的方法:
总结:1.在Cutcom On里面增加一個Custom Command.,.填入"MOM_force once D",这个方法可以解决D号的模态省略的问题
2.删除Cutcom Off的G40。
3.在rapid move 里加入G40。
4.加入G54
5.刀具信息:global mom_tool_name
MOM_output_literal "(TOOL NAME $mom_tool_name)"
6.加工时间:global mom_machine_time
MOM_output_literal "(MACHINE TIME [format "%.2f" $mom_machine_time] MIN )"
7.在每个操作前加入行号及路径名$mom_path_name
on
路径名(operator message)
off
8.在rapid move中,需对rap1,rap2,rap3及m13强制输出.
($mom_output_file_basename)(刀轨文件名)
$mom_path_name(操作名)
9."MOM_force once M03" 。
10. 要用M8-Coolant Flood
11.螺纹铣:init_helix
uplevel #0 {
#
# This procedure will be executed automatically at the start of program and
# anytime it is loaded as a slave post of a linked post.
#
# This procedure can be used to enable your post to output helix.
# You can choose from the following options to format the circle
# block template to output the helix parameters.
#
set mom_sys_helix_pitch_type "rise_radian"
#
# The default setting for mom_sys_helix_pitch_type is "rise_radian".
# This is the most common. Other choices are:
#
# "rise_radian" Measures the rise over one radian.
# "rise_revolution" Measures the rise over 360 degrees.
# "none" Will suppress the output of pitch.
# "other" Allows you to calculate the pitch
# using your own formula.
#
# This custom command uses the block template circular_move to output
# the helix block. If your post uses a block template with a different
# name, you must edit the line that outputs the helix block.
#
# The following variable deines the output mode for helical records.
#
# FULL_CIRCLE -- This mode will output a helix record for each 360
# degrees of the helix.
# QUADRANT -- This mode will output a helix record for each 90
# degrees of the helix.
# LINEAR -- This mode will output the entire helix as linear gotos.
# END_POINT -- This mode will assume the control can define an entire
# helix in a single block.
set mom_kin_helical_arc_output_mode FULL_CIRCLE
MOM_reload_kinematics
#============================================================= proc MOM_helix_move { } {
#============================================================= global mom_pos_arc_plane
global mom_sys_cir_vector
global mom_sys_helix_pitch_type
global mom_helix_pitch
global mom_prev_pos mom_pos_arc_center
global PI
switch $mom_pos_arc_plane {
XY { MOM_suppress once K ; set cir_index 2 }
YZ { MOM_suppress once I ; set cir_index 0 }
ZX { MOM_suppress once J ; set cir_index 1 }
}
switch $mom_sys_helix_pitch_type {
none { }
rise_revolution { set pitch $mom_helix_pitch }
rise_radian { set pitch [expr $mom_helix_pitch / ($PI * 2.0)]}
other {
#
# Place your custom helix pitch code here
#
}
default { set mom_sys_helix_pitch_type "none" }
}
MOM_force once X Y Z
if {$mom_sys_helix_pitch_type != "none"} {
MOM_force once I J K
if {$mom_sys_cir_vector == "Vector - Arc Center to Start"} {
set mom_prev_pos($cir_index) 0.0
set mom_pos_arc_center($cir_index) $pitch
} elseif {$mom_sys_cir_vector == "Vector - Arc Start to Center"} {
set mom_prev_pos($cir_index) $pitch
set mom_pos_arc_center($cir_index) 0.0
} elseif {$mom_sys_cir_vector == "Unsigned Vector - Arc Center to Start"} { set mom_prev_pos($cir_index) 0.0
set mom_pos_arc_center($cir_index) $pitch
} elseif {$mom_sys_cir_vector == "Absolute Arc Center"} {
set mom_pos_arc_center($cir_index) $pitch
}
}
#
# You may need to edit this line if you output more than one block
# or if you have changed the name of your circular_move block template
#
MOM_do_template circular_move
} ;# MOM_helix_move
} ;# uplevel