网通访问 |电信访问 | 网络测速 | 联系管理员 |安全退出论坛,保护账号安全!
发新话题
打印

[注意]后处理讨论专栏

我在搞一个多文件输出的后处理时发现,\J不仅代表G代码的行回车符,还代表
G
代码文件的结束符,比如DEMO中对G代码文件的结束表示如下
END OF FILE:
      IF_SET (FlagSeq _EQ_ YES )
         OUTPUT \J "%" ;
      ELSE
         OUTPUT \J " %" ;
      END_IF ;

如果启动了分割文件机制,那么上面指令段中的%是不会出现在前一个文件的结尾,它会出现在后一个文件的开头,这会导致后一个文件的开头有两个 %
因此,为防止此BUG,代码改为如下
END OF FILE:
      IF_SET (FlagSeq _EQ_ YES )
         OUTPUT \J "%"  \J ;
      ELSE
         OUTPUT \J " %"  \J ;
      END_IF ;

 

当开启行号时:OUTPUT \J 不产生行号,而OUTPUT $ 则产生行号。

心境 改变环境

TOP

以上共五颗,希望对给位XDJM学习改好处理有帮助,当然要靠这个吃饭是不够,但是满足自己的使用应该是不成问题;同时也感谢他爸(老榆)、江侯兄等一些个中高手,提供帮助;

 

  感谢提供分享,特奖励金钱50,不成敬意,敬请笑纳

[此贴子已经被haitianyis于2006-5-22 19:00:58编辑过]

心境 改变环境

TOP

整园等分四段输出的方法

整园等分成四段输出的计算方法,先提示一下供大家参考.相信当你熟悉了该算法后,可举一反三,不管是G91还是G90输出方式,均可方便实现,先来看看与园相关的变量,见图:



[ 本帖最后由 sjhxs 于 2008-6-10 08:41 编辑 ]

TOP

我们先来计算各等分点相对于园心的坐标,即相对坐标,见上图:

起点X4=Xold-X_CENTER,Y4=Yold-Y_CENTER;

根据分析,不考虑正负时的相对值X4=Y1=X2=Y3,Y4=X1=Y2=X3;(初中的知识,请不要问我原因哦!)

而且我们知道I=园心X坐标-起点X坐标,J=园心Y坐标-起点Y坐标;

居此可推导出各点的X,Y绝对值以及I,J的坐标公式;

  X4=Xold; Y4=Yold;(此处Xold=X_ENDPT,Yold=Y_ENDPT)


   X1=X_CENTER-Yold+Y_CENTER; Y1=Y_CENTER+Xold-X_CENTER;I2=X_CENTER-X4; J2=Y_CENTER-Y4;


 X2=2*X_CENTER-Xold; Y2=2*Y_CENTER-Yold; I3=X_CENTER-X1; J3=Y_CENTER-Y1;


 X3=X_CENTER+Yold-Y_CENTER ; Y3=Y_CENTER-Xold+X_CENTER ;I4=X_CENTER-X2;J4=Y_CENTER-Y2;

  I1=X_CENTER-X3;J1=Y_CENTER-Y3;

[此贴子已经被作者于2006-5-22 8:23:53编辑过]

TOP

当ARC_ANG _EQ_ 360.0时输出(即逆时针G03时):

      OUTPUT $ ;  

  IF_SET (CIRC_MOV)   OUTPUT " " CIRC_MOV  ; END_IF ;

        OUTPUT " X" X1 " Y" Y1 " I" I2 " J" J2 ;   

                ....     ......   .....    ......

         OUTPUT $    " X" X4 " Y" Y4 " I" I1 " J" J1 ;

当ARC_ANG _EQ_ -360.0时输出(即顺时针G02时):

      OUTPUT $ ;  

  IF_SET (CIRC_MOV)   OUTPUT " " CIRC_MOV  ; END_IF ;

        OUTPUT " X" X3 " Y" Y3 " I" I2 " J" J2 ;   

                ....     ......   .....    ......

         OUTPUT $  " X" X4 " Y" Y4 " I" I3 " J" J3 ;


 

 

[此贴子已经被作者于2006-5-22 8:06:09编辑过]

TOP

 现在可以把楼上的这些内容写入EXF文件中了,试一下吧!偶的测试结果见下图:

TOP

每次换刀都回机械原点,如何设定。为什么没人告诉我呢

TOP

以下是引用午时午刻在2006-5-22 20:39:00的发言:每次换刀都回机械原点,如何设定。为什么没人告诉我呢

  OUTPUT $ " M05 " ; 主轴停止
  OUTPUT $ " G91 G28  Z0 ;  返回机械参考点(先抬Z轴)
  OUTPUT $ " X0 Y0 ";   (回到原点--这步根据需要写)
  OUTPUT $ " M06 T" CURR_TOOL ;   换刀
  OUTPUT $ " 后续程序头内容"




[ 本帖最后由 sjhxs 于 2008-6-10 08:50 编辑 ]

TOP

终于有人肯告诉我了非常感谢

TOP

高速主轴自动暖机

你是用高速主轴吗?开始加工前,主轴暖机吗(换刀后从低速到高速,而不是直接到高速)?你想让你的主轴寿命更长、精度更高吗?如果是,请按照以下方法定制你的后处理:
fanuc系统
*-----主轴暖机程式
      if_set (SPIN_SPEED _ge_ 7000)     转速设定在7000-10000时,换刀后主轴以5000的速度运转1
      if_set (SPIN_SPEED _le_ 10000)    分钟;
      OUTPUT $ "M03 S5000" ;
      OUTPUT $ "G04 X60." ;
      OUTPUT $ "M05" ;
    end_if ;
   end_if ;

      if_set (SPIN_SPEED _gt_ 10000)    转速设定在10000-15000时,换刀后主轴以5000的速度运转
      if_set (SPIN_SPEED _le_ 15000)    1分钟,10000转运行2分钟;
      OUTPUT $ "M03 S5000" ;
      OUTPUT $ "G04 X60." ;
      OUTPUT $ "M05" ;
      OUTPUT $ "M03 S10000" ;
      OUTPUT $ "G04 X120." ;
      OUTPUT $ "M05" ;
    end_if ;
   end_if ;

      if_set (SPIN_SPEED _gt_ 15000)     转速设定超过15000时,换刀后主轴以5000的速度运转
      OUTPUT $ "M03 S5000" ;              1分钟,10000转运行2分钟,15000转运转3分钟;
      OUTPUT $ "G04 X60." ;
      OUTPUT $ "M05" ;
      OUTPUT $ "M03 S10000" ;
      OUTPUT $ "G04 X120." ;
      OUTPUT $ "M05" ;
      OUTPUT $ "M03 S15000" ;
      OUTPUT $ "G04 X180." ;
      OUTPUT $ "M05" ;
    end_if ; 

时间和转速可以根据自己机台实际情况设定;
如果是hiden系统,要将x改为f

 

星球大战用户操作:原因:积极参与技术问题讨论,有相当的水准!,用户操作:金钱20,经验10,魅力10,威望12006-5-24 23:10:42pandeqi

[此贴子已经被pandeqi于2006-5-24 23:11:43编辑过]

心境 改变环境

TOP

QUOTE:
以下是引用星球大战在2006-5-24 21:54:00的发言:

      OUTPUT $ " M05 " ; 主轴停止

      OUTPUT $ " G91 G28 Z0  ;  Z轴先返回机械参考点

      OUTPUT $ " G91 G28 X0 Y0  ;  然后XY返回机械参考点

      OUTPUT $ " M06 T" CURR_TOOL ;   换刀

      OUTPUT $ " 程序头内容" ;

这样更安全

是的!先抬主轴这样更安全!偶们一直是这样干的!。。。。

欢迎访问[中国铸造论坛]!http://www.foundrybbs.com

TOP

谢谢admin

心境 改变环境

TOP

TOP

郁闷

现在还不知道生成的程序在那个文件夹呢?

请高手指教

在此感谢拉

TOP

cimit\var\post文件夹下
心境 改变环境

TOP

输出行号时,经常会出现行号大于十万造成机床报警,可以将输出行号部分改为:

NEW_LINE_IS $ ;
      IF_SET (FlagSeq _EQ_ NO)
  OUTPUT \J ;
      ELSE
  IF_SET (FlagSub _EQ_ NO)
     OUTPUT \J "N" Seq ;
     Seq = Seq + SeqIncr ;
            IF_SET (Seq _EQ_ 10000 )
             Seq = 1;
            END_IF;    
  ELSE
     OUTPUT \J "N" SubSeq ;
     SubSeq = SubSeq + SeqIncr ;
            IF_SET (SubSeq _EQ_ 10000 )
             SubSeq = 1;
            END_IF ;
      END_IF ;

这样行号只会要到9999后,就会又从1开始. 

TOP

谢谢了我正为行号头痛

TOP

给大家上传个 群处理---之报表头  不知大家有没有

 

[attach]500461[/attach]
 

大家可以用用看(转贴)

新论坛,新空间,子海3D娱乐圈http://zihai.5d6d.com/

TOP

参与的不多

心境 改变环境

TOP

好难理解.(我不会英语).有的看不太清楚

TOP

发新话题