Tualar 发表于 2025-12-27 03:00:50

手把手教你制作UG四五轴宏联动后处理(四)

(20).将"初始移动"事件下的G0 G90 G(54~59) X Y A C S M3行复制到"第一次移动"事件下的PB_CMD_calc_g54行下面。
(21).在"初始移动"事件下的G0 G90 G(54~59) X Y A C S M3行下面添加G0 G90 G(54~59) 文本元素1 文本元素2 A C S M3行,
       将文本元素1内容改成X$sx,将文本元素2内容改成Y$sy,
       添加输出条件PB__CMD_check_block_initial_move_1,编辑TCL代码如下:
       global dpp_path_type
       global e1 e2 e3 d1 d2 d3 vx vy vz rad_a rad_c
       global w1 w2 w3 s s1 s2 s3 s4 sx sy sz
       global mom_pos mom_out_angle_pos
       if {!} {
         set rad_a
         set rad_c
         #******************计算刀尖跟随Xrtcp**********************
         set e1
         set e2
         #变量d1,d2精确到小数点后6位,变量vx精确到小数点后3位
         set d1
         set d2
         set vx
         #将变量d1转换成字符串s1,并且去除末尾多余0
         set w1
         if {!} {
         set s1 "-#101"
         } elseif {!} {
             set s1 "#101"
         } else {
               if { == "0"} {
               if { == "0"} {
                   if { == "0"} {
                     if { == "0"} {
                     if { == "0"} {
                         if { == "0"} {
                           set w1 ]
                         } else {
                           set w1
                           }
                     } else {
                           set w1
                         }
                     } else {
                         set w1
                     }
                   } else {
                     set w1
                     }
               } else {
                     set w1
                   }
            }
            if {$d1 != 0.0} {
                set s1
            } else {
                  set s1 "NONE"
                }
            }
         #将变量d2转换成字符串s2,并且去除末尾多余0
         set w2
         if {!} {
         set s2 "-#102"
         } elseif {!} {
             set s2 "+#102"
         } else {
               if { == "0"} {
               if { == "0"} {
                   if { == "0"} {
                     if { == "0"} {
                     if { == "0"} {
                         if { == "0"} {
                           set w2 ]
                         } else {
                           set w2
                           }
                     } else {
                           set w2
                         }
                     } else {
                         set w2
                     }
                   } else {
                     set w2
                     }
               } else {
                     set w2
                   }
            }
            if {$d2 > 0.0} {
                set s2
            } elseif {$d2 < 0.0} {
                  set s2
                } else {
                  set s2 "NONE"
                  }
            }
            #将变量vx转换成字符串s4,并且去除末尾多余0
            set w4
            if { == "0"} {
            if { == "0"} {
                if { == "0"} {
                  set w4 ]
                } else {
                  set w4
                  }
            } else {
                  set w4
                }
            }
          }
          if {$vx > 0.0} {
            set s4
          } elseif {$vx < 0.0} {
            set s4
         } else {
               set s4 "NONE"
             }
         #格式化字符串s,保存到变量sx中,用于输出
         if { && !} {
         set s $s1
         } elseif {! && } {
             set s $s2
         } elseif { && } {
               set s
             } else {
               set s "NONE"
               }
      if { && } {
          set sx " $s $s4]
      } elseif {! && } {
            set sx $s4
          } elseif { && !} {
            set sx " $s]
            } else {
                set sx "0."
            }
       #******************计算刀尖跟随Yrtcp***************************
       set e1
       set e2
       set e3
       set d1
       set d2
       set d3
       set vy
       set w1
       if {!} {
          set s1 "-#102"
       } elseif {!} {
         set s1 "#102"
         } else {
             if { == "0"} {
               if { == "0"} {
               if { == "0"} {
                   if { == "0"} {
                     if { == "0"} {
                     if { == "0"} {
                         set w1 ]
                     } else {
                           set w1
                         }
                     } else {
                         set w1
                     }
                   } else {
                     set w1
                     }
               } else {
                     set w1
                   }
               } else {
                   set w1
               }
             }
             if {$d1 != 0.0} {
               set s1
             } else {
               set s1 "NONE"
            }
         }
         set w2
         if {!} {
             set s2 "-#101"
         } elseif {!} {
               set s2 "+#101"
             } else {
               if { == "0"} {
                   if { == "0"} {
                     if { == "0"} {
                     if { == "0"} {
                         if { == "0"} {
                           if { == "0"} {
                           set w2 ]
                           } else {
                               set w2
                              }
                         } else {
                           set w2
                           }
                     } else {
                           set w2
                         }
                     } else {
                         set w2
                     }
                   } else {
                     set w2
                     }
               }
               if {$d2 > 0.0} {
                   set s2
               } elseif {$d2 < 0.0} {
                     set s2
                   } else {
                     set s2 "NONE"
                     }
            }
未完待续。。。。。

hegaoj3 发表于 2026-1-2 15:55:21

感谢大佬
页: [1]
查看完整版本: 手把手教你制作UG四五轴宏联动后处理(四)