MASTERCAM后处理修改 - 图文 下载本文

车削

参数 含义 对应系统变量 预定值

1 刀径补偿 cc / ccomp 40-取消 41-左补偿 42-右补偿 140-最后移动时取消

2 Z位置 z / znci 3 X位置 x / xnci 4 置空

5 进刀速率 fr 正值-每分钟进给量 负值-每周进给量 6(可选) 控制标志 cur_cflg

MP语言在处理刀路信息的时候,先读取NCI的G Code, 然后根据读取到的G Code去调用相应的预定义后处理块。比方说,如果读到的G Code是0,就会调用prapid或pzrapid。然后,第二行的参数就会储存到相应的系统预定义变量中,用来输出或做相关的计算。大体上这就是Mstercam用后处理把NCI翻译成机器代码的简要过程。

不过,说起来挺容易,具体里面怎么跑的可没法子一句话说得清楚。这么多的NCI代码,这么多的后处理块,看起来都TMD头晕。如果各位老大不怕头晕的话,嘿嘿,下面我来讲怎么输出相关信息来了解这整个翻译的过程。用文本编辑器打开后处理器,找到这一块:

fastmode : yes #Enable Quick Post Processing, (set to no for debug) bug1 : 2 #0=No display, 1=Generic list box, 2=Editor

bug2 : 40 #Append postline labels, non-zero is column position? bug3 : 0 #Append whatline number to each NC line? bug4 : 1 #Append NCI line number to each NC line?

bug1,不要动他,2就好了。

bug2比较重要。如果是一个非零正值的话,在输出机器代码的时候,会把输出这一行所被调用的第一个后处理块的名称附上。因为一个后处理块可以调用其他的后处理块,所以如果还有其他的后处理块被调用的话,最后一个被调用的后处理块的名称也会被附上。这些附加信息输出的起始列数就是所属入的非零正值数。在上面的例子中,第一个和最后一个被调用的后处理块名称输出开始于第四十列。

如果是一个非零负值的话,所有被调用的后处理块名称都会被输出,不论有没有输出机器代码。这是非常有用的,有助于了解后处理里面的逻辑是怎么跑的,但是,结果有时候会变得非常非常的长。当然,如果bug2是零的话这些附加信息就没有了。

bug3,不要管他,没啥用,历史原因留在这里,保持零就好了

bug4,另一个很重要的参数。如果为1的话,会输出当前所到的NCI文件的行数。对比NCI文件就可以知道后处理逻辑跑到什么地方了。设为其他值另有用处,以后再说。

以上这些调试信息,如果fastmode是yes或1的时候是不会出现的。把fastmode改为no或0,调试信息就会出现在输出里面了。

这是V9版本的。如果用的是X的话,改fastmode是没有用的。X和V9很大的不同就是很多后处理开关变量被移到机器定义(Machine Definition)和控制器定义(Control Definitoin)中了,fastmode就是其中之一。改动Control Definiton -> NC Output -> Post Debug Information来输出调试信息。还有,如果是X的话,所有预定义变量名和后处理块后面都要加\。

Mastercam软件是由美国CNC SOFTWARE 公司研制开发的基于微机的CAD(计算机辅助设计)和CAM(计算机辅助制造)系统。自1984年诞生以来,就以其强大的加工功能闻名于世。由于其较好的性能价格比(对硬件的要求不高,操作灵活,易学易用,能使企业很快见到效益),

6

是工业界和学校广泛采用的CAD和CAM系统。

后置处理文件简称后处理文件,是一种可以由用户以回答问题的形式自行修改的文件,其扩展名为.PST。NC程序的生成受软件的后置处理程序的控制,不同数控系统的数控机床对应于不同的后置处理程序。Mastercam的后置处理程序内定成适应日本FANUC控制器的通用格式。在具体应用软件进行编程之前,一般要对当前的后处理程序进行修改和设定。国产的数控系统一般在Mastercam中没有对应的.PST后处理文件。 我校的数控铣床采用的是国产的数控系统(HX2000M数控系统),同样在Mastercam中也没有对应的.PST后处理文件。Mastercam生成的NC代码需经多处修改后才能使用,极为不便。在数控教学的实践中我渐渐有这样的想法,能不能针对我校的数控系统开发专用的Mastercam后处理程序,更好地进行数控实习教学呢?经过一段时间的摸索,我尝试着对Mastercam的后处理程序进行了相应的修改。

我使用的是Mastercam7.1的版本。首先分析了学校采用HX2000M系统的数控铣床的特点和它的G、M代码的格式。该系统不具有换刀功能,而且圆弧只能以I、J、K的形式编程。接着我反复比较Mastercam内置的几十种后处理程序所生成的NC程序,发现其中由MP-EZ.PST后处理程序生成的NC程序与HX2000M编程格式最为相近。我想格式相同之处越多,后处理程序修改的地方也就相对越少。于是我确定把MP-EZ.PST后处理程序作为我尝试修改的后处理程序。我用WINDOWS自带的写字板,打开MP-EZ.PST后处理程序,进行编辑修改。 Mastercam7.1系统的MP-EZ.PST后处理文件由下面几个模块组成。 1、Annotation(注释)。对后处理文件及其设定方法作一般性介绍,此部分内容一般都不需要修改。

2、DEBUG/PROGRAM SWITCHES, debugging and program switches (系统程序规划)。此部分是MASTERCAM的后处理系统规划, 一般不需要修改。 3、Work coordinate output, user defined (工作设定)。 把其中的

pg92_sof # G92 coordinate setting at start (G92的设定) \ \ \ 改成:

pg92_sof # G92 coordinate setting at start

n, *sgwcs, *xh, *yh, *zh, e (设定工件坐标系) n, *speed, *spdlon, prange (设定主轴转速) 删除了HX2000M数控系统中没有的 \、\。

4、POSTLINES, PRE-DEFINED - Postline names are re-assigned. (文件起始和刀具交换设置)。 同样把其中的

pheader psof peof 后面的内容改成如下的格式(原内容略去): pheader # File header

\

注意: \,程式开头的百分号 ,不能改 ,FANUC系统专用,此处自动生成NC程序后要作惟一修改,删除。

psof # Start of file for non-zero tool number pinit (刀具开始加工时的格式) progno comment

if mi1 <= three, pg92_sof

if stagetool = zero, n, *t, pcoolon

if stagetool = one, n, *next_tool, \

7

n, \, e (Z轴快速定位)

n, \, *yr, e (X轴、Y轴快速定位) prv_gcode = zero

peof # End of file for non-zero tool (刀具加工结束时的格式) n, \(主轴停止) n, \

if mi1 <= three & mi1 > zero, pg92_out if stagetool = one, n, *first_tool, \

n, \(将原\改成\,程序结束)

由于学校的数控系统不具有换刀功能,因而有关换刀的设定就可以省略修改。 5、Numbered questions for Mastercam(问题参数设定)。 一般不需更改。

经过上述修改后的MP-EZ.PST后处理程序所生成的NC程序,除了删除程序开始的\,其它不需要作任何修改,可以直接在我校采用HX2000M系统的数控铣床上使用。极大的方便了我在数控铣床实习方面的教学。

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 constant zero :0 #define constant one :1 #define constant two :2 #define constant three :3 #define constant four :4 #define constant five :5 #define constant c9k :999 #define constant

fastmode :yes #enable quick post processing, (set to no for debug) bug1 :2 #0=no display, 1=generic list box, 2=editor

bug2 :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?

8

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 line

cant_tlchng :1 #ignore cantext entry on move with tlchng_aft newglobal :1 #error checking for global variables getnextop :0 #build the next variable table

3) 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 moves

progname :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

着手把程式改成自己需要的格式.以下截取的是9.0版的部分内容,其中有些是我根据自己需要更改的,中文是我加的注解.引号内是可以更改的内容.

\程式开头的百分号) *progno, e(程式号码)

comment(注解,可有可无,如不需要则删除此句)

\程式名称,可有可无)

\刀具直径及补正参数显示,如不需要则把此整句删除) \程式日期显示,可有可无)

pbld, n, *\我自己加的一句,如不需要则整句删除,而不是只删除引号内的内容) pbld, n, *\定义加工原点,也可以改为g54坐标) sav_absinc = absinc (绝对坐标系) ......

(中间省略的部分是系统根据刀路自动转出的程式,一般不必改) ......

(以下几句是出现在程式尾,可以根据需要添加或删除)

n, \加工完成后提刀至安全高度) n, \归零)

n, \转用相对坐标) n, \回到主程式)

mergesub(此四句为程式结尾固定语句,不必理它) clearsub mergeaux clearaux

\程式尾)

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1、增加G54指令(方法一):

采用其他后处理文件(如MP_EZ.PST)可正常输出G54指令。由于FANUC.PST后处理文件广泛采用,这里仍以此文件为例进行所有修改。其他后处理文件内容有所不同,修改时根据实际情况调整。

选择【File】>【Edit】>【PST】命令,系统弹出读文件窗口,选择Mpfan.PST文件,系统弹出如下图所示编辑器。

单击 按钮,系统弹出查找对话框,输入“G49”,如下图所示:

单击 按钮,查找结果所在行为:

pbld, n, *sgcode, *sgplane, \ 插入G54指令到当前行,将其修改为:

pbld, n, *sgcode, *sgplane, \,e 输出的NC文件修改前对应位置指令为: N102G0G17G40G49G80G90 修改后变为:

N102G0G17G40G49G80G90G54 查找当前行的上一行:

10