|
20.修改"运动->快速移动"事件:
(1).编辑G94 G00 G90 rap1 rap2 rap3行中的G00元素,去掉"格式->编辑->输出前导零"选项前面的√。
(2).找到PB_CMD_check_plane_change_for_swiveling行,编辑代码如下:
global dpp_ge
global mom_out_angle_pos
global mom_prev_out_angle_pos
global mom_cycle_rapid_to_pos
global mom_cycle_feed_to_pos
global mom_cycle_retract_to_pos
global mom_pos
global mom_cycle_rapid_to
global mom_cycle_retract_to
global mom_cycle_feed_to
global mom_cutcom_adjust_register
global mom_mcs_goto
global mom_pos mom_prev_pos
global save_mom_kin_machine_type
global mom_kin_machine_type
global mom_tool_axis
global mom_result
if {[string match "*3_axis*" $save_mom_kin_machine_type] || [string match "*4_axis*" $save_mom_kin_machine_type]} {
return
}
if {$dpp_ge(toolpath_axis_num)=="3" && $dpp_ge(sys_coord_rotation_output_type)=="SWIVELING"} {
if {[string compare "LOCAL" $dpp_ge(coord_rot)]} {
if {![info exists mom_prev_out_angle_pos]} {
set mom_prev_out_angle_pos(0) 0.0
set mom_prev_out_angle_pos(1) 0.0
}
if {![EQ_is_equal $mom_out_angle_pos(0) $mom_prev_out_angle_pos(0)] ||\
![EQ_is_equal $mom_out_angle_pos(1) $mom_prev_out_angle_pos(1)]} {
set dpp_ge(coord_rot) [DPP_GE_COOR_ROT "ZXZ" angle offset pos]
if {[string compare "NONE" $dpp_ge(coord_rot)]} {
for {set i 0} {$i<3} {incr i} {
set dpp_ge(coord_offset,$i) $offset($i)
set dpp_ge(coord_rot_angle,$i) $angle($i)
}
if {![EQ_is_equal $dpp_ge(coord_rot_angle,0) $dpp_ge(prev_coord_rot_angle,0)] ||\
![EQ_is_equal $dpp_ge(coord_rot_angle,1) $dpp_ge(prev_coord_rot_angle,1)] ||\
![EQ_is_equal $dpp_ge(coord_rot_angle,2) $dpp_ge(prev_coord_rot_angle,2)] } {
if {[info exists mom_cutcom_adjust_register]} {
MOM_force once G_cutcom D
}
MOM_force once G_adjust H X Y Z
VMOV 3 pos mom_pos
MOM_reload_variable -a mom_pos
MOM_do_template swiveling_coord_rot
MOM_do_template auto_align_rotary_axis
MOM_do_template three_plus_two_suppress CREATE
for {set i 0} {$i<3} {incr i} {
set dpp_ge(prev_coord_rot_angle,$i) $dpp_ge(coord_rot_angle,$i)
}
}
} else {
if {[info exists mom_cutcom_adjust_register]} {
MOM_force once G_cutcom D
}
MOM_force once G_adjust H
set dpp_ge(prev_coord_rot_angle,0) 0
set dpp_ge(prev_coord_rot_angle,1) 0
set dpp_ge(prev_coord_rot_angle,2) 0
DPP_GE_RESTORE_KINEMATICS
if {"1" == [MOM_convert_point mom_mcs_goto mom_tool_axis]} {
set i 0
foreach value $mom_result {
set mom_pos($i) $value
incr i
}
}
MOM_reload_variable -a mom_pos
MOM_force Once fourth_axis fifth_axis
}
}
}
}
(3).找到PB_CMD_check_plane_change_for_wcs_rotation行,编辑代码如下:
global dpp_ge
global mom_out_angle_pos
global mom_prev_out_angle_pos
global mom_cycle_rapid_to_pos
global mom_cycle_feed_to_pos
global mom_cycle_retract_to_pos
global mom_pos
global mom_cycle_rapid_to
global mom_cycle_retract_to
global mom_cycle_feed_to
global mom_cutcom_adjust_register
global mom_mcs_goto
global save_mom_kin_machine_type
global mom_tool_axis
global mom_result
global mom_prev_pos
if { $save_mom_kin_machine_type=="5_axis_dual_table" || [string match "*4_axis*" $save_mom_kin_machine_type] ||\
[string match "*3_axis*" $save_mom_kin_machine_type] || $dpp_ge(coord_rot) == "LOCAL"} {
return
}
if {$dpp_ge(toolpath_axis_num)=="3" && $dpp_ge(sys_coord_rotation_output_type)=="WCS_ROTATION"} {
if {![info exists mom_prev_out_angle_pos]} {
set mom_prev_out_angle_pos(0) 0.0
set mom_prev_out_angle_pos(1) 0.0
}
if {![EQ_is_equal $mom_out_angle_pos(0) $mom_prev_out_angle_pos(0)] || ![EQ_is_equal $mom_out_angle_pos(1) $mom_prev_out_angle_pos(1)]} {
set dpp_ge(coord_rot) [DPP_GE_COOR_ROT_WCS_ROTATION g68_first_vec g68_second_vec coord_rot_angle coord_offset pos]
if {[info exists mom_cutcom_adjust_register]} {
MOM_force once G_cutcom D
}
MOM_force once G_adjust H X Y Z
if {[string compare "NONE" $dpp_ge(coord_rot)]} {
for {set i 0} {$i<3} {incr i} {
set dpp_ge(g68_first_vec,$i) $g68_first_vec($i)
set dpp_ge(g68_second_vec,$i) $g68_second_vec($i)
set dpp_ge(coord_offset,$i) $coord_offset($i)
set dpp_ge(coord_offset2,$i) 0
set dpp_ge(coord_rot_angle,$i) $coord_rot_angle($i)
set dpp_ge(prev_g68_first_vec,$i) $dpp_ge(g68_first_vec,$i)
set dpp_ge(prev_g68_second_vec,$i) $dpp_ge(g68_second_vec,$i)
set dpp_ge(prev_coord_offset,$i) $dpp_ge(coord_offset,$i)
set dpp_ge(prev_coord_rot_angle,$i) $dpp_ge(coord_rot_angle,$i)
set mom_pos($i) $pos($i)
}
MOM_reload_variable -a mom_pos
MOM_do_template initial_move_rotation
if {[EQ_is_equal $coord_rot_angle(0) 0]} {
if {![EQ_is_equal $coord_offset(0) 0] || ![EQ_is_equal $coord_offset(1) 0] || ![EQ_is_equal $coord_offset(2) 0]} {
VMOV 3 g68_second_vec g68_first_vec
set dpp_ge(g68_first_vec,0) $g68_first_vec(0)
set dpp_ge(g68_first_vec,1) $g68_first_vec(1)
set dpp_ge(g68_first_vec,2) $g68_first_vec(2)
set coord_rot_angle(0) $coord_rot_angle(1)
MOM_force once rotate_X rotate_Y rotate_Z rotate_i rotate_j rotate_k rotate_r
MOM_do_template g68_first_coord_rot
} elseif {![EQ_is_equal $coord_rot_angle(1) 0]} {
MOM_force once rotate_X rotate_Y rotate_Z rotate_i rotate_j rotate_k rotate_r
MOM_do_template g68_second_coord_rot
}
} elseif {[EQ_is_equal $coord_rot_angle(1) 0]} {
MOM_force once rotate_X rotate_Y rotate_Z rotate_i rotate_j rotate_k rotate_r
MOM_do_template g68_first_coord_rot
} else {
MOM_force once rotate_X rotate_Y rotate_Z rotate_i rotate_j rotate_k rotate_r
MOM_do_template g68_first_coord_rot
MOM_force once rotate_X rotate_Y rotate_Z rotate_i rotate_j rotate_k rotate_r
MOM_do_template g68_second_coord_rot
}
} else {
for {set i 0} {$i<3} {incr i} {
set $dpp_ge(prev_g68_first_vec,$i) 0
set $dpp_ge(prev_g68_second_vec,$i) 0
set $dpp_ge(prev_coord_offset,$i) 0
set $dpp_ge(prev_coord_rot_angle,$i) 0
}
DPP_GE_RESTORE_KINEMATICS
if {"1" == [MOM_convert_point mom_mcs_goto mom_tool_axis]} {
set i 0
foreach value $mom_result {
set mom_pos($i) $value
incr i
}
}
MOM_reload_variable -a mom_pos
MOM_do_template initial_move_rotation
}
}
}
|
|