登录【网站注册】点击左边“微信账号登陆”图标,微信扫描即自动注册并登陆
搜索
楼主: YMY2011

[分享资料] Cimatron四轴后处理大全

 火... [复制链接]
发表于 2019-3-7 20:43:25 | 显示全部楼层
谢谢 谢谢 谢谢 谢谢 谢谢
夺 村
回复 支持 反对

使用道具 举报

发表于 2019-3-17 16:58:28 | 显示全部楼层
谢楼主分享
优胜专注教学 技术实力最强 www.ysug.com
回复 支持 反对

使用道具 举报

发表于 2019-3-18 08:36:12 | 显示全部楼层
22222222222222
255585JHHHKUHKfggnER ...
回复 支持 反对

使用道具 举报

发表于 2019-3-21 18:04:42 | 显示全部楼层
下来看看先
【温馨提示】技术问题请优先发到问答专栏,优胜教师团队将及时回复,谢谢!
回复 支持 反对

使用道具 举报

发表于 2019-3-27 10:56:43 | 显示全部楼层
Cimatron的四轴后处理比较少。
优胜专注教学 技术实力最强 www.ysug.com
回复 支持 反对

使用道具 举报

发表于 2019-3-27 13:30:17 | 显示全部楼层
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 ;
      IF_SET (MCH_COOL) OUTPUT  " " MCH_COOL ; END_IF ;
      SET_ON CIRC_MOV NURBS_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 (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 NURBS_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 ;
      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 (DXcenter _NE_ 0.0) OUTPUT " I" DXcenter ; END_IF ;
      IF_SET (DYcenter _NE_ 0.0) OUTPUT " J" DYcenter ; END_IF ;
      IF_SET (DZcenter _NE_ 0.0) OUTPUT " K" DZcenter ; 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 NURBS_MOV ;
      Xold = X_CURPOS ;
      Yold = Y_CURPOS ;
      Zold = Z_CURPOS ;
******************************************************************
NURBS MOTION: START:
OUTPUT $ NURBS_MOV "P" NURBS_DEG ;
count = 0;
first = 1;
SET_ON MCH_FEED;
NURBS MOTION:
IF_SET (first _EQ_ 1)
OUTPUT "K" KNOT_ "X" CNTRL_X "Y" CNTRL_Y "Z" CNTRL_Z "F" MCH_FEED;
END_IF;
IF_SET (first _EQ_ 0)
OUTPUT $ "K" KNOT_ "X" CNTRL_X "Y" CNTRL_Y "Z" CNTRL_Z;
END_IF;
first = 0;
NURBS MOTION: END:
deg = NURBS_DEG ;
REPEAT
count = count + 1 ;
OUTPUT $ "K" KNOT_ ;
UNTIL (count _EQ_ deg) ;
SET_ON LIN_MOV CIRC_MOV MCH_FEED;
********************************************************
INSERT WITH:
      OUTPUT $ INS_STR ;

INSERT WITHOUT:
      OUTPUT  \J INS_STR ;

MESSAGE:
      OUTPUT $ "( " MESS_STR " )"  ;

********************************************************
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 MCH_COOL ;
      SET_ON Zinit Depth Clear ;
      Zinit    = Z_CURPOS + CYC_DZINIT ;
      Depth    = Z_CURPOS - CYC_DEPTH ;
      Clear    = Z_CURPOS + CYC_CLEAR ;
      IF_SET (Zold _LT_ Zinit)
                        OUTPUT $ " Z" Zinit ;
          ELSE
                        OUTPUT $ " Z" Zold ;
          END_IF ;
                         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 ;
                         OUTPUT " "  MCH_COOL ;
      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 ;
      IF_SET (MCH_COOL)   OUTPUT " "  MCH_COOL   ; 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" Zinit ;
      SET_ON  LIN_MOV CIRC_MOV ;
      Zold = Zinit ;

********************************************************
ORIGIN CHANGE:

*-----Save the first origin data for later use
   IF_SET (FirstOriginChange _EQ_ YES )
         XfirstOrigin      = X_ORIGIN  ;
         YfirstOrigin      = Y_ORIGIN  ;
         ZfirstOrigin      = Z_ORIGIN  ;
         FirstOriginChange = NO        ;
   END_IF ;

*.....distance between the rotation center and the ORIGIN
      TRANS_MATX = X_ORIGIN - XfirstOrigin - X_MACH  ;
      TRANS_MATY = Y_ORIGIN - YfirstOrigin - Y_MACH  ;
      TRANS_MATZ = Z_ORIGIN - ZfirstOrigin - Z_MACH  ;
*      SET_OFF CIR_INTERP ;    (去除 * 号则不输出G02、G03)
*.....check for change in orientation ( 4,5 axis positioining )
    FlagError  = NO ;
    Flagrotmac = no ;

   IF_SET ( I_ORIGIN _NE_ ORIGOLDI ) FLAGROTMAC = YES ; END_IF ;
   IF_SET ( J_ORIGIN _NE_ ORIGOLDJ ) FLAGROTMAC = YES ; END_IF ;
   IF_SET ( K_ORIGIN _NE_ ORIGOLDK ) FLAGROTMAC = YES ; END_IF ;

   IF_SET ( FLAGROTMAC _EQ_ YES )     FlagError  = YES ; END_IF ;

   IF_SET (FlagError _EQ_ YES)
       PRINT  \J "Error: ucs rotation was found in:" ;
       PRINT  \J "       TP=" TP_NAME " PROC=" PROC_NUM " (" PROC_NAME ")" ;
       PRINT  \J "Error: Cannot post ucs rotaion toolpaths" ;
       OUTPUT \J " M00 (Error: ucs rotation was found)" ;
       OUTPUT \J " M00 (TP=" TP_NAME " PROC=" PROC_NUM " - " PROC_NAME ")" ;
   END_IF ;

   ORIGOLDI = I_ORIGIN ;
   ORIGOLDJ = J_ORIGIN ;
   ORIGOLDK = K_ORIGIN ;

********************************************************
AXISCHANGE:
    FlagError  = NO ;
    IF_SET (AXIS_NUM  _GT_ 3)         FlagError = YES ; END_IF ;

    IF_SET (FlagError _EQ_ YES)
       PRINT  \J "Error: 4/5 axes motion was found in:" ;
       PRINT  \J "       TP=" TP_NAME " PROC=" PROC_NUM " (" PROC_NAME ")" ;
       PRINT  \J "Error: Cannot post 5 axes toolpaths" ;
       OUTPUT \J " M00 (Error: 4/5 axes motion was found)" ;
       OUTPUT \J " M00 (TP=" TP_NAME " PROC=" PROC_NUM " - " PROC_NAME ")" ;

    END_IF ;

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

BEGINNING OF SUB:
      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:
      SET_ON LIN_MOV CIRC_MOV X_CURPOS Y_CURPOS Z_CURPOS;
0.0.。。
回复 支持 反对

使用道具 举报

发表于 2019-3-28 00:00:47 | 显示全部楼层
快快快快快快快
呵呵呵呵呵 ...
回复 支持 反对

使用道具 举报

发表于 2019-3-29 16:43:27 | 显示全部楼层
Cimatron的四轴后处理比较少。
优胜专注教学 技术实力最强 www.ysug.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


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