Cimatron后置处理修改
Cimatron的后置处理技术研究
摘要:本文
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
Cimatron中一般后处理程序器的组成结构,利用Cimatron提供的后置处理
工具(GPP和IMSPOST)来修改后置处理文件,并讨论如何将一般的后置处理器修改成适
合于特定数控系统要求的后置处理器的思路与方法。
关键词:自动编程 刀位文件 后置处理 数控 NC代码
Study on the Post Processing of Cimatron The 36th Research Institute of CETC(314001) Yu honghua,Lv qiang,Chen wei feng
Abstract: This paper analyses the structure of general post processors in Cimatron,
modifies a post processing file by using post processing tools (GPP and IMSPOST )supplied by Cimatron , and discusses the ways and methods of how to modify a
normal post processing file to a specified post processing file for special NC system.
Key Words: automatic programming; tool-location files; post processing; NC; NC Code
1(前言
数控机床是按数控程序进行加工的。在应用CAM软件生成数控程序时,首先要产生刀位
文件,然后再通过后处理文件,将刀位文件编译成数控程序,这一点与手工编程是不同的。
刀位文件是反映刀具运动轨迹的文件,它是CAM软件按照编程员的加工工艺,在假定工件固
定不动,而刀具运动的情况下,由软件自动计算产生的。之所以要这样做,是因为不同的数
控机床采用的控制系统的指令是不同的,CAM软件的供应商,为使软件能够通用化,就先产
生刀位文件,然后再根据具体的控制系统,用后置处理工具,产生专用的后处理文件,并通
过它将刀位文件编译成数控程序。不同的CAM软件,后置处理工具也不尽相同,本文主要介
绍了Cimatron(IT和E)软件的两种后置处理工具的使用方法,并给出了定制Heidenhain控
制系统专用后置处理文件的实例。
2(Cimatron两种后置处理工具GPP和IMSPOST的功能特点
GPP(General Post Processor)是Cimatron公司自己开发的后置处理工具,通过对
demo.def, demo.exf
模板
个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载
后处理文件作适当的修改,可以生成符合用户需要的后处理文件,
主要特点是修改完成后使用方便,该方法目前主要用在3轴以下机床的后处理。
IMSPOST是IMS公司为广大用户提供的基于宏汇编的后处理程序编辑器,可支持各种
CAD/CAM软件生成的刀位文件的后置处理,并提供了多种后置处理文件库,可支持更广泛的
数控机床。同时也提供了非常丰富的定制功能,可生成任意形式的后置处理文件,从而可更
好地提供支持高速加工、多轴加工的后置处理。所有用户需要的后处理程序都可以通过执行
IMSPOST后生成。在大多数情况下,用户只需在IMSPOST软件的对话窗口和菜单项中编辑和定
义宏参数,不必进行任何宏程序的编制就可以得到为自己机床定制的后处理文件。
3(使用GPP和IMSPOST定制Heidenhain专用后置处理文件的实例
3.1用GPP定制Heidenhain数控系统后处理文件
1
图 1 Cimatron中与Nc有关的软件工具界面
GPP在后置处理中主要起作用的文件的后缀名为*.def、*.dex和*.exf,如demo.def、
demo.dex和demo.exf。demo.def文件主要用于数控系统的相关定义,如主轴开启、停止、
冷却液开、关等对应的控制指令等,可用图1所示的DFPost软件工具打开进行修改,内容比
较易懂,修改也不多,修改成满足Heidenhain和机床系统要求即可,可以改名为hnc.def。
用编辑程序如记事本,打开demo.exf文件,根据需要修改后,然后改名为hnc.exf,用
图1中的Dfexf编译后生成hnc.dex即可,如何修改hnc.exf文件,是本文要介绍的一个主
要内容,先介绍几个GPP系统变量如当前刀具名称CURR_TOOL,刀具直径DIAMETER_,当前X
坐标值X_CURPOS,圆弧中心的X坐标值X_CENTER等。下面为demo.exf文件部分内容的说明:
* DEMO 3 axes Post Processor for FANUC *号后面对程序的说明
********************************************************
* define private variables:
FORMAT (COORDINATES) Xold Yold Zold DXcenter DYcenter DZcenter ; FORMAT为变
量类型
********************************************************
INTERACTION (USER_1) "MAIN-PROGRAM-NUMBER" MainNum = 100 ;
INTERACTION为交互内容,可以输入。
********************************************************
NON_MODAL ALL_VAR; NON_MODAL 为非模
态
MODAL X_CURPOS Y_CURPOS Z_CURPOS ; MODAL 为模态
********************************************************
NEW_LINE_IS $ ;
IF_SET (FlagSeq _EQ_ NO) IF_SET为判断语句
OUTPUT \J ; OUTPUT为输出内容
********************************************************
LINEAR MOTION: 直线运动代码转换
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 ;
如果我们要在NC程序中加输出刀具半径说明的话,我们可以定义一个FORMAT
2
(COORDINATES)变量TOOLR,然后在TOOL CHANGE:的地方加上
TOOLR=0.5*DIAMETER_; DIAMETER_为系统变量
OUTPUT $ "TOOL DEF " CURR_TOOL " L+0" " R" TOOLR;
如果我们要在NC程序中输出符合Heidenhain数控系统的圆弧,可以在CIRCULAR MOTION:
中改为:
SET_ON X_CENTER Y_CENTER;
OUTPUT $ "CC" ; CC为Heidenhain中的圆弧中心符号
OUTPUT " X" X_CENTER ;
OUTPUT " Y" Y_CENTER ;
END_IF ;
FlagWC = YES ;
OUTPUT $ ;
IF_SET (CIRC_MOV) OUTPUT "C"
将修改和编译后的hnc.def、hnc.dex两个文件,放到Cimatron安装目录\var\post中,在生成输出数控程序时,就会出现hnc后置处理文件的选项,选择该文件就会生成Heidenhain控制系统的数控程序。
下面为用该后处理生产的NC代码,其它系统也可以按需要修改,一般修改OUTPUT后面的部分即可。
0 BEGIN PGM NCNAME MM
1 BLK FORM 0.1 Z X+0 Y+0 Z-50
2 BLK FORM 0.2 X+70 Y+160 Z+0
3 TOOL DEF 1 L+0 R3.
4 TOOL CALL 1 Z S1000
5 M6
6 M03
7 M09
8 L X-5 Y+76.59 Z+50 F 5000
9 L Z+1 F 5000
………
13 CC X+0 Y+125.241
14 C X-2.121 Y+127.362 DR-
15 L X+22.879 Y+152.362
……
38 CYCL DEF 1.4 DWELL
39 CYCL DEF 1.5 F 350
40 L X+10 Y+20 F 5000
41 L Z+3 F 5000
42 CYCL CALL
43 L X+40 F 5000 M99
……
47 M30
5000 END PGM NCNAME MM
3.2用IMSPOST定制Heidenhain数控系统后处理
利用IMSPOST后处理可以非常方便地对相应的数控系统进行设置,IMSPOST提供了如Funuc、Siemens、Heidenhain和Mazak等数控系统的后处理程序,提供了宏程序功能,能处
3
理绝大多数其他CAM软件的刀位文件。
定制Heidenhain数控系统后处理,可以新建一个库文件,也可以在已有的库文件上进行修改。根据我们使用的机床类型,选择了对Heidenhain407.lib库文件进行修改。打开Heidenhain407.lib文件,将End of program的代码设为M30,如图2所示,同样地,再将DRILL CYCLES中的Depth Format设为inverted sign(+/-)。然后在主菜单上选择USER,MULTI
图 2 Heidenhain数控系统后处理功能设置
HOME,输入G54,将加工坐标系的原点由机床原点改为工件原点,保存后形成新的后处理文件。
在IMSPOST中不但可以定制后处理文件,也能用定制后的后处理文件把刀位文件转换成数控程序。如我们首先在Cimatron中将刀具轨迹生成apt文件(需要把apt.def、apt.dex
var\post中),然后在IMSPOST主菜单中选择两个文件放到Cimatron安装目录\
execute,post process,在图3所示的弹出窗口的Input栏中选择要转换apt文件,默认Output栏中的文件名,在Input type栏中选择CIMATRON类型,然后点击Go,窗口就会显示转换进度。利用这个软件工具,还可以转换如CATIA、DELCAM、EUCLID、PTC、UNIGRAPHICS等其他CAM软件产生的刀位文件,注意需要在Input type栏中选择对应的类型。
虽然IMSPOST是IMS公司的通用后处理软件,但Cimatron软件与它有较好的集成,在
4 图 3 刀位文件转换成数控程序的窗口
Cimatron中输出数控程序时可以直接进入到IMSPOST环境中,而不需要先生产一个刀位文件,再进行转换,限于篇幅关系,本文不再展开论述。
利用IMSPOST的宏功能可以开发出用户需要的其它要求,如要求增加输出刀具信息,我们可以用主菜单General,Macro operation选项建立一新的宏,如图4所示,添加内容后点Apply。其中CLDATAN.1 为apt文件中TOOLINF/"DR2",2,4.0,0.0,30.0,15.0的"DR2",CALL
图 4 IMSPOST宏功能定义窗口
SEQNO/ON为输出序号等。利用该宏可以输出如下NC代码:
……
; DRILL
;(TOOL_NAME IS DR2 TOOL_DIA IS 4.0000) 利用宏产生的注释
20 TOOL CALL 2 Z S1000
21 L X+20. Y+9.862 F5000 M06
22 CYCL DEF 1.0 PECKING
……
4(结束语
Cimatron软件为用户提供了功能强大的通用CAD/CAM系统,但目前用户对其后置处理程序的使用比较陌生,用户在使用软件时由于不了解情况,没有对后处理文件进行适当修改,导致不能生成符合特定数控系统要求的NC程序,在进行手工修改时,如果没有全部更正,很可能造成事故。用本文介绍的两种方法生成的NC数控加工程序,经实际操作使用验证,完全符合要求,希望对有关人员有所启发。
参考文献
1 王卫兵.Cimatron数控编程实用教程.清华大学出版社.2003.
2 Heidenhain TNC430编程
手册
华为质量管理手册 下载焊接手册下载团建手册下载团建手册下载ld手册下载
.
3 Cimatron公司帮助文件.
5
--------------------------------------------------------------------------------
后置处理程序修改:
-------------------------------------------------------------------------------- 修改(程序尾)
OUTPUT $ " G00 G40 G80 G90 Z100. M09 " ;
OUTPUT $ " M5 " ;
OUTPUT $ " G91 G30 Z0." ;
OUTPUT $ " G91 G28 X0. Y0." ;
OUTPUT $ " M1 " ;
OUTPUT $ " M30 " ;
刀具序号-名称
OUTPUT $ " G90 G40 G80" ;
OUTPUT $ " G10 L2 P1 X0.0 Y0.0 Z-100.0";
OUTPUT $ " M1" ;
OUTPUT $ " (T"CURR_TOOL "- "CURR_NAME " )" 修改(程序头)
OUTPUT $ " G91 G30 Z0." ;
OUTPUT $ " G91 G28 X0. Y0." ;
OUTPUT $ " T" CURR_TOOL ;
OUTPUT $ " M6" ;
OUTPUT $ " M1" ;
OUTPUT $ " G90 G80 G00 G17 G40 G54 M23" ;
OUTPUT $ " G43 H" CURR_TOOL " Z" Zhome " S" SPIN_SPEED " " SPIN_DIR ;
用记事本打开你所使用的后处理文件*.EXF,找到以下内容,绿色部分为编辑修改的内容(可根据个人喜好修改)
END OF TAPE:
IF_SET (FirstTool _NE_ LastTool)
OUTPUT $ " T" NEXT_TOOL " M98 P" ChangeTool;
6
END_IF ;
OUTPUT $ " M30 " ; ---------(修改程序尾)
END OF FILE:
IF_SET (FlagSeq _EQ_ YES )
OUTPUT \J "%" ;
ELSE
OUTPUT \J " %" ;
END_IF ;
OUTPUT $ " ( " MESS_STR " )" ;
OUTPUT $ " ( Z_DOWN= "Z_DOWN" Z_UP= "Z_UP" )" ;
OUTPUT $ " (TOOL="CURR_NAME "; D="DIAMETER_ " R="TOOL_RAD" )" ;
OUTPUT $ " (DOWN STEP= " DOWN_STEP " SIDE STEP= " SIDE_STEP ")" ;
OUTPUT $ " (CONT. OFFSET= " CONT_OFST " CONT. TOL.= " CONT_TOL ")" ;
OUTPUT $ " (SRF. OFFSET= " PART_OFST " SRF. TOL.= "PART_TOL ")" ;
OUTPUT $ " (GEN.OFFSET="CONT_OFST" )" ;
OUTPUT $ " (TIME EST= "TIME_SHH":"TIME _SMM":"TIME_SSS")";
OUTPUT $ " (DATE="DATE_SYY"/"DATE_SMM"/"DATE_SDD" TIME="TIME_SHH ";"TIME_SMM";"TIME_SSS")" ;
******************************************************** FEED:
KEEP MCH_FEED ;
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:
SET_ON SPIN_SPEED SPIN_DIR ;
*-----save first tool number
FirstTool = CURR_TOOL ;
LastTool = CURR_TOOL ;
7
*-----tool cutter compensation register number
CutterComp = CURR_TOOL + DiaComp ;
*-----assuming 1st tool is in the spindle, there is no need * for tool change)
OUTPUT $ " T" CURR_TOOL ; 改" (T"CURR_TOOL "- "CURR_NAME " )" ;
*-----more then one tool in this run of the Post Processor
IF_SET (NEXT_TOOL _NE_ CURR_TOOL)
OUTPUT $ " T" NEXT_TOOL ;
END_IF ;
*-----standard tool change commands. (assuming 1st tool is in
OUTPUT $ " G90 G80 G00 G17 G40 G54" ;
OUTPUT $ " Z" Zhome " S" SPIN_SPEED " " SPIN_DIR ;
OUTPUT $ "( 刀具名称---" CURR_NAME "×" CLEAR_LENG ")";
OUTPUT $ "( 曲面偏移=" PART_OFST "曲面公差=" PART_TOL" 轮廓偏移=" CONT_OFST " )";
OUTPUT $ "( 程式名称=" TP_NAME "本程式由" USER_NAME "编制 )";
------------------------修改(程序头)
TOOL CHANGE:
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 $ " T" CURR_TOOL " M98 P" ChangeTool ;
OUTPUT $ " T" NEXT_TOOL ;
*-----standard tool change commands. (assuming 1st tool is in
OUTPUT $ " G90 G80 G00 G17 G40 G54" ;
OUTPUT $ " Z" Zhome " S" SPIN_SPEED " " SPIN_DIR ;
OUTPUT $ "( 刀具名称---" CURR_NAME "×" CLEAR_LENG ")";
OUTPUT $ "( 曲面偏移=" PART_OFST "曲面公差=" PART_TOL" 轮廓偏移=" CONT_OFST " )";
OUTPUT $ "( 程式名称=" TP_NAME "本程式由" USER_NAME "编制 )";
TOOL CHANGE: LAST:
SET_ON SPIN_SPEED SPIN_DIR ;
*-----save last tool number
LastTool = CURR_TOOL ;
*-----tool cutter compensation register number
CutterComp = CURR_TOOL + DiaComp ;
8
OUTPUT $ " T" CURR_TOOL " M98 P" ChangeTool ; *-----the last tool is the same as the first tool
IF_SET (NEXT_TOOL _NE_ CURR_TOOL)
OUTPUT $ " T" NEXT_TOOL ;
END_IF ;
*-----standard tool change commands. (assuming 1st tool is in
OUTPUT $ " G90 G80 G00 G17 G40 G54" ;
OUTPUT $ " Z" Zhome " S" SPIN_SPEED " " SPIN_DIR ;
OUTPUT $ "( 刀具名称---" CURR_NAME "×" CLEAR_LENG ")";
OUTPUT $ "( 曲面偏移=" PART_OFST "曲面公差=" PART_TOL" 轮廓偏移=" CONT_OFST " )";
OUTPUT $ "( 程式名称=" TP_NAME "本程式由" USER_NAME "编制 )";
说明:1、*注释或代表不执行此内容;
2、 引号里内容则按实输出;
3、修改保存完毕执行主菜单--NC--DFEXF--输入后处理名--回车即可。
4(( 复制到Cimatron根目录下面的var/post目录下面即可,
然后在后处理的时候按右键,找到想要的即可后处理了。)
--------------------------------------------------------------------------------
后处理结果
%
0100
G90 G80 G00 G17 G40 G54
Z30. S3000 M03
( 刀具名称---D6×60.)
( 曲面偏移=0.0曲面公差=0.01 轮廓偏移=-0.01 )
( 程式名称=TI-SRFPKT1本程式由sjh编制 )
G00 X50.008 Y-0.009 Z30.
Z13.
G01 Z10. F300
Y6.9991 F1000
Y7.0011 Z28.2461
.... .....
Y6.9986 Z-7.4387
X-50.009 Y-0.009 Z-7.4517
G00 Z30.
9
M30
%
10