cimatron后处理之 变量讲解(3)

2019-08-26 17:24

END OF TAPE: 使用完一把刀具之后 IF_SET (FirstTool _NE_ LastTool)

OUTPUT $ \ END_IF ;

OUTPUT $ \

END OF FILE: 代码文件的结束符 IF_SET (FlagSeq _EQ_ YES ) OUTPUT \\J \ ELSE

OUTPUT \\J \ END_IF ;

FEED:

KEEP MCH_FEED ; 如果F值没有改变,则此行程序不输出F SPIN:

KEEP SPIN_SPEED ;

COOLANT:

KEEP MCH_COOL ;

DWELL:

KEEP MCH_DWELL ;

CUTTER COMPENSATION: KEEP CUTCOM_ON ;

CUTTER COMPENSATION: COFF: KEEP CUTCOM_OFF ;

TOOL CHANGE: FIRST:第一次换刀,实际上就是程序头 TOOL CHANGE: 加工过程中的换刀 TOOL CHANGE: LAST: 最后一次换刀 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 $ \

*-----more then one tool in this run of the Post Processor IF_SET (NEXT_TOOL _NE_ CURR_TOOL) OUTPUT $ \ END_IF ;

*-----standard tool change commands. (assuming 1st tool is in OUTPUT $ \

OUTPUT $ \

如果是一把刀出一个程序实际上只需要修改TOOL CHANGE: FIRST就可以了,比如改成这样: TOOL CHANGE: FIRST:

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 ;

OUTPUT $ \ OUTPUT $ \ OUTPUT $ \

LINEAR MOTION: FAST: G00程序的输出格式 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 $ \ END_IF ;

OUTPUT $ ;

IF_SET (LIN_MOV) OUTPUT LIN_MOV ; END_IF ; IF_SET (X_CURPOS) OUTPUT \ IF_SET (Y_CURPOS) OUTPUT \ IF_SET (Z_CURPOS) OUTPUT \ IF_SET (MCH_COOL) OUTPUT MCH_COOL ; END_IF ; SET_ON CIRC_MOV ; Xold = X_CURPOS ; Yold = Y_CURPOS ; Zold = Z_CURPOS ;

LINEAR MOTION: G01的输出格式 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 $ \ END_IF ;

OUTPUT $ ; 换行

IF_SET (LIN_MOV) OUTPUT LIN_MOV ; END_IF ;

IF_SET (CUTCOM_ON) OUTPUT CUTCOM_ON \ IF_SET (CUTCOM_OFF) OUTPUT CUTCOM_OFF ; END_IF ; IF_SET (X_CURPOS) OUTPUT \ IF_SET (Y_CURPOS) OUTPUT \ IF_SET (Z_CURPOS) OUTPUT \ IF_SET (MCH_FEED) OUTPUT \ IF_SET (MCH_COOL) OUTPUT MCH_COOL ; 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 $ \ END_IF ;

DXcenter = X_CENTER - Xold ; I值为相对于圆心相对于起点的X方向距离,有的机床不是这样的啊!!如果弄错了,那么(很想在这里加入几个哭脸,可是不知道怎么弄,郁闷ing) DYcenter = Y_CENTER - Yold ; DZcenter = Z_CENTER - Zold ; OUTPUT $ ;

IF_SET (CIRC_MOV) OUTPUT CIRC_MOV ; END_IF ; IF_SET (X_CURPOS) OUTPUT \ IF_SET (Y_CURPOS) OUTPUT \

IF_SET (Z_CURPOS) OUTPUT \这行应该删掉 IF_SET (DXcenter _NE_ 0.0) OUTPUT \ IF_SET (DYcenter _NE_ 0.0) OUTPUT \

IF_SET (DZcenter _NE_ 0.0) OUTPUT \这行也应该删掉

IF_SET (MCH_FEED) OUTPUT \ IF_SET (MCH_COOL) OUTPUT MCH_COOL ; END_IF ; SET_ON LIN_MOV ; Xold = X_CURPOS ; Yold = Y_CURPOS ; Zold = Z_CURPOS ;

我是这样指定输出R的,不知道各位还有什么好办法: radius=sqrt(DXcenter*DXcenter+DYcenter*DYcenter) ; OUTPUT \

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 $ \ 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 $ \ OUTPUT $ ;

OUTPUT CYC_RETR ; OUTPUT CYC_CODE ; OUTPUT \ OUTPUT \ OUTPUT \ OUTPUT \

IF_SET (CYC_PECK) OUTPUT \ IF_SET (CYC_DWELL) OUTPUT \ IF_SET (CYC_XSHFT) OUTPUT \ IF_SET (CYC_YSHFT) OUTPUT \ OUTPUT \ 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 \ IF_SET (Y_CURPOS) OUTPUT \ IF_SET (Depth) OUTPUT \ IF_SET (Clear) OUTPUT \

IF_SET (CYC_PECK) OUTPUT \ IF_SET (CYC_DWELL) OUTPUT \ IF_SET (CYC_XSHFT) OUTPUT \ IF_SET (CYC_YSHFT) OUTPUT \ IF_SET (SPIN_SPEED) OUTPUT \ IF_SET (SPIN_DIR) OUTPUT SPIN_DIR ; END_IF ; IF_SET (MCH_FEED) OUTPUT \ 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 $ \ 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 ;


cimatron后处理之 变量讲解(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:建筑大师名言

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: