Cimatron 后置处理技术

合集下载

Mastercam后置处理文件及其设定方法详细说明

Mastercam后置处理文件及其设定方法详细说明

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后置处理文件及其设定方法详细说明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,可以依照数值选取字符串,字符串可以由两个或更多的字符来组成。

五轴龙门摆头机床cimatron后置处理的研究

五轴龙门摆头机床cimatron后置处理的研究

第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软件的后置处理文件及其设定方法.

Mastercam软件的后置处理文件及其设定方法.

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控制器所使用的格式,但不能用来定义其它系列的控制器。

Mastercam参数(精)

Mastercam参数(精)
Mastercam后置处理文件及其设定方法详细说明
Mastercam后置处理文件及其设定方法详细说明mastercam系统配置的是适应单一类型控制系统的通用后置处理,该后置处理提供了一种功能数据库模型,用户根据数控机床和数控系统的具体情况,可以对其数据库进行修改和编译,定制出适应某一数控机床的专用后置处理程序。mastercam系统后置处理文件的扩展名为pst ,称为pstห้องสมุดไป่ตู้件,它定义了切削加工参数、nc程序格式、辅助工艺指令,设置了接口功能参数等,其结构由八个部分组成:1.注解程序每一列前有“ #”符号表示该列为不影响程序执行的文字注解。如:# mi2-absolute, or incremental positioning 0=absolute 1=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代表刀具半径补偿建立或取消。6.自定义单节可以让使用者将一个或多个nc码作有组织的排列。自定义单可以是公式、变量、特殊字符串等:pwcs # g54+ coordinate setting at toolchange if mil >1, pwcs_g54表示用pwcs单节指代#g54+在换刀时坐标设定值, mil定义为工件坐标系(g54~g59 7.预先定义的单节使用者可按照数控程序规定的格式将一个或多个nc代码作有组织的排列,编排成一条程序段。8.系统问答后置处理软件提出了五组问题,供使用者回答,可按照注解文字、赋值变量、字符串等内容,根据使用的机床、数控系统进行回答。设计后置处理文件,一般是按照nc程序的结构模块来进行。根据nc程序的功能,后置处理文件分成六个模块如下:1.文件头文件头部分设定程序名称和编号,此外, sinumerik 810d系统还必须指定nc程序存放路径,并按照以下格式输出:“ %_n_(程序名及编号_(路径”。nc程序可存放在主程序、子程序和工作程序目录下,扩展名分别为:mpf、spf、wpd ,一般放在工作程序目录下。因此经修改的pst文件格式为: pheader # start of file " %_n_", progname, "_wpd" (程序名、存放目录2.程序起始在程序开始,要完成安全设定、刀具交换、工件坐标系的设定、刀具长度补偿、主轴转速控制、冷却液控制等,并可显示编程者、编程日期、时间等注解。修改后的有刀具号pst文件开头格式如下:# start of file for non-zero tool number ...... pspindle (主轴转速计算pcom_movbtl (移动设备ptoolcomment (刀具参数注解...... pbld, n, *sgcode, *sgplane, "g40", "g80", *sgabsinc (快进、xy加工平面、取消刀补、取消固定循环、绝对方式编程if mil <=one, pg92_rtrnz, pg92_rtrn, pg92_g92 (返回参考点...... pbld, n, *sgcode, *sgabsinc, pwcs, pfxout, pfyout, pfcout, *speed, *spindle, pgear, pcan1 (快进至某位置、坐标系编置、主轴转速等pbld, n, pfzout, *tlngno, scoolant, [ if stagetool=one, *next_tool] (安全高度、刀长补偿、开冷却液pcom_movea (加工过程3.刀具交换刀具交换执行前,须完成返回参考点、主轴停止动作,然后换刀,接着完成刀具长度补偿、安全设定、主轴转速控制。pst文件中用自定义单节ptlchg指代换刀过程,编辑修改后的程序如下:ptlchg # tool change ...... ptoolcomment (新刀参数注解comment (插入注解if stagetool <> two, pbld, n, *t, e (判断、选刀n, "m6"

Cimatron的后置处理技术

Cimatron的后置处理技术

后处理修改详解〖第一课〗了解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文件对应部分控制。

Cimatron和UG软件后置处理的比较及应用

Cimatron和UG软件后置处理的比较及应用

文章编号: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软件的后置处理文件及其设定方法

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"来回答。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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。

相关文档
最新文档