MASTERCAM后处理修改精编版.docx

上传人:b****3 文档编号:10971395 上传时间:2023-05-28 格式:DOCX 页数:67 大小:236.83KB
下载 相关 举报
MASTERCAM后处理修改精编版.docx_第1页
第1页 / 共67页
MASTERCAM后处理修改精编版.docx_第2页
第2页 / 共67页
MASTERCAM后处理修改精编版.docx_第3页
第3页 / 共67页
MASTERCAM后处理修改精编版.docx_第4页
第4页 / 共67页
MASTERCAM后处理修改精编版.docx_第5页
第5页 / 共67页
MASTERCAM后处理修改精编版.docx_第6页
第6页 / 共67页
MASTERCAM后处理修改精编版.docx_第7页
第7页 / 共67页
MASTERCAM后处理修改精编版.docx_第8页
第8页 / 共67页
MASTERCAM后处理修改精编版.docx_第9页
第9页 / 共67页
MASTERCAM后处理修改精编版.docx_第10页
第10页 / 共67页
MASTERCAM后处理修改精编版.docx_第11页
第11页 / 共67页
MASTERCAM后处理修改精编版.docx_第12页
第12页 / 共67页
MASTERCAM后处理修改精编版.docx_第13页
第13页 / 共67页
MASTERCAM后处理修改精编版.docx_第14页
第14页 / 共67页
MASTERCAM后处理修改精编版.docx_第15页
第15页 / 共67页
MASTERCAM后处理修改精编版.docx_第16页
第16页 / 共67页
MASTERCAM后处理修改精编版.docx_第17页
第17页 / 共67页
MASTERCAM后处理修改精编版.docx_第18页
第18页 / 共67页
MASTERCAM后处理修改精编版.docx_第19页
第19页 / 共67页
MASTERCAM后处理修改精编版.docx_第20页
第20页 / 共67页
亲,该文档总共67页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MASTERCAM后处理修改精编版.docx

《MASTERCAM后处理修改精编版.docx》由会员分享,可在线阅读,更多相关《MASTERCAM后处理修改精编版.docx(67页珍藏版)》请在冰点文库上搜索。

MASTERCAM后处理修改精编版.docx

MASTERCAM后处理修改精编版

MASTERCAM后处理修改

Mstercam的的默认后处理是MPFAN.PST(M的后处理的扩展名为PST),其中定义了NC程序的格式,工艺参数,接口的一些功能等,有些东西是不能改动的,其实我们主要改动的就是几个方面:

1程序的开头和结尾。

系统不一样,他的程序的开头和结尾可能就存在不同

2三轴和四轴的添加和改动

3刀具的设置

(不好意思,这是我觉得需要改的原因,大家不要扔西瓜皮)

 

首先用记事本打开MPFAN.PST文件(这个文件在D:

\Mcam9\Mill\Posts中)如图

2下面主要讲讲程序的开头的改动:

  

(1)G54的改动  

          按CTRL+F查出StartofFileandToolchangeSetup这一选项:

你会在下面的程序中找到

      pbld,n,*sgcode,*sgplane,"G40","G49","G80",*sgabsinc,e

将其改为

    pbld,n,*sgcode,*sgplane,"G40","G49","G80",*sgabsinc,“G54",e

程序将由

      G0G17G40G49G80G90

改为

      G0G17G40G49G80G90G54  

其中“”表示强制输出

  

(2)G21的改动

        找到

      pbld,n,*smetric,e  程序行

    在其前面加一#将他设置为注释部分,即可不输出G21代码大家应该都明白G21是代表公制,G20是代表英制

  

  (3)时间和程序名的改动

        大家可以搜索DATE=DD-MM-YY,这一行大家一看就明白了吧,自己想用什么代替就用什么代替,然后出一个程序一看就明白了

4)刀具的设置

          MASTER默认的POST的刀具是不显示刀具的半径和角部圆角的,在文件中加入下面的语句,就可以在程序的开头出现刀具的半径表示,方便检查刀具与程序中的刀具设置是否一致!

模具加工一边情况下用不上四轴,所以在程序中可以取消A代码:

  查找结果所在行为:

  ifstagetool>=zero,pbld,n,*t,"M6",e将其修改为:

  ifstagetool>=zero,e#pbld,n,*t,"M6",

  另一个换刀的位置所在行为:

  pbld,n,*t,"M6",e将其删除或改为注释行

进行模具加工时,需从G54~G59的工件坐标系指令中指定一个,最常用的是G54。

部分控制器使用G92指令确定工件坐标系。

对刀时需定义工件坐标原点,原点的机械坐标值保存在CNC控制器的G54~G59指令参数中。

CNC控制器执行G54~G59指令时,调出相应的参数用于工件加工。

采用系统缺省的后处理文件时,相关参数设置正确的情况下可输出G55~G59指令,但无法实现G54指令的自动输出。

单击  查找  按钮,系统弹出查找对话框,输入“force_wcs”,单击按钮,查找结果所在行为:

force_wcs  :

no  #ForceWCSoutputateverytoolchange?

将no改为yes,修改结果为:

force_wcs  :

yes  #ForceWCSoutputateverytoolchange?

输出的NC文件修改前对应位置指令为:

N106G0G90X16.Y-14.5A0.S2200M3

修改后变为:

N106G0G90G54X16.Y-14.5A0.S2200M3

MP-编写后处理的语言。

是Mastercam大牛自己写的一种语言喔。

它的好处是,结构简单,功能强大。

缺点是,文档少,功能复杂抽象,学起来实在不容易。

真正从头到尾了解MP语言的,全世界找不出20个。

整数-不用我说了吧。

实数-带小数点的。

字符串-也就是一串字符,ABCDE123这样的

后处理块-后处理的基本功能模块,就是一系列实现某一个或一些功能的后处理指令,写在一起,给起个名字,以后用起来方便。

后处理块分两种,Mastercam系统预定义的,和用户自定义的。

在X版以前,这两种后处理块在外观上没啥区别,要查看手册才能知道到底属于哪一种。

从X版开始,系统预定义的后处理块后面加了个"$",像"psof$","pcomment$"。

这样就容易区分了,而且,如果用Mastercam自带的文本编辑器打开,预定义后处理块会用蓝色字符显示。

后处理块中的每一行叫做后处理命令行。

整数,实数和字符串变量也有系统预定义的和用户自定义的,在X版里区别也是一样,系统预定义的后面有个"$",像"e$"。

逻辑表达式,返回值为0或1。

NCI文件,嗯,这个比较重要,是Mastercam输出机器代码时生成的一个中间文件,文本格式的。

Mastercam输出的所有刀路信息都在这里面了。

这个文件就是后处理器的输入,而数控控制器所能用的程序就是后处理器的输出。

说白了,后处理器就是一个从NCI到机器程序的翻译器,因为同一个NCI。

在X以前的版本里,有NCI就搞定一切,但从X版本开始,由于Mastercam系统里加入了机器定义(MachineDefinition)和控制器定义(ControlDefinition),MP语言还要和这两个东东发生关系。

NCI。

这个NCI么,其实结构是非常简单的。

打开一个NCI文件,会发现它是以每两行作为一个功能结构。

MP语言在读取NCI的时候也是两行两行的读取的。

例如:

1

411.52.5-0.1253.2

每两行中的第一行,只有一个参数,而且和控制器代码(GCode)有不少相似之处,比方说,1代表直线移动,0代表快速移动,2代表顺时针圆弧移动,81代表钻孔过程开始等等。

但是不可将这两种GCode混淆起来。

两行中的第二行,就是对应第一行GCode的参数行。

每个GCode所对应的参数各不相同,而且同一个GCode在不同的加工过程(车削,铣削等)中参数也不相同。

在上面的例子中,具体的每个参数的意义如下:

铣削

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

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

2        X位置        x/xnci

3        Y位置        y/ynci

4        Z位置        z/znci

5        进刀速率    fr            正值-速率-1-不变-2-快速移动

6(可选)        控制标志    cur_cflg        

车削

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

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

2        Z位置        z/znci

3        X位置        x/xnci

4        置空

5        进刀速率    fr            正值-每分钟进给量负值-每周进给量

6(可选)        控制标志    cur_cflg        

MP语言在处理刀路信息的时候,先读取NCI的GCode,然后根据读取到的GCode去调用相应的预定义后处理块。

比方说,如果读到的GCode是0,就会调用prapid或pzrapid。

然后,第二行的参数就会储存到相应的系统预定义变量中,用来输出或做相关的计算。

大体上这就是Mstercam用后处理把NCI翻译成机器代码的简要过程。

不过,说起来挺容易,具体里面怎么跑的可没法子一句话说得清楚。

这么多的NCI代码,这么多的后处理块,看起来都TMD头晕。

如果各位老大不怕头晕的话,嘿嘿,下面我来讲怎么输出相关信息来了解这整个翻译的过程。

用文本编辑器打开后处理器,找到这一块:

fastmode  :

yes  #EnableQuickPostProcessing,(settonofordebug)

bug1      :

2    #0=Nodisplay,1=Genericlistbox,2=Editor

bug2      :

40  #Appendpostlinelabels,non-zeroiscolumnposition?

bug3      :

0    #AppendwhatlinenumbertoeachNCline?

bug4      :

1    #AppendNCIlinenumbertoeachNCline?

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

bug2比较重要。

如果是一个非零正值的话,在输出机器代码的时候,会把输出这一行所被调用的第一个后处理块的名称附上。

因为一个后处理块可以调用其他的后处理块,所以如果还有其他的后处理块被调用的话,最后一个被调用的后处理块的名称也会被附上。

这些附加信息输出的起始列数就是所属入的非零正值数。

在上面的例子中,第一个和最后一个被调用的后处理块名称输出开始于第四十列。

如果是一个非零负值的话,所有被调用的后处理块名称都会被输出,不论有没有输出机器代码。

这是非常有用的,有助于了解后处理里面的逻辑是怎么跑的,但是,结果有时候会变得非常非常的长。

当然,如果bug2是零的话这些附加信息就没有了。

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

bug4,另一个很重要的参数。

如果为1的话,会输出当前所到的NCI文件的行数。

对比NCI文件就可以知道后处理逻辑跑到什么地方了。

设为其他值另有用处,以后再说。

以上这些调试信息,如果fastmode是yes或1的时候是不会出现的。

把fastmode改为no或0,调试信息就会出现在输出里面了。

这是V9版本的。

如果用的是X的话,改fastmode是没有用的。

X和V9很大的不同就是很多后处理开关变量被移到机器定义(MachineDefinition)和控制器定义(ControlDefinitoin)中了,fastmode就是其中之一。

改动ControlDefiniton->NCOutput->PostDebugInformation来输出调试信息。

还有,如果是X的话,所有预定义变量名和后处理块后面都要加"$"。

 Mastercam软件是由美国CNCSOFTWARE公司研制开发的基于微机的CAD(计算机辅助设计)和CAM(计算机辅助制造)系统。

自1984年诞生以来,就以其强大的加工功能闻名于世。

由于其较好的性能价格比(对硬件的要求不高,操作灵活,易学易用,能使企业很快见到效益),是工业界和学校广泛采用的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/PROGRAMSWITCHES,debuggingandprogramswitches(系统程序规划)。

此部分是MASTERCAM的后处理系统规划,一般不需要修改。

    3、Workcoordinateoutput,userdefined   (工作设定)。

    把其中的

    pg92_sof   #G92coordinatesettingatstart          (G92的设定)

             "/",n,"G91","G28","Z0.",e

             "/",n,"G28","X0.","Y0.",e

             "/",n,*sgwcs,*xh,*yh,*zh,e

    改成:

    pg92_sof   #G92coordinatesettingatstart

              n,*sgwcs,*xh,*yh,*zh,e    (设定工件坐标系)

         n,*speed,*spdlon,prange     (设定主轴转速)

    删除了HX2000M数控系统中没有的"/"、"G28"。

    4、POSTLINES,PRE-DEFINED-Postlinenamesarere-assigned.

    (文件起始和刀具交换设置)。

  同样把其中的

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

    pheader    #Fileheader

    "%p","  (",progname,")",e      

    注意:

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

    psof       #Startoffilefornon-zerotoolnumber

             pinit                   (刀具开始加工时的格式)

             progno

             comment

             ifmi1<=three,pg92_sof

             ifstagetool=zero,n,*t,pcoolon

             ifstagetool=one,n,*next_tool,"M06"

             n,"G90","G00",*zr,   e      (Z轴快速定位)

             n,"G00",pwcs,*xr,*yr,e    (X轴、Y轴快速定位)

             prv_gcode=zero

    peof       #Endoffilefornon-zerotool   (刀具加工结束时的格式)

             n,"M05"                             (主轴停止)

             n,"G00","X0","Y0.",pcooloff        

             ifmi1<=three&mi1>zero,pg92_out

             ifstagetool=one,n,*first_tool,"M06"

     n,"M02"               (将原"M30"改成"M02",程序结束)

    由于学校的数控系统不具有换刀功能,因而有关换刀的设定就可以省略修改。

    5、NumberedquestionsforMastercam(问题参数设定)。

一般不需更改。

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

极大的方便了我在数控铣床实习方面的教学。

1)annotation(注释).对后处理文件及其设定方法作一般性介绍.此部分内容一般都不用更改.

    以下是截取的部分注释:

(注释前都带#号,系统在执行代码处理时是不会读取前面带#号的语句的.)

    #postname:

mpfan

    #product:

mill

    #machinename:

genericfanuc

    #controlname:

genericfanuc

    #description:

genericfanucmillpost

    #associatedpost:

none

    #mill/turn:

no

    #4-axis/axissubs.:

yes

    #5-axis:

no

    #subprograms:

yes

    #executable:

mpv9.0

    #

    #warning:

thispostisgenericandisintendedformodificationto

    #themachinetoolrequirementsandpersonalpreference.

    

    2)debuggingandfactorysetprogramswitches(系统程序规划).此部分是mastercam版本的后处理系统规划,每个版本都大同小异,一般不需更改.以下截取的是9.0版的)

    m_one:

-1#defineconstant

    zero:

0#defineconstant

    one:

1#defineconstant

    two:

2#defineconstant

    three:

3#defineconstant

    four:

4#defineconstant

    five:

5#defineconstant

    c9k:

999#defineconstant

    

    fastmode:

yes#enablequickpostprocessing,(settonofordebug)

    bug1:

2#0=nodisplay,1=genericlistbox,2=editor

    bug2:

40#appendpostlinelabels,non-zeroiscolumnposition?

    bug3:

0#appendwhatlineno.toeachncline?

    bug4:

1#appendncilineno.toeachncline?

    whatno:

yes#donotperformwhatlinebranches?

(leaveasyes)

    

    get_1004:

1#findgcode1004withgetnextop?

    rpd_typ_v7:

0#useversion7stylecontourflags/processing?

    strtool_v7:

2#useversion7+toolname?

    tlchng_aft:

2#delaycalltotoolchangeuntilmoveline

    cant_tlchng:

1#ignorecantextentryonmovewithtlchng_aft

    newglobal:

1#errorcheckingforglobalvariables

    getnextop:

0#buildthenextvariabletable

      

    3)generaloutputsettings(常规后处理设定).此部分可视情况更改,以适合机台或个人使用.以下截取的是9.0版的一些常规设定.冒号前面的是变量,冒号后面的是设定值,#号后面是注解(一般是说明0代表什么,1代表什么,2代表什么,yes或no应该不用翻译了吧?

!

)英文后面的中文注解是我加进去的,翻译的不是很详细,但相信大家能看懂.没有翻译的就表示我根本不会或此设定不常用....嘿嘿...

    

    

    sub_level:

1#enableautomaticsubprogramsupport(启用自动支持子程式)

    breakarcs:

2#breakarcs,0=no,1=quadrants,2=180deg.maxarcs(打断圆弧方式)

    arcoutput:

1#0=ijk,1=rnosign,2=rsignedneg.over180(转出圆弧方式)

    arctype:

2#arccenter1=abs,2=st-ctr,3=ctr-st,4=unsignedinc.

    do_full_arc:

0#allowfullcircleoutput?

0=no,1=no(是否转成整圆方式)

    helix_arc:

0#supporthelixarcoutput,0=no,1=allplanes,2=x

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2