Cimatron 后置处理技术
- 格式:doc
- 大小:84.50 KB
- 文档页数:12
Mastercam后置处理文件及其设定方法详细说明Mastercam后置处理文件及其设定方法详细说明mastercam系统配置的是适应单一类型控制系统的通用后置处理,该后置处理提供了一种功能数据库模型,用户根据数控机床和数控系统的具体情况,可以对其数据库进行修改和编译,定制出适应某一数控机床的专用后置处理程序。
mastercam系统后置处理文件的扩展名为pst,称为pst文件,它定义了切削加工参数、nc程序格式、辅助工艺指令,设置了接口功能参数等,其结构由八个部分组成:1.注解程序每一列前有“#”符号表示该列为不影响程序执行的文字注解。
如:# mi2-absolute, or incremental positioning0=absolute1=incremental表示mi2定义编程时数值给定方式,若mi=0为绝对值编程,mi=1为增量值编程。
在这一部分里,定义了数控系统编程的所有准备功能g代码格式和辅助功能m代码格式。
2.程序纠错程序中可以插入文字提示来帮助纠错,并显示在屏幕上。
如:# error messages (错误信息)psuberror # arc output not allowederror-wrong axis used in axis substitution, e如果展开图形卷成旋转轴时,轴替换出错,则在程序中会出现上面引号中的错误提示。
3.定义变量的数据类型、使用格式和常量赋值如规定g代码和m代码是不带小数点的两位整数,多轴加工中心的旋转轴的地址代码是a、b和c,圆弧长度允许误差为0.002,系统允许误差为0.00005,进给速度最大值为10m/min等。
4.定义问题可以根据机床加工需要,插入一个问题给后置处理程序执行。
如定义nc程序的目录,定义启动和退出后置处理程序时的c-hook程序名。
5.字符串列表字符串起始字母为s,可以依照数值选取字符串,字符串可以由两个或更多的字符来组成。
Mastercam后置处理文件及其设定方法详细说明Mastercam后置处理文件及其设定方法详细说明mastercam系统配置的是适应单一类型控制系统的通用后置处理,该后置处理提供了一种功能数据库模型,用户根据数控机床和数控系统的具体情况,可以对其数据库进行修改和编译,定制出适应某一数控机床的专用后置处理程序。
mastercam系统后置处理文件的扩展名为pst,称为pst文件,它定义了切削加工参数、nc程序格式、辅助工艺指令,设置了接口功能参数等,其结构由八个部分组成:1.注解程序每一列前有“#”符号表示该列为不影响程序执行的文字注解。
如:# mi2-absolute, or incremental positioning0=absolute1=incremental表示mi2定义编程时数值给定方式,若mi=0为绝对值编程,mi=1为增量值编程。
在这一部分里,定义了数控系统编程的所有准备功能g代码格式和辅助功能m代码格式。
2.程序纠错程序中可以插入文字提示来帮助纠错,并显示在屏幕上。
如:# error messages (错误信息)psuberror # arc output not allowederror-wrong axis used in axis substitution, e如果展开图形卷成旋转轴时,轴替换出错,则在程序中会出现上面引号中的错误提示。
3.定义变量的数据类型、使用格式和常量赋值如规定g代码和m代码是不带小数点的两位整数,多轴加工中心的旋转轴的地址代码是a、b和c,圆弧长度允许误差为0.002,系统允许误差为0.00005,进给速度最大值为10m/min等。
4.定义问题可以根据机床加工需要,插入一个问题给后置处理程序执行。
如定义nc程序的目录,定义启动和退出后置处理程序时的c-hook程序名。
5.字符串列表字符串起始字母为s,可以依照数值选取字符串,字符串可以由两个或更多的字符来组成。
第3卷第2期2010年6月上海电气技术J O U R N A I。
0F S H A N G H A l E I。
E C TR I C T EC H N O I。
0G Y文章编号:1674—540X(2010)02—017一05V01.3N o.2 Jun.20l o五轴龙门摆头机床C i m at r on后置处理的研究周吉,尹冠群,杨家荣(上海电气集团股份有限公司中央研究院,上海200070)摘要:五轴数控机床是加5-复杂零件的现代化设备,多样化的结构是其发展的必然趋势。
由于五轴数控加工编程复杂、易出错,后置处理文件的正确性尤为重要。
介绍了C i m a t r on两种后置处理软件G PP和I M SPO ST的功能特点,针对Q L M305龙门五轴摆头机床C i m at r on后置处理深入研究,并给出关键参数的测量、计算和设置的分析案例。
关键词:五轴;C i m at r on;后置处理中图分类号:T G659;T G519.54文献标识码:AB as ed on t he Pr opel l erC i m at r on E—pr ocess i ng T e chnol ogy R e sea r c hZ H O U J i,yJ N G uanqun,Y A N G J i ar ong(Shanghai E l ect r i c G r oup C o.,Lt d.C ent r al A cade m e,Shangh ai200070,C hi na)A bs t r a ct:5一axi s C N C pr ocess i ng c om pl ex c om ponent s m ode r n equi pm ent,di ver s i fi ed s t r uc t u r e i s t he i ne vi t abl e t r end of i ts de vel opm e nt.B ec aus e5-a xi s nc pr ogr am m i ng com pl e x and er r or—pr one,pos t pr oces s i ng t he c orr e c t nes s of t he doc um e nt i s par t i cul ar l y i m por t ant.T he pap er i nt r oduces t w o pos t pr oces s i ngC i m at r on G PP s of t w ar eI M SPO ST and t he f eat ur es Q LM305f or fi ve-a xi s m a chi ne se t head l ongm e n C i m at r on pos t pr oces s i ng t h or ou gh r es ear ch,and gi ves t he ke y par am et er m eas ur e m ent,c al c ul at i on and anal ysi s of t he se t.K ey w or ds:5一axi s;C i m at r on;pos t pr oces s i ng无论是哪种C A M软件,其主要用途都是要生成在机床上加工零件的刀具轨迹(简称刀轨)。
Mastercam软件的后置处理文件及其设定方法一、前言M astercam是一套应广泛的CAD/CAM/CAE软件包,它采用图形义互式自动编程方法实现NC程序的编制。
义互式编程是一种人机对话的编程方法,编程人员根据屏幕提示的内容,反复与计算机对话,选择菜单目录或计算机的提问,将所有的问题回答完毕后即可以生生成NC程序。
NC程序的自动产生是受软件的后置处理功能控制的,不同的加工模块(如车削、铣削、线切割等和不同的数控系统对应于不同的后处理文件。
软件当前使用哪一个后处理文件,是在软件安装时设定的,而在具体应用软件进行编程之前,一般还需要对当前的后处理文件进行必要的修改和设定,以使其符合系统要求和使用者的编程习惯。
有些用户在使用软件时由于不了解情况,没有对后处理文件进行修改,导致生成的NC程序中某些固定的地方经常出现一些多余的内容,或者总是漏掉某些词句,这样,在将程序传入数控机床之前,就必须对程序进行手工修改,如果没有全部更正,则可能造成事故。
例如,某机床的控制系统采用G54工件坐标系定位,G90绝对坐标编程,要求生成的NC程序前面必须有G54G90设置,如果后处理文件的设置为G55G91,则每次生成的程序中含有G55G91,却不一定有G5 4G90,如果在加工时没有进行手工改正,则势必造成加工错误。
二、M astercam软件的后置处理文件后置处理文件简称后处理文件,是一种可以由用户以回答问题的形式自行修改的文件,其扩展名为.P ST。
在应用M astercam软件的自动编程功能之前,必须先对这个文件进行编辑,才能在执行后处理程序时产生符合某种控制器需要和使用者习惯的NC程序,也就是说后处理程序可以将一种控制器的NC程序定义成该控制器所使用的格式。
以FANUC系列的后处理为例,它既可以定义成惯用于FANUC3 M控器所使用的格式,也可以定义成FANUC6M控制器所使用的格式,但不能用来定义其它系列的控制器。
后处理修改详解〖第一课〗了解GPP后处理必须的过程GPP后处理,必须的过程莫过编译了。
后处理修改的过程如下:一、有记事本或专用的后处理修改器来修改EXF文件,EXF文件又称源代码。
二、编译,利用修改好的EXF文件,生成可用的DEX文件。
三、测试,看看您修改的后处理是否合乎您的需要。
另外,有些修改内容是不在EXF中,而是属于DEF的内容,这时候不需要修改EXF文件,只需要用另外的工具来修改就可以了。
下面会给出图片来解释。
打开DEMO.EXF,开头的内容就是关于自定义的变量类型了* define private variables:FORMA T (SEQUENCING) Seq SubSeq ; --行号类型有关的变量FORMA T (TOOL) CutterComp FirstTool LastTool ; --刀具类型有关的变量FORMA T (COORDINA TES) Xold Y old Zold DXcenter DYcenter DZcenter ; --坐标类型有关的变量FORMA T (COORDINA TES) Zinit Clear Depth ;FORMA T (COORDINA TES) Xhome Yhome Zhome ;FORMA T (COORDINA TES) XfirstOrigin YfirstOrigin ZfirstOrigin ;FORMA T (USER_1) CurrSubNum ;FORMA T (coordinates) ORIGOLDI ORIGOLDJ ORIGOLDK ;* define private flags:FORMA T (USER_2) FlagSub FlagSeq FlagSpin; --与用户2定义的类型有关的变量FORMA T (USER_2) FirstOriginChange FlagError Flagrotmac ;* define private constants:FORMA T (USER_2) YES NO ;* change the format of existing variables:FORMA T (USER_1) SUB_NUMBER ;此处偶把其看作是"户籍登记处",用户自己定义的变量必须在此登记,否则将编译错误.一旦选定类型,其变量格式由*.DEF文件对应部分控制。
文章编号:1674-540X(2011)02-023-05Cimatron和UG软件后置处理的比较及应用尹冠群,周吉,程松(上海电气集团股份有限公司中央研究院,上海200070)摘要:针对五轴数控加工机床的应用,分别基于Cimatron和Unigraphics(UG)软件的后置处理系统,对零件刀路轨迹文件的后置处理及生成五轴加工系统可识别的代码等问题进行了研究;分析与研究了DMU70V型五轴数控机床中心坐标转换数学模型。
比较此两种软件的后置处理情况、资源整合合理利用达到最恰当的使用和处理结果,为不同场合选用不同的后置处理提供依据。
关键词:五轴联动加工中心;后置处理;Cimatron;Unigraphics(UG)中图分类号:TG659文献标志码:ACommonApplicationofCimatronandUGPostProcessingYINGuanqun,ZHOUJi,CHENGSong(ShanghaiElectricGroupCo.,Ltd.CentralAcademe,Shanghai200070,China)Abstract:Fromtheapplicationperspectiveof5-axismachiningtool,theproblemofcutterlocationfilegeneratedintheCimatronandUnigrahpics(UG)postprocessingsystemthatistranslatedintothecodeidentifiedby5-axismachiningtoolNCsystemisstudied.AfterhavinganalyzedandresearchedthoroughlythemathematicalmodelofcoordinatetransformationofCNCmillingmachiningcenterDMU70V.Comparingthesituationofthepostprocessingbytwosoftware,itmakesresourcesintegrateandmeetsthemostapplicationandprocessingresultproperly.Moreover,itprovidesthebasisofusingdifferentpostprocessingsoftwareindifferentoccasions.Keywords:5-axislinkagemachiningcenter;postprocessing;Cimatron;Unigraphics(UG)随着数控加工技术的不断发展,五轴和高速加工必将成为主流。
Mastercam软件的后置处理文件及其设定方法Mastercam软件的后置处理文件,简称后处理文件,是一种可以由用户以回答问题的形式自行修改的文件,其扩展名为.pst。
在应用Mastercam软件的自动编程功能之前,必须先对这个文件进行编辑,才能在执行后处理程序时产生符合某种控制器需要和使用者习惯的NC程序,也就是说后处理程序可以将一种控制器的NC程序定义成该控制器所使用的格式。
以FANUC系列的后处理为例,它既可以定义成惯用于FANUC 0M控制器所使用的格式,也可以定义成FANUC6M控制器所使用的格式,但不能用来定义其它系列的控制器(例如西门子系统)。
不同系列的后处理文件在内容上略有不同,但其格式及主体部分是相似的,一般都包括以下几个部分。
1.Annotation(注释)对后处理文件及其设定方法作一般性介绍。
2.问题该部分为后处理文件的主要部分,FANUC系列的后处理文件中共包括200个问题,对这些问题的回答将决定将来输出的NC程序的格式。
3.Commands(指令)指令的作用是对它后面的变量施加影响。
如oldvars和newvars指令,在回答问题3时若写于刀具号码变量t之前,则使用oldvars时将调用前一把刀具的号码,使用newvars时将调用现在所使用的刀具号码。
4.Variables(变量)给出了"问题"中所使用的各种变量的定义.FANUC系列的后处理文件中共定义了26个变量,如prog-n=程序号码,f=进给率,s=主轴转速,t=刀具号码等。
后处理文件的设定方法1.后处理文件编辑的一般规则对后处理文件的编辑和设定只需要对第(4)部分的"问题"进行回答。
PST文件的每个问题前都有一个号码并在号码后加一个小数点。
如果问题前没有号码,那么这个问题在执行后处理时是被忽略不用的。
回答号码20以前的问题时,需要在问题的下一行输入所回答的文字,而且回答的内容可以包括多行,20号以后问题均带有问号且回答时直接写在问号的后面,不得换行,这一类的问题常常是以"y""n"来回答。
Mastercam是美国CNC Software公司开发的一套CAD/CAM软件,最早的版本为V3.0,可运行于DOS系统.V5.0以上版本运行于Windows操作系统。
由于其诞生较早且功能齐全,特别是在CNC编程上快捷方便,因此有很高的市场占有率.软件的CAD功能可以构建2D或3D图形,架构自由曲面的功能远远胜于其他同类软件.在CAM方面更是直观和方便,可直接在点,线,面和实体上产生刀路.下面重点介绍它的后处理设置.后置处理文件简称后处理文件,是一种可以由用户以回答问题的形式自行修改的文件,其扩展名为.PST。
安装MASTERCAM时系统会自动安装默认的后处理为MPFAN.PST.在应用Mastercam软件的自动编程功能之前,必须先对这个文件进行编辑,才能在执行后处理程序时产生符合某种控制器需要和使用者习惯的NC程序,如果没有全部更正,则可能造成事故.例如,某机床的控制系统采用G54工件坐标系定位,G90绝对坐标编程,要求生成的NC程序前面必须有G54G90设置,如果后处理文件的设置为G55G91,则每次生成的程序中含有G55G91,却不一定有G54G90,如果在加工时没有进行手工改正,则势必造成加工错误.本文介绍了Mastercam后处理文件的内容以及修改和设置的方法,供有关人员参考.也就是说后处理程序可以将一种控制器的NC程序,定义成该控制器所使用的格式.以FANUC系列的后处理系统为例,它可以定义成惯用于FANUC 3M控制器所使用的格式,也可以定义成FANUC 6M 控制器所使用的格式,但不能用来定义其它系列的控制器.不同系列的后处理文件,在内容上略有不同,但其格式及主体部分是相似的,一般都包括以下部分:1) Annotation(注释).对后处理文件及其设定方法作一般性介绍.此部分内容一般都不用更改.以下是截取的部分注释:(注释前都带#号,系统在执行代码处理时是不会读取前面带#号的语句的.)# Post Name : MPFAN# Product : MILL# Machine Name : GENERIC FANUC# Control Name : GENERIC FANUC# Description : GENERIC FANUC MILL POST# Associated Post : NONE# Mill/Turn : NO# 4-axis/Axis subs. : YES# 5-axis : NO# Subprograms : YES# Executable : MP v9.0## WARNING: THIS POST IS GENERIC AND IS INTENDED FOR MODIFICATION TO# THE MACHINE TOOL REQUIREMENTS AND PERSONAL PREFERENCE.2) Debugging and Factory Set Program Switches (系统程序规划).此部分是MASTERCAM版本的后处理系统规划,每个版本都大同小异,一般不需更改.以下截取的是9.0版的)m_one : -1 #Define constantzero : 0 #Define constantone : 1 #Define constanttwo : 2 #Define constantthree : 3 #Define constantfour : 4 #Define constantfive : 5 #Define constantc9k : 999 #Define constantfastmode : yes #Enable Quick Post Processing, (set to no for debug)bug1 : 2 #0=No display, 1=Generic list box, 2=Editorbug2 : 40 #Append postline labels, non-zero is column position?bug3 : 0 #Append whatline no. to each NC line?bug4 : 1 #Append NCI line no. to each NC line?whatno : yes #Do not perform whatline branches? (leave as yes)get_1004 : 1 #Find gcode 1004 with getnextop?rpd_typ_v7 : 0 #Use Version 7 style contour flags/processing?strtool_v7 : 2 #Use Version 7+ toolname?tlchng_aft : 2 #Delay call to toolchange until move linecant_tlchng : 1 #Ignore cantext entry on move with tlchng_aftnewglobal : 1 #Error checking for global variablesgetnextop : 0 #Build the next variable table3) General Output Settings(常规后处理设定).此部分可视情况更改,以适合机台或个人使用.以下截取的是9.0版的一些常规设定.冒号前面的是变量,冒号后面的是设定值,#号后面是注解(一般是说明0代表什么,1代表什么,2代表什么,yes或no 应该不用翻译了吧?!)英文后面的中文注解是我加进去的,翻译的不是很详细,但相信大家能看懂.没有翻译的就表示我根本不会或此设定不常用....嘿嘿...sub_level : 1 #Enable automatic subprogram support(启用自动支持子程式) breakarcs : 2 #Break arcs, 0 = no, 1 = quadrants, 2 = 180deg. max arcs(打断圆弧方式)arcoutput : 1 #0 = IJK, 1 = R no sign, 2 = R signed neg. over 180(转出圆弧方式)arctype : 2 #Arc center 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc.do_full_arc : 0 #Allow full circle output? 0=no, 1=no (是否转成整圆方式) helix_arc : 0 #Support helix arc output, 0=no, 1=all planes,2=XY plane only(是否转成螺旋弧)arccheck : 1 #Check for small arcs, convert to linear(是否检测小圆弧并将其转成线)atol : .01 #Angularity tolerance for arccheck = 2(圆弧角度公差)ltol : .002 #Length tolerance for arccheck = 1(圆弧长度公差)vtol : .1 #System tolerance(系统公差)maxfeedpm : 500 #Limit for feed in inch/min(最大进给-英制)ltol_m : .05 #Length tolerance for arccheck = 1, metric(圆弧长度公差-公制) vtol_m : .0025 #System tolerance, metric(系统公差-公制)maxfeedpm_m : 10000 #Limit for feed in mm/min(最大进给-公制)force_wcs : no #Force WCS output at every toolchange?(换刀时是否转出WCS 坐标)spaces : 0 #Number of spaces to add between fields(两行之间是否加入空格) omitseq : yes #Omit sequence numbers?(是否省略序列号)seqmax : 9999 #Max. sequence number(最大序列号)stagetool : 0 #0 = Do not pre-stage tools, 1 = Stage tools(是否沿用刀具) use_gear : 0 #Output gear selection code, 0=no, 1=no (是否转成齿轮代码) max_speed : 10000 #Maximum spindle speed(最大转速)min_speed : 50 #Minimum spindle speed(最小转速)nobrk : no #Omit breakup of x, y & z rapid movesprogname : 0 #Use uppercase for program name (sprogname)(程式名称是否使用大写)4)中间还有一些例如:Common User-defined(指令设定),Format statements(格式报告),definitions for NC output(NC代码限定),Error messages(出错信息),Toolchange / NC output Variable Formats(刀具变量)等基本上都是系统固定格式,不需要更改.在此就不再详述.当然,我也不建议你更改这些项目,如果你改错的话,系统很可能不执行或机台报警......5) Start of File and Toolchange Setup(文本内容和换刀设定).此部分内容很重要,很多使用者都从这里着手把程式改成自己需要的格式.以下截取的是9.0版的部分内容,其中有些是我根据自己需要更改的,中文是我加的注解.引号内是可以更改的内容."%", e(程式开头的百分号)*progno, e(程式号码)comment(注解,可有可无,如不需要则删除此句)"(PROGRAM NAME - ", sprogname, ")", e(程式名称,可有可无)"(", *tnote, *toffnote, *tlngnote, *tldia, ")", e(刀具直径及补正参数显示,如不需要则把此整句删除)"(DATE=DD-MM-YY - ", date, " TIME=HH:MM - ", time, ")", e(程式日期显示,可有可无)pbld, n, *"/M99", e (我自己加的一句,如不需要则整句删除,而不是只删除引号内的内容)pbld, n, *"G90", "G92","X0.Y0.Z10.", e(定义加工原点,也可以改为G54坐标) sav_absinc = absinc (绝对坐标系)......(中间省略的部分是系统根据刀路自动转出的程式,一般不必改)......(以下几句是出现在程式尾,可以根据需要添加或删除)n, "Z10.", e (加工完成后提刀至安全高度)n, "X0.Y0.", e (归零)n, "G91", e (转用相对坐标)n, "M99", e (回到主程式)mergesub(此四句为程式结尾固定语句,不必理它)clearsubmergeauxclearaux"%", e(程式尾)。
Mastercam后置处理文件及其设定方法详细说明mastercam系统配置的是适应单一类型控制系统的通用后置处理,该后置处理提供了一种功能数据库模型,用户根据数控机床和数控系统的具体情况,可以对其数据库进行修改和编译,定制出适应某一数控机床的专用后置处理程序。
mastercam系统后置处理文件的扩展名为pst,称为pst文件,它定义了切削加工参数、nc程序格式、辅助工艺指令,设置了接口功能参数等,其结构由八个部分组成:1.注解程序每一列前有“#”符号表示该列为不影响程序执行的文字注解。
如:# mi2-absolute, or incremental positioning0=absolute1=incremental表示mi2定义编程时数值给定方式,若mi=0为绝对值编程,mi=1为增量值编程。
在这一部分里,定义了数控系统编程的所有准备功能g代码格式和辅助功能m代码格式。
2.程序纠错程序中可以插入文字提示来帮助纠错,并显示在屏幕上。
如:# error messages (错误信息)psuberror # arc output not allowed"error-wrong axis used in axis substitution", e如果展开图形卷成旋转轴时,轴替换出错,则在程序中会出现上面引号中的错误提示。
3.定义变量的数据类型、使用格式和常量赋值如规定g代码和m代码是不带小数点的两位整数,多轴加工中心的旋转轴的地址代码是a、b和c,圆弧长度允许误差为0.002,系统允许误差为0.00005,进给速度最大值为10m/min等。
4.定义问题可以根据机床加工需要,插入一个问题给后置处理程序执行。
如定义nc程序的目录,定义启动和退出后置处理程序时的c-hook程序名。
5.字符串列表字符串起始字母为s,可以依照数值选取字符串,字符串可以由两个或更多的字符来组成。
字符串sg17,表示指定xy加工平面,nc程序中出现的是g17,scc1表示刀具半径左补偿,nc程序中出现的是g41,字符串sccomp代表刀具半径补偿建立或取消。
cimatron后处理cimatron后处理后处理一套GPP的POST运行,至少有几个文件支撑,请具体说明。
GPP需要至少两个文件,分别是demo.def, demo.dex,一般安装之后还有一个demo.exf文件,这个文件不起实际作用,是编译成DEF之前的过程文件。
目录在\\var\post目录下。
题2:一套IMS的POST运行,至少有几个文件支撑,请具体说明。
IMS需要一个文件,如\\var\ims\imspost\prjfiles\fanuc0.prj,另外还有一个相关的文件很重要,如三轴立式的机床是\\var\ims\imspost\mchfiles\vertical.mch,当然还有\var\ims\imspost\deffiles\cimatron.def,它指定了APT的特殊格式希望可以多交流,将这个问题谈得深一点,如:1.在GPP中程序头加入刀具信息等;2.在GPP中指定代码文件的放置目录;3.在GPP中指定不使用圆弧插补;4.在IMS中检验APT程序;5.在IMS中指定使用刀尖作为对刀点;matthews兄和sirhc兄都说到点子上了,看来大伙儿对POST还是很有基础的。
我把这两个问题的答案综合一下,讲解就从这个突破口开始。
题1:一套GPP的POST运行,至少有2个文件支撑,分别为*.DEX和*.DEF,IT版在\var\post目录下,E版在CIM_E\IT\var\post目录下。
请注意我说的“至少”,因为还有一个*.CMD文件起着关键作用,比如指定G代码的存放目录,连接外挂程序,删除多余的伴随文件等。
*.CMD文件是否要起作用,由*.DEF文件中的一个控制项来决定。
如何设置,以后会讲。
而*.EXF文件虽然在POST运行时不需要,但POST设置全靠它,因此不能抛在一边。
*.EXF文件是GPP型POST的源代码,能手工编辑,有可读性。
*.DEX文件是GPP型POST的执行代码,类似二进制文件,很难手工编辑,没可读性。
Cimatron的后置处理技术7438240598 后处理修改详解〖第一课〗了解GPP后处理必须的过程GPP后处理,必须的过程莫过编译了。
后处理修改的过程如下:一、有记事本或专用的后处理修改器来修改EXF文件,EXF文件又称源代码。
二、编译,利用修改好的EXF文件,生成可用的DEX文件。
三、测试,看看您修改的后处理是否合乎您的需要。
另外,有些修改内容是不在EXF中,而是属于DEF的内容,这时候不需要修改EXF文件,只需要用另外的工具来修改就可以了。
下面会给出图片来解释。
打开DEMO.EXF,开头的内容就是关于自定义的变量类型了* define private variables:FORMAT (SEQUENCING) Seq SubSeq ; --行号类型有关的变量FORMAT (TOOL) CutterComp FirstTool LastTool ; --刀具类型有关的变量FORMAT (COORDINATES) Xold Yold Zold DXcenter DYcenter DZcenter ; --坐标类型有关的变量 FORMAT (COORDINATES) Zinit Clear Depth ; FORMAT (COORDINATES) Xhome Yhome Zhome ; FORMAT (COORDINATES) XfirstOrigin YfirstOrigin ZfirstOrigin ;FORMAT (USER_1) CurrSubNum ;FORMAT (coordinates) ORIGOLDI ORIGOLDJ ORIGOLDK ;* define private flags:FORMAT (USER_2) FlagSub FlagSeq FlagSpin; --与用户2定义的类型有关的变量 FORMAT (USER_2) FirstOriginChange FlagError Flagrotmac ;* define private constants:FORMAT (USER_2) YES NO ;* change the format of existing variables: FORMAT (USER_1)SUB_NUMBER ;此处偶把其看作是"户籍登记处",用户自己定义的变量必须在此登记,否则将编译错误.一旦选定类型,其变量格式由*.DEF文件对应部分控制。
Cimatron后置处理修改[宝典]Cimatron的后置处理技术研究摘要:本文分析Cimatron中一般后处理程序器的组成结构,利用Cimatron提供的后置处理工具(GPP和IMSPOST)来修改后置处理文件,并讨论如何将一般的后置处理器修改成适合于特定数控系统要求的后置处理器的思路与方法。
关键词:自动编程刀位文件后置处理数控 NC代码Study on the Post Processing of CimatronThe 36th Research Institute of CETC(314001) Yu honghua,Lv qiang,Chen wei fengAbstract: 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 Code1(前言数控机床是按数控程序进行加工的。
在应用CAM软件生成数控程序时,首先要产生刀位文件,然后再通过后处理文件,将刀位文件编译成数控程序,这一点与手工编程是不同的。
刀位文件是反映刀具运动轨迹的文件,它是CAM软件按照编程员的加工工艺,在假定工件固定不动,而刀具运动的情况下,由软件自动计算产生的。
后处理修改详解〖第一课〗了解GPP后处理必须的过程GPP后处理,必须的过程莫过编译了。
后处理修改的过程如下:一、有记事本或专用的后处理修改器来修改EXF文件,EXF文件又称源代码。
二、编译,利用修改好的EXF文件,生成可用的DEX文件。
三、测试,看看您修改的后处理是否合乎您的需要。
另外,有些修改内容是不在EXF中,而是属于DEF的内容,这时候不需要修改EXF文件,只需要用另外的工具来修改就可以了。
下面会给出图片来解释。
打开DEMO.EXF,开头的内容就是关于自定义的变量类型了* define private variables:FORMAT (SEQUENCING) Seq SubSeq ; --行号类型有关的变量FORMAT (TOOL) CutterComp FirstTool LastTool ; --刀具类型有关的变量FORMAT (COORDINATES) Xold Yold Zold DXcenter DYcenter DZcenter ; --坐标类型有关的变量FORMAT (COORDINA TES) Zinit Clear Depth ;FORMAT (COORDINA TES) Xhome Yhome Zhome ;FORMAT (COORDINA TES) XfirstOrigin YfirstOrigin ZfirstOrigin ;FORMAT (USER_1) CurrSubNum ;FORMAT (coordinates) ORIGOLDI ORIGOLDJ ORIGOLDK ;* define private flags:FORMAT (USER_2) FlagSub FlagSeq FlagSpin; --与用户2定义的类型有关的变量FORMAT (USER_2) FirstOriginChange FlagError Flagrotmac ;* define private constants:FORMAT (USER_2) YES NO ;* change the format of existing variables:FORMAT (USER_1) SUB_NUMBER ;此处偶把其看作是"户籍登记处",用户自己定义的变量必须在此登记,否则将编译错误.一旦选定类型,其变量格式由*.DEF文件对应部分控制。
后处理修改详解〖第一课〗了解GPP后处理必须的过程GPP后处理,必须的过程莫过编译了。
后处理修改的过程如下:一、有记事本或专用的后处理修改器来修改EXF文件,EXF文件又称源代码。
二、编译,利用修改好的EXF文件,生成可用的DEX文件。
三、测试,看看您修改的后处理是否合乎您的需要。
另外,有些修改内容是不在EXF中,而是属于DEF的内容,这时候不需要修改EXF文件,只需要用另外的工具来修改就可以了。
下面会给出图片来解释。
打开DEMO.EXF,开头的内容就是关于自定义的变量类型了* define private variables:FORMA T (SEQUENCING) Seq SubSeq ; --行号类型有关的变量FORMA T (TOOL) CutterComp FirstTool LastTool ; --刀具类型有关的变量FORMA T (COORDINATES) Xold Yold Zold DXcenter DYcenter DZcenter ; --坐标类型有关的变量FORMA T (COORDINATES) Zinit Clear Depth ;FORMA T (COORDINATES) Xhome Yhome Zhome ;FORMA T (COORDINATES) XfirstOrigin YfirstOrigin ZfirstOrigin ;FORMA T (USER_1) CurrSubNum ;FORMA T (coordinates) ORIGOLDI ORIGOLDJ ORIGOLDK ;* define private flags:FORMA T (USER_2) FlagSub FlagSeq FlagSpin; --与用户2定义的类型有关的变量FORMA T (USER_2) FirstOriginChange FlagError Flagrotmac ;* define private constants:FORMA T (USER_2) YES NO ;* change the format of existing variables:FORMA T (USER_1) SUB_NUMBER ;此处偶把其看作是"户籍登记处",用户自己定义的变量必须在此登记,否则将编译错误.一旦选定类型,其变量格式由*.DEF文件对应部分控制。
Cimatron软件的后置处理程序及应用来源:数控机床网 作者:数控车床 栏目:行业动态 无论是哪种CAM软件,其主要用途都是要生成在机床上加工零件的刀具轨迹(简称刀轨)。
一般来说,由于各种类型的机床在物理结构和控制系统方面可能不同,它们对NC程序中指令和格式的要求也可能不同,因此CAM软件内部生成的刀轨数据必须经过处理才能适应每种机床及其控制系统的特定要求。
Cimatron软件是目前国内应用较为广泛的一款优秀的CAM软件,对其后处理的研究有一定的实际意义。
一、前言 数控机床是按数控程序进行加工的。
在应用CAM软件生成数控程序时,首先要产生刀位文件,然后再通过后处理文件,将刀位文件编译成数控程序,这一点与手工编程是不同的。
刀位文件是反映刀具运动轨迹的文件,它是CAM软件按照编程员的加工工艺,在假定工件固定不动,而刀具运动的情况下,由软件自动计算产生的。
之所以要这样做,是因为不同的数控机床采用的控制系统的指令是不同的,CAM软件的供应商,为使软件能够通用化,就先产生刀位文件,然后再根据具体的控制系统,用后置处理工具,产生专用的后处理文件,并通过它将刀位文件编译成数控程序。
不同的CAM软件,后置处理工具也不尽相同,本文将主要介绍Cimatron软件的两种后置处理工具的使用方法,并给出了定制Heidenhain控制系统专用后置处理文件的实例。
二、Cimatron两种后置处理工具G 和IM OST的功能特点 G (General Post Proceor)是Cimatron公司自己开发的后置处理工具,通过对demo.def和demo.exf模板后处理文件作适当的修改,可以生成符合用户需要的后处理文件,主要特点是修改完成后使用方便,该方法目前主要用在3轴以下机床的后处理。
IMOST是IMS公司为广大用户提供的基于宏汇编的后处理程序编辑器,可支持各种CAD/CAM软件生成的刀位文件的后置处理,并提供了多种后置处理文件库,可支持更广泛的数控机床。
CIMATRON的GPP后处理的构造及编辑方法!CIMATRON的GPP后处理是编译语言,它比UG的TCL语言及IMSPOST的解释语言的后处理要快,这是自然的事。
GPP后处理器由三个文件组成:*.def是机床类型文件;*.dex是编译过的事件处理文件(人难以识别);*.exf是未编译的事件处理文件(是给人看的);在这里*符号必须是同一文件名,后处理编辑组要是编辑*.def和*.exf这两个文件。
先讲*.exf这个文件,它由以下3部分组成:1程序头2操作3程序尾其中操作包括:直线运动操作,圆弧运动操作及钻孔运动操作组成。
再大多数情况下可根据不同的机床对现有的GPP后处理中的*.def和*.exf这两个文件消做修饰就可以使用,但别忘了GPP后处理器只使用*.def和*.dex这两个文件,将*.exf文件编译成*.dex。
程序头部主要起到初始化的作用以下为典型的程序头部1。
参数定义部分*.....标注说明* DEMO 3 axes Post Processor for FANUC* CIMATRON90 VER 9.0* Last update : 23-FEB-1998.....*.....类型变量定义********************************************************FORMAT (SEQUENCING) Seq SubSeq CNTRL_NUM NURBS_DEG count first deg ;.....FORMAT (USER_2) FlagSub FlagSeq FlagSpin;.....*......软件中的菜单提示INTERACTION (USER_1) "MAIN-PROGRAM-NUMBER" MainNum = 100 ;.....*.....模态变量定义NON_MODAL ALL_VAR;MODAL X_CURPOS Y_CURPOS Z_CURPOS ;.....2。
Cimatron 后置处理技术* DEMO 3 axes Post Processor for FANUC *表示为注释文本,将不起作用* CIMATRON90 VER 9.0* Last update : 23-FEB-1998********************************************************* define private variables: *定义后置处理中需要用到的变量类型,通常不修改FORMAT (SEQUENCING) Seq SubSeq CNTRL_NUM NURBS_DEG count first deg ;FORMAT (TOOL) CutterComp FirstTool LastTool ;FORMAT (COORDINATES) Xold Yold Zold DXcenter DYcenter DZcenter ; FORMAT (COORDINATES) Zinit Clear Depth CNTRL_X CNTRL_Y CNTRL_Z KNOT_ ;FORMAT (COORDINATES) Xhome Yhome Zhome ;FORMAT (COORDINATES) XfirstOrigin YfirstOrigin ZfirstOrigin ;FORMAT (USER_1) CurrSubNum ;FORMAT (coordinates) ORIGOLDI ORIGOLDJ ORIGOLDK ;* define private flags:FORMAT (USER_2) FlagSub FlagSeq FlagSpin;FORMAT (USER_2) FirstOriginChange FlagError Flagrotmac ;* define private constants:FORMAT (USER_2) YES NO ;* change the format of existing variables:FORMAT (USER_1) SUB_NUMBER ;******************************************************** INTERACTION (USER_1) "MAIN-PROGRAM-NUMBER" MainNum = 100 ;INTERACTION (TOOL) "DIACOMP=TOOL+<xx>" DiaComp = 50 ;INTERACTION (USER_1) "TOOL-CHANGE-PROGRAM" ChangeTool = 8000 ;INTERACTION (CHARACTER) "SEQUENCING<Y/N>" NumYN = "N" ;INTERACTION (SEQUENCING) "SEQUENC-START" SeqStart = 10 ;INTERACTION (SEQUENCING) "SEQUENC-INCR." SeqIncr = 10 ;INTERACTION (CHARACTER) "SUBROUTINES<Y/N>" Sub = "Y" ;INTERACTION (USER_1) "SUB-PROGRAM-NUMBER" StartSubNum = 1000 ;* INTERACTION 为交互内容,可以输入,即在后置处理对话框中出现的内容可以试着将里面的文字变为中文********************************************************NON_MODAL ALL_V AR; * MODAL定义变量是否为模态,像X_CURPOS这种坐标位置当然是随时都在变化的MODAL X_CURPOS Y_CURPOS Z_CURPOS ;MODAL LIN_MOV CIRC_MOV MCH_FEED SPIN_SPEED SPIN_DIR MCH_COOL MCH_DWELL;MODAL CUTCOM_ON CUTCOM_OFF ;MODAL CYC_DEPTH CYC_PECK CYC_DWELL CYC_RETR CYC_CLEAR Depth Clear NURBS_MOV;IDENTICAL X_CURPOS X_ENDPT ;IDENTICAL Y_CURPOS Y_ENDPT ;*每输出一行程序之前,调用一个新的值,即保持侦测状态******* *************************************************NEW_LINE_IS $ ; * $ 为换行指令,这一段内容制定程序是如何换行的IF_SET (FlagSeq _EQ_ NO) $使用IF….ELSE 语句判断,OUTPUT表示输出OUTPUT \J ;ELSEIF_SET (FlagSub _EQ_ NO)OUTPUT \J "N" Seq ;Seq = Seq + SeqIncr ;ELSEOUTPUT \J "N" SubSeq ;SubSeq = SubSeq + SeqIncr ;END_IF ;END_IF ;******************************************************** BEGINNING OF TAPE: 程序头的指定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 ;ELSESET_ON NO_SUBROUT ;END_IF ;*----Unit matrix (MUST be input in this order !!!) 指定XYZ轴的方向,绝对不能改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 interactionXhome = 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 CHANGEFirstOriginChange = YES ;MCH_FEED = 9999 ;*-----outputIF_SET (FlagSeq _EQ_ YES ) 换行后输出子程序号OUTPUT "%" \J "O" MainNum ;ELSEOUTPUT " %" \J " O" MainNum ;END_IF ;*--For the first origin changeORIGOLDI=0 ; ORIGOLDJ=0 ; ORIGOLDK=1 ;flagrotmac = no ;BEGINNING OF PROC: 程序开始段KEEP PROC_NAME ;SET_ON MCH_COOL ;FlagSub = NO ;SubSeq = SeqStart ;END OF TAPE: 使用完一把刀具后IF_SET (FirstTool _NE_ LastTool)OUTPUT $ " T" NEXT_TOOL " M98 P" ChangeTool;END_IF ;OUTPUT $ " M30 " ;END OF FILE: 程序结束符IF_SET (FlagSeq _EQ_ YES )OUTPUT \J "%" ;ELSEOUTPUT \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: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) 输出了T01,如果没有换刀功能,删除后面几行OUTPUT $ " T" CURR_TOOL ;*-----more then one tool in this run of the Post ProcessorIF_SET (NEXT_TOOL _NE_ CURR_TOOL)OUTPUT $ " T" NEXT_TOOL ;END_IF ;*-----standard tool change commands. (assuming 1st tool is in* 程序头的标准语名,如果要增加G54等指令,可直接输入到这一位置OUTPUT $ " G90 G80 G00 G17 G40 M23" ;OUTPUT $ " G43 H" CURR_TOOL " Z" Zhome " S" SPIN_SPEED " " SPIN_DIR ;产生类似于G43 H1 Z50 S300 M3 的一行代码TOOL CHANGE: 加工过程中的换刀SET_ON SPIN_SPEED SPIN_DIR ;*-----tool cutter compensation register numberCutterComp = 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 inOUTPUT $ " G90 G80 G00 G17 G40 M23" ;OUTPUT $ " G43 H" CURR_TOOL " Z" Zhome " S" SPIN_SPEED " " SPIN_DIR ;TOOL CHANGE: LAST: 最后换刀SET_ON SPIN_SPEED SPIN_DIR ;*-----save last tool numberLastTool = CURR_TOOL ;*-----tool cutter compensation register numberCutterComp = CURR_TOOL + DiaComp ;OUTPUT $ " T" CURR_TOOL " M98 P" ChangeTool ;*-----the last tool is the same as the first toolIF_SET (NEXT_TOOL _NE_ CURR_TOOL)OUTPUT $ " T" NEXT_TOOL ;END_IF ;*-----standard tool change commands. (assuming 1st tool is inOUTPUT $ " G90 G80 G00 G17 G40 M23" ;OUTPUT $ " G43 H" CURR_TOOL " Z" Zhome " S" SPIN_SPEED " " SPIN_DIR ;********************************************************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 $ " 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: 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 $ " 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 ;REPEATcount = 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 ;ELSEOUTPUT $ " 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 useIF_SET (FirstOriginChange _EQ_ YES )XfirstOrigin = X_ORIGIN ;YfirstOrigin = Y_ORIGIN ;ZfirstOrigin = Z_ORIGIN ;FirstOriginChange = NO ;END_IF ;*.....distance between the rotation center and the ORIGINTRANS_MATX = X_ORIGIN - XfirstOrigin - X_MACH ;TRANS_MATY = Y_ORIGIN - YfirstOrigin - Y_MACH ;TRANS_MATZ = Z_ORIGIN - ZfirstOrigin - Z_MACH ;*.....check for change in orientation ( 4,5 axis positioining ) 坐标轴原点检测,超过3轴将输出一些报错信息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 ;ELSEOUTPUT \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;********************************************************对于常见的只使用一把刀具进行加工的情况,并希望在程序头加工上注释语句,只需要修改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 ;*-----assuming 1st tool is in the spindle, there is no need* for tool change) 输出了T01,如果没有换刀功能,删除后面几行OUTPUT $ " T" CURR_TOOL ;*-----more then one tool in this run of the Post ProcessorIF_SET (NEXT_TOOL _NE_ CURR_TOOL)OUTPUT $ " T" NEXT_TOOL ;END_IF ;*-----standard tool change commands. (assuming 1st tool is in* 程序头的标准语名,如果要增加G54等指令,可直接输入到这一位置OUTPUT $ " G90 G80 G00 G17 G40 M23" ;* 修改为:OUTPUT $ " G17 G40 G49 G80 G90 G54 G00 X0 Y0"OUTPUT $ " G43 H" CURR_TOOL " Z" Zhome " S" SPIN_SPEED " " SPIN_DIR ;产生类似于G43 H1 Z50 S300 M3 的一行代码将修改后的EXF文件保存为NC.EXF。