mastercam后处理修改
MasterCAM 后处理修改特殊技巧一.1 MasterCAM 后处理修改特殊技巧: Scrollex EDIT 另外:输出字母的大小写修改方式不知如何更改。 注:若要修改下述相应功能则直接查找红色下划线语句即可。 ①、 MasterCAM 后处理输出文件格式设置 sextnc MIN #NC Program Extension for Okuma 上述语句表示输出格式为 MIN 格式。若没有可以新建。 “.Trun”格式表示车床专用。需要的 格式修改 MIN 即可,如 MPF,NC,H,TXT 等这样就不必每次为输出什么样的格式费神了。我 就经常用 MPF 和 NC、H 几种格式,为每种格式编制一个后处理或通用一个均比较方便。 ②、 “Arcoutput”控制语句控制圆弧输出格式,设置值若为“0”表示输出为“IJK”格式; 若设置值为“1”则输出圆弧格式为“R”“arctype”控制输出圆弧类型,若为“1”则表示 。 由圆心确定;若为“2”则表示由起点(Start)指向圆心(Center) ,2=St-Ctr;若为“3” 表示由圆心指向起点,3=Ctr-St;若为“4”表示非增量。 arcoutput : 0 #0 = IJK, 1 = R no sign, 2 = R signed neg. over 180 arctype : 1 #Arc center 1=abs, 2=St-Ctr, 3=Ctr-St , 4=unsigned inc. ③、 “Omitseq”控制语句控制序列号输出,若设置值为“Yes”则忽略序列号,不输出,若设 置值为“No”则不忽略即输出序列号。 ④、
“Spaces”控制语句控制空格输出,若设置值为“0”表示不输出空格即紧凑输出,若设 置值为“1”表示输出空格即在每个“X,Y,R,F”等控制语句前加一空格。 ⑤、若要查找每一条输出语句的作用及位置则在输出语句后加上标语句即可。一般输出语句 的格式为: pbld, n, 'M6', e(其中 pbld 为输出开头,n 为序列号, “”引号内为直接输出字符,e 为结束语句。 下面语句为程序号输出格式: fmt O 4 progno #Program number #fmt ':' 4 progno #Program number #表示注释语句的开始,fmt 是格式定义,O 表示输出程序开头为 O,若开头为 PR 或 P 时只需 要改 O 为需要的程序开头即可。 这里 的 4 表示程序号长度为 4 个字节。 其它用 fmt 格式定义 的语句也一样,可用此法修改想改的部分即可得到需要的输出结果。比如要求输出的 G01 变 为 L 格式(即从 ISO 格式转化为 Heidenhain 格式) 数据的读入: *progno:从 MasterCAM 图形中读入程序号 scomm:从 MasterCAM 图形中读入注释文本 *t:从 MasterCAM 图形中读入刀具号 *tnote, *toffnote, *tlngnote, *tldia:从 MasterCAM 图形中读入刀具直径 date:从 MasterCAM 图形中读入日期 time:从 MasterCAM 图形中读入时间
*speed:从 MasterCAM 图形中读入主轴速度 *spindle:从 MasterCAM 图形中读入主轴 scoolant:从 MasterCAM 图形中读入冷却液打开与关闭 “” :从 MasterCAM 图形中输出时引号内的内容直接输出。 Sprogname:从 MasterCAM 图形中输出程序名控制语句 ScrollexMasterCAM9 后处理的修改 MasterCAM 系统缺省的后处理文件为 MPFAN.PST,适用于 FANUC(发那科)数控代码的控 制器。其它类型的控制器需选择对应的后处理文件。 由于实际使用需要, 用缺省的后处理文件时, 输出的 NC 文件不能直接用于加工。 原因是: 以下内容需要回复才能看到 ⑴进行模具加工时,需从 G54~G59 的工件坐标系指令中指定一个,最常用的是 G54。部 分控制器使用 G92 指令确定工件坐标系。对刀时需定义工件坐标原点,原点的机械坐标值保 存在 CNC 控制器的 G54~G59 指令参数中。CNC 控制器执行 G54~G59 指令时,调出相应的参 数用于工件加工。采用系统缺省的后处理文件时,相关参数设置正确的情况下可输出 G55~ G59 指令,但无法实现 G54 指令的自动输出。 ⑵FANUC.PST 后处理文件针对的是 4 轴加工中心, 而目前使用量最大的是 3 轴加工中心, 多出了第 4 轴数据“A0.” 。 ⑶不带刀库的数控铣使用时要去掉刀具号、换刀指令、回参考点动作。 ⑷部分控制器不接受 NC 文件中的注释行。 ⑸删除行号使 NC 文件进一步缩小。 ⑹调整下
刀点坐标值位置,以便于在断刀时对 NC 文件进行修改。 ⑺普通及啄式钻孔的循环指令在缺省后处理文件中不能输出。使用循环指令时可大幅提 高计算速度,缩小 NC 文件长度。 如果要实现以上全部要求,需对 NC 文件进行大量重复修改,易于出现差错,效率低下, 因此必须对 PST(后处理)文件进行修改。修改方法如下: 1、增加 G54 指令(方法一) : 采用其他后处理文件(如 MP_EZ.PST)可正常输出 G54 指令。由于 FANUC.PST 后处理文 件广泛采用,这里仍以此文件为例进行所有修改。其他后处理文件内容有所不同,修改时根 据实际情况调整。 用 MC9 自带的编辑软件(路径: C:\\Mcam9\\Common\\Editors\\Pfe\\ PFE32.EXE)打开 FANUC.PST 文件(路径:C:\\Mcam9\\Mill\\Posts\\ MPFAN.PST) 单击【edit】→【find】按钮,系统弹出查找对话框,输入“G49” 。 查找结果所在行为: pbld, n, *sgcode, *sgplane, 'G40', 'G49', 'G80', *sgabsinc, e 插入 G54 指令到当前行,将其修改为: pbld, n, *sgcode, *sgplane, 'G40', 'G49', 'G80', *sgabsinc, 'G54',e 输出的 NC 文件修改前对应位置指令为:
N102G0G17G40G49G80G90 修改后变为:
N102G0G17G40G49G80G90G54 查找当前行的上一行: pbld, n, *smetric, e 将其整行删除,或加上“#”成为注释行: # pbld, n, *smetric, e 修改后 G21 指令不再出现,某些控制器可不用此指令。注意修改时保持格式一致。G21 指令为选择公制单位输入,对应的英制单位输入指令为 G20。 2、增加 G54 指令(方法二) : 单击按钮,系统弹出查找对话框,输入“force_wcs” ,单击按钮,查找结果所在行为: force_wcs : no #Force WCS output at every toolchange? 将 no 改为 yes,修改结果为: force_wcs : yes #Force WCS output at every toolchange? 输出的 NC 文件修改前对应位置指令为: N106G0G90X16.Y-14.5A0.S2200M3 修改后变为: N106G0G90G54X16.Y-14.5A0.S2200M3 前一方法为强制输出固定指令代码,如需使用 G55~G59 指令时,有所不便。多刀路同时 输出时,只在整个程序中出现一次 G54 指令。后一方法同其他后处理文件产生 G54 指令的原 理相同,多刀路同时输出时,每次换刀都会出现 G54 指令,也可根据参数自动转换成 G55~ G59 指令。 输出三轴加工中心程序的 FANUC 后处理文件为 MP_EZ.PST,输出 4 轴加工中心程序的三 菱控制器后处理文件为 MP520AM.PST。 3、删除第四轴数据“A0.” ,以适应三轴加工中心: 单击按钮,系统弹出查找对话框,输入“Rotary Axis” ,单击按钮,查
找结果所在行为: 164. Enable Rotary Axis button? y 将其修改为: 164. Enable Rotary Axis button? n 修改后第四轴数据不再出现。 4、删除刀具号、换刀指令、回参考点指令,适应无刀库的数控铣机床: 单击按钮,系统弹出查找对话框,输入“M6” ,单击按钮,查找结果所在行为: if stagetool >= zero, pbld, n, *t, 'M6', e 将其修改为: if stagetool >= zero, e # pbld, n, *t, 'M6', 另一个换刀的位置所在行为: pbld, n, *t, 'M6', e 将其删除或改为注释行: #pbld, n, *t, 'M6', e 修改后换刀指令行不再出现,通常修改第一个出现“M6”指令的位置即可。 单击按钮,系统弹出查找对话框,输入“*sg28ref” ,单击按钮,查找结果所在行为: pbld, n, sgabsinc, sgcode, *sg28ref, 'Z0.', scoolant, e
pbld, n, *sg28ref, 'X0.', 'Y0.', protretinc, e 将其修改为: pbld, n, scoolant, e # pbld, n, *sg28ref, 'X0.', 'Y0.', protretinc, e 输出的 NC 文件修改前对应位置指令为: N116G91G28Z0.M9 修改后变为: N116M9 PST 文件中另有两个类似位置,如使用 G92 指令确定工件坐标,可对其适当修改。加工结 束后,机床各轴不回参考点,便于手动换刀时节省时间。 5、删除 NC 文件的程序名、注释行: 单击 按钮,系统弹出查找对话框,输入“%” ,单击 按钮,查找结果所在行为: '%', e *progno, e '(PROGRAM NAME - ', progname, ')', e '(DATE=DD-MM-YY - ', date, ' TIME=HH:MM - ', time, ')', e 将其删除或改为注释行: '%', e # *progno, e # '(PROGRAM NAME - ', progname, ')', e #
'(DATE=DD-MM-YY - ', date, ' TIME=HH:MM - ', time, ')', 输出的 NC 文件修改前对应位置指令为: O0010
(PROGRAM NAME - A2) (DATE=DD-MM-YY - 25-12-04 TIME=HH:MM - 10:45) 修改后以上指令行不再出现。 单击按钮,系统弹出查找对话框,输入“pstrtool” ,单击 按钮,查找结果所在行为: '(', pstrtool, *tnote, *toffnote, *tlngnote, *tldia, ')', e 将其删除或改为注释行: #'(', pstrtool, *tnote, *toffnote, *tlngnote, *tldia, ')', e 输出的 NC 文件修改前对应位置指令为: (D16R8.0 TOOL - 2 DIA. OFF. - 0 LEN. - 0 DIA. - 16.) 修改后以上指令行不再出现。此注释行指明当
前刀路所使用的刀具参数,可用于加工前 核对加工单,建议保留。法兰克及三菱控制器可以接受注释内容。 6、取消行号: 单击按钮,系统弹出查找对话框,输入“omitseq” ,单击 按钮,查找结果所在行为: omitseq : no #Omit sequence no. 将其修改为: omitseq : yes #Omit sequence no. 修改后行号不再出现。 7、调整下刀点坐标值位置:
单击按钮,系统弹出查找对话框,输入“g43” ,单击 按钮,查找结果所在行为: pcan1, pbld, n, *sgcode, *sgabsinc, pwcs, pfxout, pfyout, pfcout, *speed, *spindle, pgear, strcantext, e pbld, n, 'G43', *tlngno, pfzout, scoolant, next_tool, e 将其修改为: pcan1, pbld, n, *sgcode, *sgabsinc, pwcs, pfxout, pfyout, pfcout, e pbld, n, *sgcode, pfzout, e pbld, n, *speed, *spindle, pgear, strcantext, e pbld, n, 'G43', *tlngno, scoolant, next_tool, e 输出的 NC 文件修改前对应位置指令为:
G0G90G54X16.Y-14.5S2200M3 G43H0Z20.M8 修改后变为: G0G90G54X16.Y-14.5 G0Z20. S2200M3 G43H0M8 新的指令顺序使下刀点(安全高度)x、y、z 坐标值同其他指令分开,易于在断刀时修 改。G43 指令在 PST 文件中有两个位置,如仅使用 G54 指令时,修改第一个出现“G43”的位 置即可。 8、输出普通及啄式钻孔循环指令: 单击按钮, 系统弹出查找对话框, “usecandrill” 单击 按钮, 输入 , 查找结果相关行为: usecandrill : no #Use canned cycle for drill usecanpeck : no #Use canned cycle for Peck 将其修改为: usecandrill : yes #Use canned cycle for drill usecanpeck : yes #Use canned cycle for Peck 此修改适用于支持 G81、G83 钻孔循环指令的控制器。部分 FANUC 系统 G 代码,不全。可供参考。 G 代码表 代码 组 功能 G00 01 定位 G01 直线插补 G02 顺时针圆弧插补 G03 逆时针圆弧插补 G04 00
暂停 G10 可编数据输入 G11 取消可编数据输入方式 G15 17 极坐标指令取消 G16 极坐标指令开
G17 G18 G19 G20 G21 G28 G29 G30 G40 G41 G42 G43 G44 G49 G50 G51 G50.1 G51.1 G52 G53 G54 G55 G56 G57 G58 G59 G65 G66 G67 G68 G69 G73 G74 G76 G80 G81 G82 G83 G84 G85 G86 G87 G88 G8902选择 X、Y 平面 选择 Z、X 平面 选择 Y、Z 平面 06 英制输入 公制输入 00 返回参考点 从参考点返回 返回第 2、3、4 参考点 07 取消刀具半径补偿 刀具半径左补偿 刀具半径右补偿 08 刀具长度正补偿 刀具长度负补偿 取消刀具长度补偿 11 取消比例缩放 比例缩放开 22 镜象取消 镜象开 00 局部坐标系设定 选择机床坐标系 14 选择工件坐标系 1 选择工件坐标系 2 选择工件坐标系 3 选择工件坐标系 4 选择工件坐标系 5 选择工件坐标系 6 00 宏程序调用 12 宏程序模态调用 取消宏程序模态调用 16 坐标旋转 取消坐标旋转 09 深孔钻循环 左攻螺纹循环 精镗循环 取消孔加工固定循环 钻、镗孔循环 锪孔循环 深孔钻循环 右攻螺纹循环 镗孔循环 镗孔循环 背镗孔循环 镗孔循环 镗孔循环
G90 G91 G92 G98 G9903 00 10绝对方式编程 增量方式编程 设定工件坐标系 固定循环返回初始点 固定循环返回 R 点MASTERCAM 后处理的设置和参数修改 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 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? 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 : breakarcs : 式) arcoutput : arctype : 2 do_full_arc1 #Enable automatic subprogram support(启用自动支持子程式) 2 #Break arcs, 0 = no, 1 = quadrants, 2 = 180deg. max arcs(打断圆弧方 1 #0 = IJK, 1 = R no sign, 2 = R signed neg. over 180(转出圆弧方式) #Arc center 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc. : 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.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(此四句为程式结尾固定语句,不必理它) clearsub mergeaux clearaux '%', e(程式尾) 6)Numbered questions for Mastercam Mill(问题参数设定).此部分大多数是 MASTERCAM 系 统的参数设定,而涉及到后处理的内容很少,在此就不再详述,有兴趣者可以用词典翻译看看 讲些啥?有什么新发现可以告诉俺.