找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 17394|回复: 10
打印 上一主题 下一主题

[讨论] 初学GPP,请懂得大侠帮我检查下我改的代码是否有问题

[复制链接]
跳转到指定楼层
1
发表于 2009-10-13 14:29:25 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
我把这个处理出来的G代码和正在用的处理出来的G代码对比了下,是一样的。不知道还存在什么问题??请指教
代码如下:
********************************************************
* 3 axes Post Processor for FANUC
********************************************************
FORMAT (COORDINATES) Xold Yold Zold DXcenter DYcenter ;
FORMAT (COORDINATES) Clear Depth ;
FORMAT (USER_2)      FlagSpin ;
FORMAT (USER_2)      YES NO ;
********************************************************
NON_MODAL  ALL_VAR ;
MODAL      X_CURPOS Y_CURPOS Z_CURPOS ;
MODAL      LIN_MOV CIRC_MOV MCH_FEED SPIN_SPEED SPIN_DIR ;
MODAL      CYC_DEPTH CYC_PECK CYC_DWELL CYC_RETR CYC_CLEAR Depth Clear ;
IDENTICAL  X_CURPOS X_ENDPT ;
IDENTICAL  Y_CURPOS Y_ENDPT ;
********************************************************
NEW_LINE_IS $ ;
      OUTPUT \J ;   
********************************************************
BEGINNING OF TAPE:
      YES              = 1 ;
      NO               = 0 ;
      Xold = X_HOME ;
      Yold = Y_HOME ;
      Zold = Z_HOME ;
      MCH_FEED = 9999 ;
      OUTPUT "%" \J ;
END OF TAPE:
      OUTPUT $ " M05" ;
      OUTPUT $ " M30" ;
      OUTPUT \J "%" ;
      IF_SET (PROC_CMNT _NE_ "No Text")
    PRINT0 \J "REN " PART_NAME "." TP_NAME "." POST_NAME " " PROC_CMNT "." POST_NAME ;
      END_IF ;
********************************************************
TOOL CHANGE:
      SET_ON  SPIN_SPEED SPIN_DIR ;
      OUTPUT $ "( " "D" DIAMETER_ " " "R" TOOL_RAD " )" ;
      OUTPUT $ " G90 G54 G17 G80 G40 G49 " ;
      OUTPUT $ " S" SPIN_SPEED " " SPIN_DIR  ;
********************************************************
LINEAR MOTION: FAST:
      FlagSpin = NO ;
      IF_SET (SPIN_SPEED) FlagSpin = YES ; END_IF ;
      IF_SET (SPIN_DIR)   FlagSpin = YES ; END_IF ;
      IF_SET (FlagSpin _EQ_ YES)
      SET_ON SPIN_SPEED SPIN_DIR ;
      OUTPUT $ " S" SPIN_SPEED " " SPIN_DIR ;
      END_IF ;
      OUTPUT $ ;
      IF_SET (LIN_MOV)  OUTPUT " "  LIN_MOV  ; END_IF ;
      IF_SET (X_CURPOS) OUTPUT " X" X_CURPOS ; END_IF ;
      IF_SET (Y_CURPOS) OUTPUT " Y" Y_CURPOS ; END_IF ;
      IF_SET (Z_CURPOS) OUTPUT " Z" Z_CURPOS ; END_IF ;
      SET_ON CIRC_MOV ;
      Xold = X_CURPOS ;
      Yold = Y_CURPOS ;
      Zold = Z_CURPOS ;
LINEAR MOTION:
      FlagSpin = NO ;
      IF_SET (SPIN_SPEED) FlagSpin = YES ; END_IF ;
      IF_SET (SPIN_DIR)   FlagSpin = YES ; END_IF ;
      IF_SET (FlagSpin _EQ_ YES)
      SET_ON SPIN_SPEED SPIN_DIR ;
      OUTPUT $ " S" SPIN_SPEED " " SPIN_DIR ;
      END_IF ;
      OUTPUT $ ;
      IF_SET (LIN_MOV)    OUTPUT " "  LIN_MOV    ; END_IF ;
      IF_SET (X_CURPOS)   OUTPUT " X" X_CURPOS   ; END_IF ;
      IF_SET (Y_CURPOS)   OUTPUT " Y" Y_CURPOS   ; END_IF ;
      IF_SET (Z_CURPOS)   OUTPUT " Z" Z_CURPOS   ; END_IF ;
      IF_SET (MCH_FEED)   OUTPUT " F" MCH_FEED   ; END_IF ;
      SET_ON CIRC_MOV ;
      Xold = X_CURPOS ;
      Yold = Y_CURPOS ;
      Zold = Z_CURPOS ;
********************************************************
CIRCULAR MOTION:
      FlagSpin = NO ;
      IF_SET (SPIN_SPEED) FlagSpin = YES ; END_IF ;
      IF_SET (SPIN_DIR)   FlagSpin = YES ; END_IF ;
      IF_SET (FlagSpin _EQ_ YES)
      SET_ON SPIN_SPEED SPIN_DIR ;
      OUTPUT $ " S" SPIN_SPEED " " SPIN_DIR ;
      END_IF ;
      DXcenter = X_CENTER - Xold ;
      DYcenter = Y_CENTER - Yold ;
      OUTPUT $ ;
      IF_SET (CIRC_MOV)          OUTPUT " "  CIRC_MOV ; END_IF ;
      IF_SET (X_CURPOS)          OUTPUT " X" X_ENDPT  ; END_IF ;
      IF_SET (Y_CURPOS)          OUTPUT " Y" Y_ENDPT  ; END_IF ;
      IF_SET (Z_CURPOS)          OUTPUT " Z" Z_ENDPT  ; END_IF ;
                                                  OUTPUT " I" DXcenter ;   
                                                  OUTPUT " J"
DYcenter ;
      IF_SET (MCH_FEED)          OUTPUT " F" MCH_FEED ; END_IF ;
      SET_ON LIN_MOV ;
      Xold = X_CURPOS ;
      Yold = Y_CURPOS ;
      Zold = Z_CURPOS ;
********************************************************
CYCLE: ON:
      FlagSpin = NO ;
      IF_SET (SPIN_SPEED) FlagSpin = YES ; END_IF ;
      IF_SET (SPIN_DIR)   FlagSpin = YES ; END_IF ;
      IF_SET (FlagSpin _EQ_ YES)
      SET_ON SPIN_SPEED SPIN_DIR ;
      OUTPUT $ " S" SPIN_SPEED " " SPIN_DIR ;
      END_IF ;
      SET_ON X_CURPOS Y_CURPOS Z_CURPOS   ;
      SET_ON CYC_DEPTH CYC_RETR CYC_CLEAR MCH_FEED ;
      SET_ON Depth Clear ;
      Depth    =  Z_CURPOS - CYC_DEPTH ;
      Clear    =  Z_CURPOS + CYC_CLEAR ;
          OUTPUT $ " Z" Z_HOME  ;
          OUTPUT $ ;
          OUTPUT " "  CYC_RETR  ;
          OUTPUT " "  CYC_CODE  ;
          OUTPUT " X" X_CURPOS  ;
          OUTPUT " Y" Y_CURPOS  ;
          OUTPUT " Z" Depth     ;
          OUTPUT " R" Clear     ;
      IF_SET (CYC_PECK)        OUTPUT " Q" CYC_PECK  ; END_IF ;
      IF_SET (CYC_DWELL)       OUTPUT " P" CYC_DWELL ; END_IF ;
      IF_SET (CYC_XSHFT)       OUTPUT " I" CYC_XSHFT ; END_IF ;
      IF_SET (CYC_YSHFT)       OUTPUT " J" CYC_YSHFT ; END_IF ;
          OUTPUT " F" MCH_FEED  ;
      SET_ON  LIN_MOV CIRC_MOV ;
      SET_OFF CYC_DEPTH CYC_CLEAR;
      Xold = X_CURPOS ;
      Yold = Y_CURPOS ;
      Zold = Z_CURPOS ;
CYCLE:
      Depth = Z_CURPOS - CYC_DEPTH ;
      Clear = Z_CURPOS + CYC_CLEAR ;
      OUTPUT $ ;
      IF_SET (CYC_RETR)   OUTPUT " "  CYC_RETR   ; END_IF ;
      IF_SET (X_CURPOS)   OUTPUT " X" X_CURPOS   ; END_IF ;
      IF_SET (Y_CURPOS)   OUTPUT " Y" Y_CURPOS   ; END_IF ;
      IF_SET (Depth)      OUTPUT " Z" Depth      ; END_IF ;
      IF_SET (Clear)      OUTPUT " R" Clear      ; END_IF ;
      IF_SET (CYC_PECK)   OUTPUT " Q" CYC_PECK   ; END_IF ;
      IF_SET (CYC_DWELL)  OUTPUT " P" CYC_DWELL  ; END_IF ;
      IF_SET (CYC_XSHFT)  OUTPUT " I" CYC_XSHFT  ; END_IF ;
      IF_SET (CYC_YSHFT)  OUTPUT " J" CYC_YSHFT  ; END_IF ;
      IF_SET (SPIN_SPEED) OUTPUT " S" SPIN_SPEED ; END_IF ;
      IF_SET (SPIN_DIR)   OUTPUT " "  SPIN_DIR   ; END_IF ;
      IF_SET (MCH_FEED)   OUTPUT " F" MCH_FEED   ; END_IF ;
      SET_ON  LIN_MOV CIRC_MOV ;
      SET_OFF CYC_DEPTH CYC_CLEAR;
      Xold = X_CURPOS ;
      Yold = Y_CURPOS ;
      Zold = Z_CURPOS ;
CYCLE: OFF:
      OUTPUT $ " G80 Z" Z_HOME  ;
      SET_ON  LIN_MOV CIRC_MOV ;
********************************************************

本帖最后由 xiagq 于 2009-10-28 17:25 编辑
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 赞一下!赞一下!
2
发表于 2009-10-14 09:23:37 | 显示全部楼层
改成红色那部分后,处理出来的G代码里的I J K 会有好多0.0,不输出0.0貌似我的机床也能走
下面是用darkit的后处理出来的,圆弧处理时为什么要一直输出Z??
G01 Z-0.04  F750
G03 X25.156 Y46.551 Z-0.04 J0.444 F2500
G01 X25.155 Y58.119
G03 X16.354 Y62.04 Z-0.04 I-24.512 J-43.182
G02 X15.288 Y62.951 Z-0.04 I0.414 J1.565
3
发表于 2009-10-15 09:48:04 | 显示全部楼层
我把代码里的DZcenter全删除了。
貌似没在cimatron处理出来的G代码里看到过圆弧的螺旋插补
4
发表于 2009-10-15 16:05:16 | 显示全部楼层
什么东东完全可以??老大打字不要偷懒撒 。看老大的发言总要琢磨半天

本帖最后由 xiagq 于 2009-10-15 16:07 编辑
5
发表于 2009-10-15 20:41:28 | 显示全部楼层
那关于螺旋插补呢,这样的代码可以处理螺旋插补的吧
6
发表于 2009-10-16 08:54:52 | 显示全部楼层
cim不走螺旋插补的吗??应为没见过cim走螺旋插补,所以有这个疑问

这行代码貌似也没用了IF_SET (Z_CURPOS)          OUTPUT " Z" Z_ENDPT  ; END_IF ;

本帖最后由 xiagq 于 2009-10-18 11:42 编辑
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-6-6 21:06 , Processed in 0.028225 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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