找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 86|回复: 1

[原创] 手把手教你制作新代220M-5 Plus五轴机床U380后处理(四)

[复制链接]

19

主题

120

回帖

1484

积分

六级士官

积分
1484
发表于 17 小时前 | 显示全部楼层 |阅读模式
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
            }
        }
     }

4

主题

578

回帖

3682

积分

中尉

积分
3682
发表于 8 小时前 | 显示全部楼层
感谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

咨询QQ:1359218528|发帖须知!|Archiver|手机版|小黑屋|UG爱好者论坛 ( 京ICP备10217105号-2 )

GMT+8, 2025-5-23 17:49

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表