找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

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

这是个什么CAM软件的后置处理?

[复制链接]
跳转到指定楼层
1
发表于 2005-9-23 19:11:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
formAT (COORDINATES) XOLD YOLD ZOLD DXCENTER DYCENTER;
formAT (COORDINATES) DZCENTER ZINIT CLEAR DEPTH XHOME;
formAT (COORDINATES) YHOME ZHOME XFIRSTORIGIN YFIRSTORIGIN ZFIRSTORIGIN;
formAT (COORDINATES) ORIGOLDI ORIGOLDJ ORIGOLDK;
formAT (SEQUENCING) SEQ SUBSEQ;
formAT (TOOL) CUTTERCOMP FIRSTTOOL LASTTOOL;
formAT (USER_1) CURRSUBNUM SUB_NUMBER;
formAT (USER_2) FLAGSUB FLAGSEQ FLAGSPIN FIRSTORIGINCHANGE FLAGERROR;
formAT (USER_2) FLAGROTMAC YES NO;
INTERACTION (CHARACTER) "SEQUENCING<Y/N>" NUMYN = "N";
INTERACTION (CHARACTER) "SUBROUTINES<Y/N>" SUB = "N";
INTERACTION (SEQUENCING) "SEQUENC-START" SEQSTART = 10;
INTERACTION (SEQUENCING) "SEQUENC-INCR." SEQINCR = 2;
INTERACTION (TOOL) "DIACOMP=TOOL+<xx>" DIACOMP = 50;
INTERACTION (USER_1) "MAIN-PROGRAM-NUMBER" MAINNUM = 10;
INTERACTION (USER_1) "TOOL-CHANGE-PROGRAM" CHANGETOOL = 8000;
INTERACTION (USER_1) "SUB-PROGRAM-NUMBER" STARTSUBNUM = 1000;
NON_MODAL ALL_VAR;
MODAL CLEAR DEPTH X_CURPOS Y_CURPOS Z_CURPOS;
MODAL LIN_MOV CIRC_MOV MCH_FEED SPIN_SPEED SPIN_DIR;
MODAL MCH_COOL MCH_DWELL CUTCOM_ON CUTCOM_OFF CYC_DEPTH;
MODAL CYC_PECK CYC_DWELL CYC_RETR CYC_CLEAR;
IDENTICAL X_CURPOS X_ENDPT;
IDENTICAL Y_CURPOS Y_ENDPT;
NEW_LINE_IS $ ;
     IF_SET (FlagSeq _EQ_ NO)
OUTPUT \J ;
     ELSE
IF_SET (FlagSub _EQ_ NO)
   OUTPUT \J "N" Seq ;
   Seq = Seq + SeqIncr ;
ELSE
   OUTPUT \J "N" SubSeq ;
   SubSeq = SubSeq + SeqIncr ;
END_IF ;
     END_IF ;

********************************************************
BEGINNING OF TAPE:
*{{ GPP range check
*}} GPP range check
     YES              = 1 ;
     NO               = 0 ;
     Seq              = SeqStart ;

     FlagSeq = NO ;
     FlagSub = NO ;
     IF_SET (NumYN _EQ_ "y") FlagSeq = YES ; END_IF ;
     IF_SET (NumYN _EQ_ "Y") FlagSeq = YES ; END_IF ;

     IF_SET (Sub   _EQ_ "y") Sub     = "Y" ; END_IF ;
     IF_SET (Sub   _EQ_ "Y")
SET_OFF NO_SUBROUT ;
     ELSE
SET_ON  NO_SUBROUT ;
     END_IF ;

*-----Unit matrix (MUST be input in this order !!!)
     ROT_MAT1   = 1.0 ; ROT_MAT2   = 0.0 ; ROT_MAT3   = 0.0 ;
     ROT_MAT4   = 0.0 ; ROT_MAT5   = 1.0 ; ROT_MAT6   = 0.0 ;
     ROT_MAT7   = 0.0 ; ROT_MAT8   = 0.0 ; ROT_MAT9   = 1.0 ;

*-----shift all data according to the MCHINE ZERO indicated by the
*     user in the POSTPR interaction
     TRANS_MATX = 0 - X_MACH  ;
     TRANS_MATY = 0 - Y_MACH  ;
     TRANS_MATZ = 0 - Z_MACH  ;

*-----shift the HOME according to the MCHINE ZERO indicated by the
*     user in the POSTPR interaction
     Xhome = X_HOME - X_MACH  ;
     Yhome = Y_HOME - Y_MACH  ;
     Zhome = Z_HOME - Z_MACH  ;

*-----tool location is HOME
     Xold = X_HOME ;
     Yold = Y_HOME ;
     Zold = Z_HOME ;

*-----For 1st ORIGIN CHANGE
     FirstOriginChange = YES ;

     MCH_FEED   = 9999 ;

*-----output
     IF_SET (FlagSeq _EQ_ YES )
OUTPUT "O" MainNum  ;
     ELSE
OUTPUT "O" MainNum  ;
     END_IF ;

*--For the first origin change
  ORIGOLDI=0 ; ORIGOLDJ=0 ; ORIGOLDK=1 ;
  flagrotmac = no ;


BEGINNING OF PROC:
*{{ GPP range check
*}} GPP range check
     KEEP   PROC_NAME ;
     SET_ON MCH_COOL ;
     FlagSub = NO ;
     SubSeq  = SeqStart ;


END OF file:
     IF_SET (FlagSeq _EQ_ YES )
     OUTPUT $ "M09 " ;
     OUTPUT $ "M05 " ;
     OUTPUT $ "M30 " ;
     ELSE
         OUTPUT $ "M09 " ;
         OUTPUT $ "M05 " ;
         OUTPUT $ "M30 " ;
     END_IF ;

********************************************************
FEED:
*{{ GPP range check
*}} GPP range check
     KEEP MCH_FEED ;

SPIN:
*{{ GPP range check
*}} GPP range check
     KEEP SPIN_SPEED ;

COOLANT:
*{{ GPP range check
*}} GPP range check
     KEEP MCH_COOL ;

DWELL:
*{{ GPP range check
*}} GPP range check
     KEEP MCH_DWELL ;

CUTTER COMPENSATION:
*{{ GPP range check
*}} GPP range check
     KEEP  CUTCOM_ON ;

CUTTER COMPENSATION: COFF:
*{{ GPP range check
*}} GPP range check
     KEEP  CUTCOM_OFF ;

********************************************************
TOOL CHANGE: FIRST:
*{{ GPP range check
*}} GPP range check
     SET_ON  SPIN_SPEED SPIN_DIR ;
*-----save first tool number
     FirstTool = CURR_TOOL ;
     LastTool  = CURR_TOOL ;

*-----tool cutter compensation register number
     CutterComp = CURR_TOOL +  DiaComp ;

*-----assuming 1st tool is in the spindle, there is no need
*     for tool change)
     OUTPUT $ "G91 G28 Z0 " ;


*-----more then one tool in this run of the Post Processor
     IF_SET (NEXT_TOOL _NE_ CURR_TOOL)
     OUTPUT $ "T" CURR_TOOL " T0 M06 " ;
     END_IF ;
*-----standard tool change commands. (assuming 1st tool is in
     OUTPUT $ "G90 G00 G54 X0. Y0." ;
     OUTPUT $ "G43 H" CURR_TOOL " Z" Zhome ;
     OUTPUT $ "S" SPIN_SPEED " " SPIN_DIR ;

TOOL CHANGE:
*{{ GPP range check
*}} GPP range check
     SET_ON  SPIN_SPEED SPIN_DIR ;

*-----tool cutter compensation register number
     CutterComp = CURR_TOOL +  DiaComp ;

*-----tool change command (by using an internal tool change
*     subroutine)

     OUTPUT $ "M09 " ;
     OUTPUT $ "M05 " ;
     OUTPUT $ "G91 G28 Z0 " ;
     OUTPUT $ "T" CURR_TOOL " T0 M06 " ;
*-----standard tool change commands. (assuming 1st tool is in
     OUTPUT $ "G90 G00 G54  " ;
     OUTPUT $ "G43 H" CURR_TOOL " Z" Zhome ;
     OUTPUT $ "S" SPIN_SPEED " " SPIN_DIR ;

TOOL CHANGE: LAST:
*{{ GPP range check
*}} GPP range check
     SET_ON  SPIN_SPEED SPIN_DIR ;
*-----save last tool number
     LastTool = CURR_TOOL ;

*-----tool cutter compensation register number
     CutterComp = CURR_TOOL +  DiaComp ;
     OUTPUT $ "M09 " ;
     OUTPUT $ "M05 " ;
     OUTPUT $ "G91 G28 Z0 " ;


*-----the last tool is the same as the first tool
     IF_SET (NEXT_TOOL _NE_ CURR_TOOL)
     OUTPUT $ "T" CURR_TOOL " T0 M06"  ;
     END_IF ;
*-----standard tool change commands. (assuming 1st tool is in
     OUTPUT $ "G90 G00 G54 " ;
     OUTPUT $ "G43 H" CURR_TOOL " Z" Zhome ;
     OUTPUT $ "S" SPIN_SPEED " " SPIN_DIR ;


********************************************************
LINEAR MOTION: FAST:
*{{ GPP range check
*}} GPP range check
     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 (MCH_COOL) OUTPUT  "" MCH_COOL ; 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:
*{{ GPP range check
*}} GPP range check
     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 (CUTCOM_ON)  OUTPUT     CUTCOM_ON " D" CutterComp ; END_IF ;
     IF_SET (CUTCOM_OFF) OUTPUT     CUTCOM_OFF ; 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 ;
     IF_SET (MCH_COOL)   OUTPUT  "" MCH_COOL   ; END_IF ;
     SET_ON CIRC_MOV ;
     Xold = X_CURPOS ;
     Yold = Y_CURPOS ;
     Zold = Z_CURPOS ;

********************************************
CIRCULAR MOTION:
*{{ GPP range check
*}} GPP range check
     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 ;
     DZcenter = Z_CENTER - Zold ;
     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 ;
     IF_SET (RADIUS_)           OUTPUT "R"  RADIUS_ ; END_IF ;
     IF_SET (MCH_FEED)          OUTPUT "F" MCH_FEED ; END_IF ;
     IF_SET (MCH_COOL)          OUTPUT  "" MCH_COOL ; END_IF ;
     SET_ON LIN_MOV ;
     Xold = X_CURPOS ;
     Yold = Y_CURPOS ;
     Zold = Z_CURPOS ;
.................................

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

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

SUBROUTINE CALL:
     CurrSubNum = SUB_NUMBER + StartSubNum ;
     OUTPUT $ "M98 P" CurrSubNum  ;

BEGINNING OF SUB:
*{{ GPP range check
*}} GPP range check
     SET_ON  MCH_FEED MCH_COOL LIN_MOV CIRC_MOV ;
     FlagSub = YES ;
     OUTPUT \J " " ;
     IF_SET (FlagSeq _EQ_ YES)
OUTPUT \J "O" CurrSubNum ;
     ELSE
OUTPUT \J "O" CurrSubNum ;
     END_IF ;

END OF SUB:
     OUTPUT $  "M99" ;
     FlagSub = NO ;

SUBROUTINE RETURN:
*{{ GPP range check
*}} GPP range check
     SET_ON LIN_MOV CIRC_MOV X_CURPOS Y_CURPOS Z_CURPOS;

********************************************************
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2005-9-23 20:13:07 | 只看该作者
CIMATRON GPP POST
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-27 13:10 , Processed in 0.028959 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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