孔铣宏程序制作方法
资料来源于闪光蜗牛现在给大家分享一下,孔铣命令宏后处理制作方法,只说方法教程,请见谅!
1.新建一个后处理
2.在N/C数据定义模块 →文字→找到“Z”
3.右键→创建“Z_1”
4.新建选择“文本”格式
5.在N/C数据定义模块 →块→找到“circular_move”
6.右键→创建“circular_move_1”右键→创建→“circular_move_helix”
7.删除“circular_move_1”中的“Z”并添加“Z-1”表达式“#26”
8.删除“circular_move_helix”中的“Z”并添加“Z-1”表达式“#18”
9.在 程序和刀轨 模块→定制命令→导入→在文件夹中选择“pb_cmd_helix.tcl”
10.在 程序和刀轨 模块→程序→程序起始序列→添加块右侧选择“PB-CMD-init_helix”→添加块→“%”后即可
11.在 程序和刀轨 模块→定制命令→选择“pb_cmd_helix.tcl”用下面代码替换原代码
12.保存后处理文件,好了,来试一下你的宏程序后处理吧{:biggrin:}
uplevel #0 {
#
# This ommand 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_revolution"
#
# 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 END_POINT
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 }
other {
#
# Place your custom helix pitch code here
#
}
default { set mom_sys_helix_pitch_type "none" }
}
MOM_force once X Y Z
if { } {
MOM_force once I J K
#<08-01-06 gsl>
switch $mom_sys_cir_vector {
"Vector - Arc Center to Start" {
set mom_prev_pos($cir_index) $pitch
set mom_pos_arc_center($cir_index) 0.0
}
"Vector - Arc Start to Center" -
"Unsigned Vector - Arc Start to Center" {
set mom_prev_pos($cir_index) 0.0
set mom_pos_arc_center($cir_index) $pitch
}
"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
global mom_pos mom_last_pos
set dep ]
set pit
set val .0]
set val_int
set z_rem
if {$mom_pos($cir_index)<$mom_last_pos($cir_index)} {
set sym GE
} else {
set sym LE
}
if {$val<1} {
MOM_do_template circular_move
} else {
MOM_output_literal "(R)#18=]
(Z)#26=
WHILE \[#18 $sym #26\] DO1"
set last_cycle(0) $mom_pos(0)
set last_cycle(1) $mom_pos(1)
set mom_pos(0) $mom_last_pos(0)
set mom_pos(1) $mom_last_pos(1)
MOM_do_template circular_move_helix
MOM_output_literal "#18=#18+\[\]
END1"
if {} {
set mom_pos(0) $last_cycle(0)
set mom_pos(1) $last_cycle(1)
MOM_force once X Y ZI J Z_1
MOM_do_template circular_move_1
}
}
}
} ;# uplevel
感谢大佬,解了我多年的困惑,如果面铣,深度铣也能用宏就好了
非常详细,多谢楼主分享! 谢谢分享 多谢楼主分享 感谢分享 已经成功了 谢谢分享
谢谢大神分享 厉害,谢谢 {:lol:} 谢谢大师分享.......
页:
[1]
2