iCAx开思网

标题: 【讨论】FANUC 机床报警, 后处理讨论 [打印本页]

作者: jinly    时间: 2004-1-7 09:50
标题: 【讨论】FANUC 机床报警, 后处理讨论
相同加工, 分别用旧的MDF后处理机和UG/POST处理, 结果不大一样, 新的后置多出两条圆弧插补, 导致机床报警, "Over tolerance of radius",   程序片段如下:  
  
From MDF Post:
作者: jinly    时间: 2004-1-7 09:55
This is from the old postprocessor
作者: jinly    时间: 2004-1-7 09:56
this is from New Postprocessor
作者: jinly    时间: 2004-1-7 09:58
This is the MDFA file for old postprocessor
作者: jinly    时间: 2004-1-7 10:00
This is the new FANUC postprocessor
作者: jinly    时间: 2004-1-7 10:03
What is the reason for this error warning ?
  
   I asked some friends, with many different reasons......Anyway, how can I solve this problem as soon as possible?
  
    各位大侠, 多谢帮忙!!!
作者: ycyddh    时间: 2004-1-7 10:08
两种运算公差,好像::?
作者: jinly    时间: 2004-1-7 10:11
我研究发现一点:   在MDFA的GPM模块可以将CLSF中相同圆心和半径的几段圆弧插补合并成一段. 但是在TCL文件中没有..
  
..上面的几段圆弧插补有相同的圆心和半径.....
  
这里是不是有点问题?   我在TCL文件中加入一段去合并圆弧, 可是其他一些圆弧也被合并了....这里面如何控制, 我还不懂问题的关键在哪里?
  
#=============================================================
proc MOM_circular_move { } {
#=============================================================
   CIRCLE_SET
  
   global circle_flag
   global mom_nxt_motion_event  
   global mom_nxt_arc_center   mom_nxt_arc_radius
   global mom_arc_center mom_arc_radius
   global mom_pos mom_prev_pos the_pos  
   global mom_arc_direction mom_nxt_arc_direction
   global circle_direction  
   global first_arc
  
   if {$first_arc == 0 } {
                            
              MOM_do_template circular_move
              if { $mom_nxt_motion_event == "circular_move" } {
                 set first_arc 1
              } else {
                  set first_arc 0
              }
             
              if {$mom_arc_direction != $mom_nxt_arc_direction} {
                  set circle_direction 1
                 } else {
                  set circle_direction 0
                 }
  
    } elseif { $mom_nxt_motion_event != "circular_move" } {
         
        if { $circle_flag == 1 } {
            set mom_prev_pos(0) $the_pos(0)
            set mom_prev_pos(1) $the_pos(1)
           
            }
              set first_arc 0
              set circle_direction  0
              set circle_flag 0
              MOM_do_template circular_move
           
  
      } elseif { $circle_direction == 1} {
            
            set circle_flag 0
            set circle_direction  0
            MOM_do_template circular_move
  
      } elseif {$mom_arc_direction == "CLW" && $mom_nxt_arc_direction == "CCLW"} {
           
            if { $circle_flag == 1 } {
            set mom_prev_pos(0) $the_pos(0)
            set mom_prev_pos(1) $the_pos(1)
            
            }
            set circle_flag 0
            set circle_direction  1
            MOM_do_template circular_move
  
     } elseif {$mom_arc_direction == "CCLW" && $mom_nxt_arc_direction == "CLW"} {
            
            if { $circle_flag == 1 } {
            set mom_prev_pos(0) $the_pos(0)
            set mom_prev_pos(1) $the_pos(1)
            
            }
            set circle_flag 0
            set circle_direction  1
            MOM_do_template circular_move
  
      } elseif {[expr abs($mom_nxt_arc_center(0) - $mom_nxt_arc_center(0))] > 0.001 } {
         
          if { $circle_flag == 1 } {
            set mom_prev_pos(0) $the_pos(0)
            set mom_prev_pos(1) $the_pos(1)
           
            }
         set circle_flag 0
         MOM_do_template circular_move
  
      } elseif {[expr abs($mom_nxt_arc_center(1) - $mom_nxt_arc_center(1))] > 0.001 } {
         
         if { $circle_flag == 1 } {
            set mom_prev_pos(0) $the_pos(0)
            set mom_prev_pos(1) $the_pos(1)
            
            }
         set circle_flag 0
         MOM_do_template circular_move
  
      } elseif {[expr abs($mom_nxt_arc_radius - $mom_arc_radius)] < 0.001 } {
         
         if {$circle_flag == 0 } {
            set the_pos(0) $mom_prev_pos(0)
            set the_pos(1) $mom_prev_pos(1)
           }
            set circle_flag 1
           
  
      } else {
  
          if { $circle_flag == 1 } {
            set mom_prev_pos(0) $the_pos(0)
            set mom_prev_pos(1) $the_pos(1)
            set circle_flag 0
            }
  
          MOM_do_template circular_move
      }
      
}
#=============================================================
作者: jinly    时间: 2004-1-7 10:17
ycyddh wrote:
两种运算公差,好像::?

  
请指教, 我现在连方向都搞不清了, 只想按表面现象来搞, 就是把多出的几条圆合并, 但是可能带来其它很多问题.   
  
  关键可能还是在公差问题, 可是我改来改去, 就是不能解决问题.
作者: jinly    时间: 2004-1-7 10:21
对了, 忘了零件:
  
    啊?!  零件太大?!........老大.....加点分啊...
作者: jinly    时间: 2004-1-7 10:23
1/6
作者: jinly    时间: 2004-1-7 10:23
2/6
作者: jinly    时间: 2004-1-7 10:24
3/6
作者: jinly    时间: 2004-1-7 10:25
4/6
作者: jinly    时间: 2004-1-7 10:25
5/6
作者: jinly    时间: 2004-1-7 10:36
6/6
作者: tulip    时间: 2004-1-7 12:21
sorry , i can't help you. but according the warning message is the tolerance
you could check you set the arc  tolerance! give you my wish!




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3