搜档网
当前位置:搜档网 › Mastercam软件的后置处理文件及其设定方法

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

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

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

一、前言

Mastercam是一套应广泛的CAD/CAM/CAE软件包,它采用图形义互

式自动编程方法实现NC程序的编制。义互式编程是一种人机对话的编程方法,编程人员根据屏幕提示的内容,反复与计算机对话,选择菜单目录或计算机的提问,将所有的问题回答完毕后即可以生生成NC程序。NC程序的自动产生是受软件的后置处理功能控制的,不同的加工模块(如车削、铣削、线切割等)和不同的数控系统对应于不同的后处理文件。软件当前使用哪一个后处理文件,是在软件安装时设定的,而在具体应用软件进行编程之前,一般还需要对当前的后处理文件进行必要的修改和设定,以使其符合系统要求和使用者的编程习惯。有些用户在使用软件时由于不了解情况,没有对后处理文件进行修改,导致生成的NC程序中某些固定的地方经常出现一些多余的内容,或者总是漏掉某些词句,这样,在将程序传入数控机床之前,就必须对程序进行手工修改,如果没有全部更正,则可能造成事故。例如,某机床的控制系统采用G54工件坐标系定位,G90绝对坐标编程,要求生成的NC程序前面必须有G54G90设置,如果后处理文件的设置为G55G91,则每次生成的程序中含有G55G91,却不一定有G54G90,如果在加工时没有进行手工改正,则势必造成加工错误。

二、Mastercam软件的后置处理文件

后置处理文件简称后处理文件,是一种可以由用户以回答问题的形式自行修改的文件,其扩展名为.PST。在应用Mastercam软件的自动编程功能之前,必须先对这个文件进行编辑,才能在执行后处理程序时产生符合某种控制器需要和使用者习惯的NC程序,也就是说后处理程序可以将一种控制器的NC程序定义成该控制器所使用的格式。以FANUC系列的后处理为例,它既可以定义成惯用于FANUC3M控器所使用的格式,也可以定义成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"来回答。回答问题时用到变量,不能用引号,而字符串则必须包围在引号之中(如"G91G28GZ0M05"),引号中的文字将按字符串的原样写入程序中。变量和字符之间要用逗号隔开。

2.变量的使用

变量的定义在后处理文件的开头部分已经作了说明,使用时可通过查阅来了解变量的意义。变量在回答问题时一经使用,就会在生产的NC程序中表达确定的意义。如变量spindle-on,转速为正或0时定义为M03,为负时定义为M04,如果回答问题时使用了该变量,则会在NC程序的相应部分写出M03或M04。变量prog-n若写到问题1或2中,将对在NC程序规划时给定的程序中起作用。变量First-tool用来呼叫程序中所使用中的第一把刀的号码,此变量通常用于程序结束时将使用中的刀具改变为第一把刀的号码,以便在下一次执行程序时使用。next-tool用于无T字首的刀具号码,使用这个变量可在刀具被呼叫前,选择另一把刀来进行换刀。变量xr、 yr、zr是用来定义程序中快速定位的X、Y、Z坐标位置,通常用于换刀和程序结束时使刀具返回机械原点。prev-x、prev-y、prev-z 则是用来定义刀具所在的前一个X、Y、Z坐标的位置。其它变量的定义可参看文件开头的说明。

3.后处理文件的设置方法

后处理文件中的大部分问题一般不需要作修改,使用时,通常办需对其中固定的某几个问题进行编辑。下面以FANUC系列的.PST文件为例,来说明设定的方法。

(1)问题0的回答要用字符串,对于FANUC控制系统设置为"%"。

(2)以问题2的回答以例说明2、4、5问题的回答方法。假设在设定NC参数时所给的程序名为test1,程序号为1234,顺序号开始号码为100且增量值为2,刀具号为01,主轴转速为1500/mim,则.PST文件格式及产生的NC程序对照台下。

.PST文件格式 NC程序

prog_mane test1

prog_n 1234

N,"G90 G54 G49 G40" N100 G90 G54 G49 G40

N,"G00 X0 Y0" N102 G00 X0Y0

N,"M06" M104 M06 T01

N,S,spindle_on N106 s1500 M03

(3)问题6是用来设定当铣削状态改变面刀具号码并不改变时,其使用的变量与问题2、4、5中所使用的变量相同。

(4)问题7、8、9控制NC参数屏幕中Text1、2、3所设定的文字。

(5)问题36要求规定进给速度值小数点后允许的位数,若写-1时则为整数。

(6)问题37高定的比例因数可使写到NC程序中的进给速度按此因数变化。

(7)问题38中要求设置快速进给速率的大小。

(8)问题42是若设定为e(表示圆弧插补指令中用R程序)时,问题53必须回答"Y",则系统在后处理时将自动大于180·圆弧打断为两段。

(9)问题50~55是使用权控制器中的cannedcycles指令(G81~G89)被使用于NC程序中。

(10)问题70是用来设定几何图形中线与线或线与圆弧之间的精确度,使其值保证连接外形时能自动连接。

(11)问题81~89是用于NC程序与数控机床传输与接受时的对数设定。

(12)当使用者在换马中使用权用next_tool变量时,问题120应回答为"Y"。当后处理系统执行时,电脑首先必须做一个刀具表,否则电脑无法了解在换刀要用到次一把刀时,什么刀具要来到一把刀的位置。

(13)问题190~196是用于设定刀具路径显示时的内定值。

(14)问题201~510中的杂项变量是在线切割后处理系统中使用的。

四、结束语

后置处理文件的编辑和设定,对CAD/CAM软件来说都是需要的。但是一般的使用者经常忽略这一点,面是在每次生成NC程序后去对程序进行修改,不仅浪费时间,而且容易出错导致事故。本文对Mastercam软伯的后处理文件进行了分析和讨论,介绍了其编辑和设定的方法。

-------------------------------------------------------

# POST 名称 : wgkG54

# 类型 : MILL

# 机床名称 : GENERIC FANUC

# 控制器名称 : GENERIC FANUC

# 描述 : GENERIC FANUC 3 AXIS MILL POST

# Associated Post : NONE

# 车/铣复合 : NO

# 4-axis/Axis subs. : NO

# 五轴 : NO

# 子程序支持 : NO

# 自动换刀 : NO

# 工作坐标系 : G54

# Executable : MP 8.00

#

#

#

# 这个POST支持FANUC控制器普通三轴铣床的的G 代码输出,

# 不支持自动换刀,有最大圆弧报警

# 它来源于MP-EZ.PST

# 是针对Mastercam Mill V8的特征而设计的

# Programmers Note:

# CNC 05/01/00 - Initial post setup, jce

# 2002-10-11 - 去掉自动换刀,

# 2002-10-12 - 增加中文注释,

# 2002-10-21 - 增加最大圆弧警告,

# 2002-11-05 - 修改坐标系为G54,

# -------------------------------------------------------------------------- # 特征:

# -------------------------------------------------------------------------- #

#

# 下列 Misc.(杂项) 必须使用整数:

#

# mi2 - 绝对或增量坐标 at top level

# 0 = 绝对

# 1 = 增量

#

# mi3 - 选择G28或G30来执行参考点回归.

# 0 = G28, 1 = G30

#

# Canned text:

# 在轮廓点里插入"cantext".以允许/禁止下列Mastercam里许可的功能,

# Entering cantext on a contour point from within Mastercam allows the

# following functions to enable/disable.

# Cantext 值:

# 1 = Stop = 输出 "M00" 停止码

# 2 = Ostop = 输出 "M01" 选择停止码

# 3 = Bld on = 在 NC 单节打开单节删除码(\)

# 4 = bLd off = 在 NC 单节关闭单节删除码(\)

#

#

# 钻孔:

# 在这个 POST 里支持所有的钻孔方法.

#

# 附加注意事项:

# 1) G54 calls are generated where the work offset entry of 0 = G54,

# 1 = G55, etc.

# 2) 由NCI变量"met_tool"决定是否使用米制

#

# 3) 以增量方式从换刀起始位置计算运动量.

# 起始位置通常定义为所有换刀时刀具所处的最后位置

# Incremental mode calculates motion from home position at toolchanges. # The home position is used to define the last position of the tool

# for all toolchanges.

# 4) 变量 'absinc' 现已被预先定义, 设定 mi2 (杂项整数)以定义

# 绝对/增量程序输出.

#

# -------------------------------------------------------------------------- # Debugging and Factory Set Program Switches 调试和加工设置程序切换

# -------------------------------------------------------------------------- m_one : -1 #定义常数

zero : 0 #定义常数

one : 1 #定义常数

two : 2 #定义常数

three : 3 #定义常数

four : 4 #定义常数

five : 5 #定义常数

c9k : 9999 #定义常数

fastmode : 1 #Posting 速度最佳化

bug1 : 2 #0=不显示, 1=普通列表框, 2=编辑器

bug2 : -30 #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 #不执行 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 #忽视 cantext 入口 on move with tlchng_aft

newglobal : 1 #全局变量错误检测

getnextop : 0 #建立下一个变量表

# -------------------------------------------------------------------------- # 一般输出设置

# -------------------------------------------------------------------------- sub_level : 1 #允许自动子程序支持

breakarcs : no #在各象限分割圆弧

arcoutput : 0 #0= IJK,1= R不带符号,2= R (超过180度时带负号)arctype : 2 #圆弧中心 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc. arccheck : 1 #检测小圆弧,转化为直线

atol : .01 #arccheck=2时的角度公差

ltol : .002 #arccheck=1时的长度公差

vtol : .0001 #系统公差

maxfeedpm : 500 #进给速度极限 (英寸/分钟)

ltol_m : .05 #arccheck=1时的长度公差,米制

vtol_m : .0025 #系统公差,米制

maxfeedpm_m : 10000 #进给速度极限毫米/分钟

force_wcs : yes #每次换刀时强制输出WCS

spaces : 1 #各指令之间插入的空格数

omitseq : no #省略序号

seqmax : 9999 #最大序号

stagetool : 0 #0 = 无预先备刀, 1 = 预备刀具

use_gear : 0 #输出齿轮交换代码,0=no,1=yes

max_speed : 6000 #最大主轴转速

min_speed : 1 #最小主轴转速

nobrk : no #Omit breakup of x, y & z rapid moves

progname : 1 #使用大写字母表示程序名

max_arc : 50000 #机床允许的最大圆弧半径

# -------------------------------------------------------------------------- # 旋转轴设定

# --------------------------------------------------------------------------

vmc : 1 # 0 = 卧式, 1 = 立式

# -------------------------------------------------------------------------- # 允许钻孔固定循环功能

# -------------------------------------------------------------------------- usecandrill : yes #使用普通钻孔固定循环

usecanpeck : yes #使用啄式钻孔固定循环

usecanchip : yes #使用断屑钻孔固定循环

usecantap : yes #使用攻螺纹固定循环

usecanbore1 : yes #使用镗孔固定循环1

usecanbore2 : yes #使用镗孔固定循环2

usecanmisc1 : yes #使用杂项固定循环1

usecanmisc2 : yes #使用杂项固定循环2

# -------------------------------------------------------------------------- # 通用自定义变量初始化(不能改变!)

# -------------------------------------------------------------------------- xia : 0 #Formated absolute value for X incremental calculations yia : 0 #Formated absolute value for Y incremental calculations zia : 0 #Formated absolute value for Z incremental calculations

bld : 0 #单节删除激活

result : 0 #Return value for functions

sav_spc : 0 #Save spaces

sav_gcode : 0 #Gcode saved

sav_absinc : 0 #Absolute/Incremental Saved Value

sav_coolant : 0 #Coolant saved

toolchng : 1 #On a toolchange flag

spdir2 : 1 #Copy for safe spindle direction calculation

#Drill variables

drlgsel : -1 #Drill Select Initialize

drillref : 0 #Select drill reference

peckacel : 0 #Fractional percent to reduce peck2 when usecan.. : no drlgcode : 0 #Save Gcode in drill

sav_dgcode : 0 #Drill gcode saved

# -------------------------------------------------------------------------- # 格式列表 - n=nonmodal, l=leading, t=trailing, i=inc, d=delta

#

# --------------------------------------------------------------------------

#定义英制/米制坐标格式列表

fs2 1 0.7 0.6 #小数, absolute, 7 place, default for initialize (:)

fs2 2 0.4 l1.3 #小数, absolute, 4/3 place (x,y,z)

fs2 3 0.4 l1.3d #小数, delta, 4/3 place (i,j,k)

#Common format statements

fs2 4 1 0 1 0 #整数, 无前缀

fs2 5 2 0 2 0l #整数, 强制两位前缀

fs2 6 3 0 3 0l #整数, 强制三位前缀

fs2 7 4 0 4 0l #整数, 强制四位前缀

fs2 9 0.1 0.1 #小数, absolute, 1 place

fs2 10 0.2 0.2 #小数, absolute, 2 place

fs2 11 0.3 0.3 #小数, absolute, 3 place

fs2 12 0.4 0.4 #小数, absolute, 4 place

fs2 13 0.5 0.5 #小数, absolute, 5 place

fs2 14 0.3 0.3d #小数, delta, 3 place

fs2 15 0.2 0.1 #小数, absolute, 2/1 place

fs2 16 1 0 1 0n #整数, 强制输出

# 输出加工类型字符串定义

# -------------------------------------------------------------------------- # 字符串 - 字符串标签必须由 's' 开头,它们没有预先指派

# -------------------------------------------------------------------------- #Select operation note

sop00 "NULL" # String definition

sop01 "CONTOUR" # " "

sop02 "CONTOUR" # " "

sop03 "DRILL CYCLE" # " "

sop04 "POCKET...." # " "

sop05 "RULED....." # " "

sop06 "2D-SWEPT.." # " "

sop07 "3D-SWEPT.." # " "

sop08 "REVOLVED.." # " "

sop09 "LOFT......" # " "

sop10 "COONS....." # " "

sop11 "TRIM ....." # " "

sop12 "FLOWLINE.." # " "

sop13 "SURFACE_FINISH" # " "

sop14 "SURFACE_ROUGH" # " "

sop15 "POINT....." # " "

sop16 "DRILL-5AX."

sop17 "CURVE-5AX."

sop18 "SWARF-5AX."

sop19 "flat MILL"

sop20 "op20?....."

sopnote # Target string

fstrsel sop00 opcode sopnote

# -------------------------------------------------------------------------- # NC 输出的字符串和字符串选择定义

# --------------------------------------------------------------------------

#Address string definitions 位址串定义

strm "M"

strn "N"

stro "O"

strp "P"

srad "R"

srminus "R-"

sblank

#Cantext 字符串定义 (spaces must be padded here)

sm00 "M00"

sm01 "M01"

strtextno

strcantext

# -------------------------------------------------------------------------- # 错误信息

# -------------------------------------------------------------------------- saxiswarn " WARNING-THE RAD OF ARC IS TOO LARGE"

# -------------------------------------------------------------------------- # 一般的 G 和 M 代码串选择表 General G and M Code String select tables

# -------------------------------------------------------------------------- # 运动 G 代码选择

sg00 G00 #快速定位

sg01 G01 #直线进给

sg02 G02 #圆弧插补 CW

sg03 G03 #圆弧插补 CCW

sg04 G04 #暂停

sgcode #Target for string

fstrsel sg00 gcode sgcode

# -------------------------------------------------------------------------- # 选择工作平面 G 字串

sg17 G17 #XY 平面代码

sg19 G19 #YZ 平面代码

sg18 G18 #XZ 平面代码

sgplane #Target string

fstrsel sg17 plane sgplane

# -------------------------------------------------------------------------- #选择英制/米制字串

sg20 G20 #英制代码

sg21 G21 #米制代码

smetric #Target string

fstrsel sg20 met_tool smetric

# -------------------------------------------------------------------------- #选择参考点回归字串

sg28 G28 #第一参考点回归

sg30 G30 #第二参考点回归

sg28ref #Target string

fstrsel sg28 mi3 sg28ref

# -------------------------------------------------------------------------- # 切削补偿 G 字串选择

scc0 G40 #切削补偿取消

scc1 G41 #切削左补偿

scc2 G42 #切削右补偿

sccomp #Target for string

fstrsel scc0 cc_pos sccomp

# -------------------------------------------------------------------------- # 钻孔固定循环字符串选择

sg81 G81 #钻孔 - 无暂停

sg81d G82 #钻孔 - 有暂停

sg83 G83 #啄式钻孔 - 无暂停

sg83d G83 #啄式钻孔 - 有暂停

sg73 G73 #断屑 - 无暂停

sg73d G73 #断屑 - 有暂停

sg84 G84 #攻螺纹 - 右手

sg84d G74 #攻螺纹 - 左手

sg85 G85 #镗孔 #1 - 无暂停

sg85d G89 #镗孔 #1 - 有暂停

sg86 G86 #镗孔 #2 - 无暂停

sg86d G86 #镗孔 #2 - 有暂停

sgm1 G76 #misc #1 - 无暂停

sgm1d G76 #misc #1 - 有暂停

sgm2 G81 #misc #2 - 无暂停

sgm2d G82 #misc #2 - 有暂停

sgdrill #Target for string

fstrsel sg81 drlgsel sgdrill

# -------------------------------------------------------------------------- # 选择增量或绝对 G字符串

sg90 G90 #绝对代码

sg91 G91 #增量代码

sgabsinc #Target string

fstrsel sg90 absinc sgabsinc

# -------------------------------------------------------------------------- #钻孔固定循环参考高度

sg98 G98 #Z轴回到起始高度

sg99 G99 #Z轴回到参考高度

sgdrlref #Target for string

fstrsel sg98 drillref sgdrlref # Drill cycle G string select

# -------------------------------------------------------------------------- # Generate string for spindle

sm04 M04 #主轴反转

sm05 M05 #主轴停止

sm03 M03 #主轴正转

spindle #Target for string

fstrsel sm04 spdir2 spindle

# -------------------------------------------------------------------------- # 冷却 M 字符串选择

sm09 M09 #冷却液 Off

sm08 M08 #冷却液喷射

sm08_1 M08 #冷却液喷雾

sm08_2 M08 #Coolant Tool

scoolant #Target for string

fstrsel sm09 coolant scoolant

# -------------------------------------------------------------------------- # 定义齿轮选择代码

flktbl 1 3 #Lookup table definition - table no. - no. entries

40 0 #底速齿轮档

41 400 #中速齿轮档

42 2250 #高速齿轮档

# -------------------------------------------------------------------------- # 刀具交换 / NC输出变量格式

# -------------------------------------------------------------------------- fmt T 4 t #刀具号

fmt T 4 first_tool #第一把使用的刀具

fmt T 4 next_tool #下一把使用的刀具

fmt D 4 tloffno #直径偏移号

fmt H 4 tlngno #长度偏移号

fmt G 4 g_wcs #WCS G address

fmt P 4 p_wcs #WCS P address

fmt S 4 speed #主轴转速

fmt M 4 gear #Gear range

# -------------------------------------------------------------------------- fmt N 4 n #序号

fmt X 2 xabs #X 坐标输出

fmt Y 2 yabs #Y 坐标输出

fmt Z 2 zabs #Z 坐标输出

fmt X 3 xinc #X 坐标输出

fmt Y 3 yinc #Y 坐标输出

fmt Z 3 zinc #Z 坐标输出

fmt I 3 i #x 轴方向上的圆弧中心描述

fmt J 3 j #y 轴方向上的圆弧中心描述

fmt K 3 k #z 轴方向上的圆弧中心描述

fmt R 2 arcrad #圆弧半径

fmt F 15 feed #进给率

fmt P 11 dwell #暂停

fmt M 5 cantext #Canned text

# -------------------------------------------------------------------------- #Move comment (pound) to output colon with program numbers

fmt O 7 progno #Program number

#fmt ":" 7 progno #Program number

# -------------------------------------------------------------------------- fmt Q 2 peck1 #First peck increment (positive)

fmt Q 2 shftdrl #Fine bore tool shift

fmt R 2 refht_a #Reference height

fmt R 2 refht_i #Reference height

# -------------------------------------------------------------------------- fmt "TOOL:" 4 tnote # 注释格式

fmt " DIA. OFF:" 4 toffnote # 注释格式

fmt " LEN.:" 4 tlngnote # 注释格式

fmt " DIA.:" 1 tldia # 注释格式

# --------------------------------------------------------------------------

# Tool Comment / Manual Entry Section 刀具注释/手工输入部分

# -------------------------------------------------------------------------- ptoolcomment #Comment for tool

tnote = t

toffnote = tloffno

tlngnote = tlngno

"(", *tnote, *tldia, *sopnote, ")", e

pstrtool #Comment for tool

if strtool <> sblank,

[

strtool = ucase(strtool)

*strtool, " "

]

pcomment #Comment from manual entry (must call pcomment2 if booleans)

pcomment2

pcomment2 #Comment from manual entry

scomm = ucase (scomm)

if gcode = 1007, "(", scomm, ")"

else, "(", scomm, ")", e

# --------------------------------------------------------------------------

# 文件起始和刀具交换设置

# -------------------------------------------------------------------------- psof0 #Start of file for tool zero

psof

psof #Start of file for non-zero tool number

toolchng = one

if ntools = one,

[

#skip single tool outputs, stagetool must be on

stagetool = m_one

!next_tool

]

"%", e

*progno, e

"(PROGRAM NAME - ", progname, ")", e

"(DATE=Day-Month-Year - ", date, " TIME=Hr:Min - ", time, ")", e

ptoolcomment

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

sav_absinc = absinc

pcom_moveb

absinc = zero

pcan1, pbld, n, *sgcode, *sgabsinc, pwcs, pfxout, pfyout, *zr, *speed, *spindle, pgear, strcantext, e

pe_inc_calc

ps_inc_calc

absinc = sav_absinc

pbld, n, sgabsinc, e

pretract #刀具路径末尾,换刀

sav_absinc = absinc

absinc = one

sav_coolant = coolant

coolant = zero

#cc_pos is reset in the toolchange here

cc_pos = zero

gcode = zero

pbld, n, sccomp, *sm05, e

absinc = sav_absinc

coolant = sav_coolant

peof0 #End of file for tool zero

peof

peof #End of file for non-zero tool

pretract

comment

#Remove pound character to output first tool with staged tools # #if stagetool = one, pbld, n, *first_tool, e

n, "M30", e

"%", e

pwcs #G54+ coordinate setting at toolchange

if workofs <> prv_workofs | (force_wcs & toolchng),

[

if workofs < 6,

[

g_wcs = workofs + 54

*g_wcs

]

else,

[

p_wcs = workofs - five

"G54.1", *p_wcs

]

]

!workofs

pgear #Find spindle gear from lookup table

if use_gear = one,

[

gear = frange (one, speed)

*gear

]

#换刀设置

pspindle #主轴转速计算 for RPM

speed = abs(ss)

if maxss = zero | maxss > max_speed, maxss = max_speed if speed > max_speed, speed = maxss

if speed < min_speed, speed = min_speed

spdir2 = fsg3(spdir)

pq #Setup post based on switch settings

if stagetool = one, bldnxtool = one

if arctype = one | arctype = four,

[

result = newfs(two, i)

result = newfs(two, j)

result = newfs(two, k)

]

else,

[

result = newfs(three, i)

result = newfs(three, j)

result = newfs(three, k)

]

pheader #文件开始前调用

if met_tool = one, #米制常量和变量调整

[

ltol = ltol_m

vtol = vtol_m

maxfeedpm = maxfeedpm_m

]

ptoolend #刀具路径末尾,读取新刀具资料之前

!speed, !spdir2

ptlchg1002 #Call at actual toolchange, end last path here pspindle

if gcode = 1000,

[

#Null toolchange

]

else,

[

#Toolchange and Start of file

if gcode = 1002,

[

#Actual toolchange

pretract

]

if stagetool = one, prv_next_tool = m_one

prv_xia = vequ(xh)

prv_feed = c9k

]

# --------------------------------------------------------------------------

# Motion NC output 运动 NC 输出

# --------------------------------------------------------------------------

#绝对方式输出的变量为 xabs, yabs, zabs.

#增量方式输出的变量为 xinc, yinc, zinc.

# --------------------------------------------------------------------------

prapidout #输出直线运动的NC指令 - 快速

pcan1, pbld, n, sgplane, `sgcode, sgabsinc, pccdia,

pxout, pyout, pzout, strcantext, scoolant, e

plinout #输出直线运动的NC指令 - 进给

pcan1, pbld, n, sgplane, `sgcode, sgabsinc, pccdia,

pxout, pyout, pzout, feed, strcantext, scoolant, e

pcirout #输出圆弧插补的NC指令

if arcrad >= max_arc, result = mprint(saxiswarn)

pcan1, pbld, n, sgplane, sgcode, sgabsinc, pccdia,

pxout, pyout, pzout, parc, feed, strcantext, scoolant, e

pcom_moveb #Common motion preparation routines, before pxyzcout

ps_inc_calc

pncoutput #Movement output

pcom_moveb

comment

pcan

if gcode = zero, prapidout

if gcode = one, plinout

if gcode > one & gcode < four, pcirout

pcom_movea

pcom_movea #Common motion preparation routines, after pcan2

pe_inc_calc

pdwl_spd #Call from NCI gcode 4

pspindle

comment

if prv_spdir2 <> spdir2, pbld, n, *sm05, e

if prv_speed <> speed | prv_spdir2 <> spdir2,

pbld, n, *speed, *spindle, pgear, e

pcan

if fmtrnd(dwell), pcan1, pbld, n, *sgcode, *dwell, strcantext, e

else, pcan1, pbld, n, strcantext, e

pcan2

prapid #输出直线运动的NC指令 - 快速

pncoutput

pzrapid #输出直线运动的NC指令 - 快速 Z only

pncoutput

plin #输出直线运动的NC指令 - 进给

pncoutput

pz #输出直线运动的NC指令 - 进给 Z only

pncoutput

pmx #输出NCI向量的NC指令

pncoutput

pcir #输出圆弧插补的NC指令

pncoutput

# -------------------------------------------------------------------------- # Motion output components 运动输出组成

# -------------------------------------------------------------------------- pbld #Canned text - 单节删除

if bld, '/'

pfbld #强制 - 单节删除

"/"

pccdia #切削补偿

#Force Dxx#

if prv_cc_pos <> cc_pos & cc_pos, prv_tloffno = c9k

sccomp

if cc_pos, tloffno

pfxout #Force X axis output

if absinc = zero, *xabs, !xinc

else, *xinc, !xabs

pxout #X output

if absinc = zero, xabs, !xinc

else, xinc, !xabs

pfyout #Force Y axis output

if absinc = zero, *yabs, !yinc

else, *yinc, !yabs

pyout #Y output

if absinc = zero, yabs, !yinc

else, yinc, !yabs

pfzout #Force Z axis output

if absinc = zero, *zabs, !zinc

else, *zinc, !zabs

pzout #Z output

if absinc = zero, zabs, !zinc

else, zinc, !zabs

parc #选择圆弧输出格式

if arcoutput = zero,

[

#圆弧输出为 IJK

i, j, k

]

else,

[

#圆弧输出为 R

if abs(sweep)<=180 | arcoutput=one, result = nwadrs(srad, arcrad)

else, result = nwadrs(srminus, arcrad)

*arcrad

]

# -------------------------------------------------------------------------- # Drilling 钻孔

# -------------------------------------------------------------------------- pdrlcommonb #Canned Drill Cycle common call, before

if gcode = 81,

[

result = newfs (two, zinc)

if drillcyc = three, drlgsel = fsg1(-ss) + drillcyc * two

else, drlgsel = fsg2(dwell) + drillcyc * two

if initht <> refht, drillref = zero

else, drillref = one

prv_refht_a = c9k

prv_refht_i = c9k

]

z = depth

prv_zia = initht

feed = fr_pos

prv_dwell = zero

@dwell

pcom_moveb

comment

pcan

prdrlout #R drill position

refht_a = refht

refht_i = refht - initht

if absinc = zero, refht_a, !refht_i

else, refht_i, !refht_a

pdrill #钻孔固定循环

pdrlcommonb

pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout, prdrlout, dwell, *feed, strcantext, e

pcom_movea

ppeck #啄式钻孔固定循环

pdrlcommonb

pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout, prdrlout, *peck1, *feed, strcantext, e

pcom_movea

pchpbrk #断屑固定循环

pdrlcommonb

pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout, prdrlout, *peck1, *feed, strcantext, e

pcom_movea

ptap #攻螺纹固定循环

pdrlcommonb

pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout, prdrlout, *feed, strcantext, e

pcom_movea

pbore1 #镗孔固定循环 #1

pdrlcommonb

pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout, prdrlout, dwell, *feed, strcantext, e

pcom_movea

pbore2 #镗孔固定循环 #2

pdrlcommonb

pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout, prdrlout, *feed, strcantext, e

pcom_movea

pmisc1 #Canned Misc #1 Cycle

pdrlcommonb

pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout, prdrlout, shftdrl, dwell, *feed, strcantext, e

pcom_movea

pmisc2 #Canned Misc #2 Cycle (User Option)

pdrill

pdrill_2 #Canned Drill Cycle, additional points

pdrlcommonb

pcan1, pbld, n, pxout, pyout, pzout, prdrlout, dwell,

feed, strcantext, e

pcom_movea

ppeck_2 #Canned Peck Drill Cycle

pdrill_2

pchpbrk_2 #Canned Chip Break Cycle

pdrill_2

ptap_2 #Canned Tap Cycle

pdrill_2

pbore1_2 #Canned Bore #1 Cycle

pdrill_2

pbore2_2 #Canned Bore #2 Cycle

pdrill_2

pmisc1_2 #Canned Misc #1 Cycle

pdrill_2

pmisc2_2 #Canned Misc #2 Cycle

pdrill_2

pdrlcst #自定义钻孔循环 8 - 19 (user option)

#Use this postblock to customize drilling cycles 8 - 19

pdrlcommonb

"CUSTOMIZABLE DRILL CYCLE ", pfxout, pfyout, pfzout, e

pcom_movea

pdrlcst_2 #自定义钻孔循环 8 - 19, additional points (user option) #Use this postblock to customize drilling cycles 8 - 19

pdrlcommonb

"CUSTOMIZABLE DRILL CYCLE ", pfxout, pfyout, pfzout, e

pcom_movea

pcanceldc #Cancel canned drill cycle

result = newfs (three, zinc)

z = initht

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图形中输出程序名控制语句 Scrollex MasterCAM9后处理的修改

mastercamx4后处理说明

我的9.1!是mili版的 zhengyong2010(2012-01-02 18:50:36): zhengyong2010(2012-01-02 18:50:53): 处理出来的钻孔程序是这样的!zhengyong2010(2012-01-02 18:51:27):

我的是这个文件夹 毛连均(2012-01-02 18:51:57): mastercam9.1软件有吗 zhengyong2010(2012-01-02 18:52:07): 有! zhengyong2010(2012-01-02 18:52:32): https://www.sodocs.net/doc/f87947776.html,/item.htm?spm=1103CV29.3-gC1W.h-57stLG&id=12871 372822& 毛连均(2012-01-02 18:52:42): 有安装视频吗 zhengyong2010(2012-01-02 18:52:59): 这个是一键安装的! zhengyong2010(2012-01-02 18:53:12): 不用自己动手安装! 毛连均(2012-01-02 18:53:25): 哦 zhengyong2010(2012-01-02 18:53:37): 不过正版的系统安装不上哦 毛连均(2012-01-02 18:55:27): 这个软件直接放到postscript 毛连均(2012-01-02 18:55:58): posts吗 zhengyong2010(2012-01-02 18:56:23):

你开远程协助吧! zhengyong2010(2012-01-02 18:56:27): 我帮你看看 毛连均(2012-01-02 18:57:05): 不会 zhengyong2010(2012-01-02 18:57:12): 0 毛连均(2012-01-02 18:58:01): 聊天记录

MasterCAM X5后处理编辑

MasterCAM X5后处理编辑 更改IJK格式: 打开X5 选择设置——机床器定义——选择要更改的后处理程序——选择圆弧选项——把 XY,XZ,YZ平面设置成(开始至中心的间距)。 更改行号输出: 打开X5 选择设置——机床器定义——选择要更改的后处理程序——选择NC输出——行 号一栏取消即可。 %号修改: 用记事本打开后处理MPFAN文件——查找Start of File and Toolchange Setup——在下方"%", e$——改成我们需要的就可以了,如不需要%号,可在本行最前方加一个#就可以去掉%号 了。 去掉程序中的空格: 用记事本打开后处理MPFAN文件——查找sav_spc = spaces$——可在本行最前方加一个# 就可以去掉空格了。 更改O0000(程序名): 用记事本打开后处理MPFAN文件——查找*progno$, sopen_prn, sprogname$, sclose_prn, e$——如果想删除O0000——就把开头的*progno$,这一段删除,

有些机台不认O0000可能认O0001我们只需更改第一句*progno$,更改成 "O0001",就可以 了 想把O0000和程序序名分开就可以把*progno$,更改为*progno$, e$这样就分 开了格式如下: O0000 (COR01) 去掉程序路径和时间信息: sopen_prn, "DATE=DD-MM-YY - ", date$, " TIME=HH:MM - ", time$, sclose_prn, e$ #Date and time output Ex. 12-02-05 15:52 sopen_prn, "MCX FILE - ", *smcpath$, *smcname$, *smcext$, sclose_prn, e$ sopen_prn, "NC FILE - ", *spathnc$, *snamenc$, *sextnc$, sclose_prn, e$ sopen_prn, "MATERIAL - ", *stck_matl$, sclose_prn, e$ spaces$ = sav_spc 这些段落全部开头加# 去掉换刀程序: 用记事本打开后处理MPFAN文件——查找pbld, n$, *t$, sm06, e$改为#pbld, n$, *t$, sm06, e$ 删除高度补偿: 用记事本打开后处理MPFAN文件——查找pbld, n$, sg43, *tlngno$, pfzout, scoolant, pstagetool, e$改为#pbld, n$, sg43, *tlngno$, pfzout, scoolant, pstagetool, e$如果要保留安全高

对FANUC 0i的MasterCAM后处理修改

对FANUC 0i的MasterCAM后处理修改 2010-07-16 16:17 FANUC 0i MA系统配MasterCAM软件仍然是当今数控机床加工的主流搭配,因此本文对广大数控机床的编程与操作人员来讲,很有参考价值。文中所表述的思路、方法与程序都是作者在长期的工作实践中总结出来的,我们也欢迎广大读者在欣赏本文的同时,将你们有实用价值的技巧与心得写出来与大家共分享。 我们在利用MasterCAM为FANUC 0iMA系统做计算机编程的过程中发现,应用软件默认的FANUC后处理程序(Mpfan.pst)输出的刀路文件,需要大量的手工修改才能满足实际加工的需要。为了使CAM软件得到进一步推广应用,我们对MasterCAM9.0后置处理程序进行了编辑,使之应用得到了成功,大大提高了编程效率和程序质量,缩短了产品的制造周期,提高了产品的市场竞争力。『::好就好::中国权威模具网』 1. MasterCAM生成的后处理程序 在图1所示中,主要完成:(1)φ12立铣刀铣外形;(2)φ2中心钻打中心孔;(3)φ10钻头钻2-φ10孔的加工。 采用MasterCAM软件完成该零件的数控加工仿真后,应用后处理程序Mpfan.pst,生成的NC加工代码如下。 % O0000 (PROGRAM NAME-EXAMPLE1) (DATE=DD-MM-YY-11-07-04 TIME=HH:MM-08:41) N100G21 N102G0G17G40G49G80G90

(TOOL-1DIA.OFF.-1LEN.-1DIA.-12.) N104T1M6(φ12立铣刀铣外形) N106G0G90X-62.Y10.A0.S1000M3 N108G43H1Z50.M8 N110Z10. N112G1Z-10.F1000. N114G41D1X-50.F100. N116Y60. N118X-20. N120Y51. N122G3X-14.Y45.R6. N124G1X14. N126G3X20.Y51.R6. N128G1Y60. N130X50. N132Y10. N134X40.Y0. N136X-40. N138X-49.661Y9.661 N140G40X-58.146Y1.175 N142G0Z50. N144M5 N146G91G28Z0.M9 N148G28X0.Y0.A0. N150M01 (TOOL-2DIA.OFF.-2LEN.-2DIA.-2.) N152T2M6(φ2中心钻) N154G0G90G55X15.Y20.A0.S1500M3 N156G43H2Z3.M8 N158G1Z-3.F50. N160G0Z3. N162X65. N164G1Z-3. N166G0Z3. N168M5 N170G91G28Z0.M9 N172G28X0.Y0.A0. N174M01 (TOOL-3DIA.OFF.-3LEN.-3DIA.-10.) N176T3M6(φ10钻头钻2-φ10孔) N178G0G90G54X-25.Y20.A0.S1000M3

MasterCAM 后置处理设置方法详细说明

MasterCAM X版本后置处理及其修改方法详细说明mastercam系统配置的是适应单一类型控制系统的通用后置处理,用户根据数控 机床和数控系统的具体情况,可以对其数据库进行修改和编译,定制出适应某一数 控机床的专用后置处理程序。 mastercam系统默认发那科后置处理文件的扩展名为pst,称为pst文件。(一般该文件在共享文档\shared mcamx5\MILL\Posts\MPFAN.pst)根据本人多年使用经验,初次安装后后处理有以下几点要修改。 (1)默认后处理去掉第四轴A0的输出 用记事本或任意文本编辑器打开MPFAN.pst,然后搜索Rotary Axis Settings,找到rot_on_x:1#SET_BY_MD Default Rotary Axis Orientation #0=Off,1=About X,2=About Y,3=About Z 改成rot_on_x:0#SET_BY_MD Default Rotary Axis Orientation #0=Off,1=About X,2=About Y,3=About Z 就可以关闭四轴,没有A0输出。 (2)去掉程序开头的注释输出 用记事本或任意文本编辑器打开MPFAN.pst,然后搜索"%",找到 "%",e$ sav_spc=spaces$ spaces$=0 中间略掉 spaces$=sav_spc 改成 "%",e$ sav_spc=spaces$ spaces$=0 *progno$,sopen_prn,sprogname$,sclose_prn,e$ #sopen_prn,"PROGRAM NAME-",sprogname$,sclose_prn,e$ #sopen_prn,"DATE=DD-MM-YY-",date$,"TIME=HH:MM-",time$, sclose_prn,e$#Date and time output Ex.12-02-0515:52 #sopen_prn,"DATE-",month$,"-",day$,"-",year$,sclose_prn, e$#Date output as month,day,year-Ex.02-12-05 #sopen_prn,"DATE-",*smonth,"",day$,"",*year2,sclose_prn, e$#Date output as month,day,year-Ex.Feb.122005 #sopen_prn,"TIME-",time$,sclose_prn,e$#24hour time output-Ex.15:52 #sopen_prn,"TIME-",ptime sclose_prn,e$#12hour time output 3:52PM spathnc$=ucase(spathnc$) smcname$=ucase(smcname$) stck_matl$=ucase(stck_matl$)

MASTERCAM后处理修改方法必看

进行模具加工时,需从G54~G59的工件坐标系指令中指定一个,最常用的是G54。部分控制器使用G92指令确定工件坐标系。对刀时需定义工件坐标原点,原点的机械坐标值保存在CNC控制器的G54~G59指令参数中。CNC控制器执行G54~G59指令时,调出相应的参数用于工件加工。采用系统缺省的后处理文件时,相关参数设置正确的情况下可输出G55~G59指令,但无法实现G54指令的自动输出。 1、增加G54指令(方法一): 采用其他后处理文件(如MP_EZ.PST)可正常输出G54指令。由于FANUC.PST后处理文件广泛采用,这里仍以此文件为例进行所有修改。其他后处理文件内容有所不同,修改时根据实际情况调整。 选择【File】>【Edit】>【PST】命令,系统弹出读文件窗口,选择Mpfan.PST文件,系统弹出如下图所示编辑器。

单击"查找"按钮,系统弹出查找对话框,输入“G49”,如下图所示: 单击FIND NEXT按钮,查找结果所在行为: 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 将其整行删除,或加上“#”成为注释行:

MasterCAM9_修改后处理方式

MasterCAM9后处理的修改 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 查找当前行的上一行:

MASTERCAM后处理修改方法必看

M A S T E R C A M后处理修改方法必看 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

进行模具加工时,需从G54~G59的工件坐标系指令中指定一个,最常用的是 G54。 部分控制器使用G92指令确定工件坐标系。对刀时需定义工件坐标原点,原点的机械坐标值保存在CNC控制器的G54~G59指令参数中。CNC控制器执行G54~ G59指令时,调出相应的参数用于工件加工。采用系统缺省的后处理文件时,相关参数设置正确的情况下可输出G55~G59指令,但无法实现G54指令的自动输出。 1、增加G54指令(方法一): 采用其他后处理文件(如)可正常输出G54指令。由于后处理文件广泛采用,这里仍以此文件为例进行所有修改。其他后处理文件内容有所不同,修改时根据实际情况调整。 选择【File】>【Edit】>【PST】命令,系统弹出读文件窗口,选择文件,系统弹出如下图所示编辑器。

单击"查找"按钮,系统弹出查找对话框,输入“G49”,如下图所示: 单击FIND NEXT按钮,查找结果所在行为: 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”,单击"FIND NEXT" 按钮,查找结果所在行为:? force_wcs : no #Force WCS output at every toolchange? 将no改为yes,修改结果为:? force_wcs : yes #Force WCS output at every toolchange? 输出的NC文件修改前对应位置指令为:? 修改后变为:? 前一方法为强制输出固定指令代码,如需使用G55~G59指令时,有所不便。多刀路同时输出时,只在整个程序中出现一次G54指令。后一方法同其他后处理文件产生G54指令的原理相同,多刀路同时输出时,每次换刀都会出现G54指令,也可根据参数自动转换成G55~G59指令。? 输出三轴加工中心程序的FANUC后处理文件为,输出4轴加工中心程序的三菱控制器后处理文件为。? ⑵后处理文件针对的是4轴加工中心,而目前使用量最大的是3轴加工中心,多出了第4轴数据“A0.”。?

MASTERCAM后处理的设置和参数修改

MASTERCAM后处理的设置和参数 修改 后置处理文件简称后处理文件,MASTERCAM后置处理文件是一种可以由用户以回答问题的形式自行修改的文件,其扩展名为.PST。安装MASTERCAM时系统会自动安装默认的后处理为MPFAN.PST.在应用Mastercam软件的自动编程功能之前,必须先对这个文件进行编辑,才能在执行后处理程序时产生符合某种控制器需要和使用者习惯的NC程序,如果没有全部更正,则可能造成事故. MASTERCAM提供了不同系列的后处理文件,它们在内容上略有不同,但其格式及主体部分是相似的,一般都包括以下部分: 1)注释部分。对后处理文件及其设定方法作一般性介绍.此部分内容一般都不用更改. 以下是截取的部分注释:(注释前都带#号,系统在执行代码处理时是不会读取前面带#号的语句的.) # 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

Mastercamx后处理

Mastercam 是一套应用广泛的CAD/CAM/CAE软件包,它采用图形交互式自动编程方法实现NC 程序的编制。交互式编程是一种人机对话的编程方法,编程人员根据屏幕提示的内容,反复与计算机对话,选择菜单目录或回答计算机的提问,直至将所有问题回答完毕,系统即可自动生成NC程序。NC程序的自动产生是受软件的后置处理功能控制的,不同的加工模块(如车削、铣削和线切割等) 和不同的数控系统对应不同的后处理文件。软件当前使用哪一个后处理文件,是在软件安装时设定的,而在具体应用软件进行编程之前,一般还需对当前的后处理文件进行必要的修改和优化,以使其符合系统要求和使用者的编程习惯。有些用户在使用软件时,由于不了解情况,没有对后处理文件进行修改,导致生成的N C程序中某些固定的地方经常出现一些多余的内容,或者总是漏掉某些词句。解决这类问题,一般都需要在将程序传入数控机床之前,对程序进行手工修改,如果没有全部更正,则可能造成事故。例如,在数控编程中可以去掉程序行号,以控制程序文件大小,便于文件的快速上传。又如,更改某些不同系统的不同程序代码,或限定主轴和进给速度的最大与最小极限速度。再如,确定立式和卧式机床型号等。本文介绍了Mastercam 后处理文件的内容以及修改和设置的方法,供有关人员参考。 一、启动Mastercam 软件的修改文件 以铣削为例,在安装的MaterCAM根目录下,采用记事本打开MPFAN.pst 文件(位置为“ D:\mcamx\mill\Posts\MPFAN. pst”)。图1所示即为该文件。 后置处理文件简称后处理文件,是一种可以由用户以回答问题的形式自行修改的文件,其扩展名为“.PST”。在应用Mastercam软件的自动编程功能之前,必须先对这个文件进行编辑,才能在执行后处理程序时产生符合某种控制器需要和使用者习惯的NC程序,也就是说,后处理程序可以将一种控制器的NC程序,定义成该控制器所使用的格式。以FANUC系列的后处理系统为例,MPFAN后处理文件针对的是4轴加工中心,下面我们来优化FANUC 3M控制器所使用的格式。注意:不同系列的后处理文件,在内容上略有不同,但其格式及主体部分是相似的,一般都包括以下四个部分。

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 图形中读入日期

MasterCAM9.1车床后处理MPLFAN.PST的修改方法

A程式是自带后处理出的,B程式是改后的后处理出的。 本人并非专业编程人员,对编程只是知道些皮毛。同事叫我帮忙修改一下MasterCAM9.1的后处理,因为每次都要手工修改,很麻烦,还怕出错。在网上找了好久都找不到关于MasterCAM车床后处理的修改方法,只好自己慢慢研究……最终还是改好了,能正常使用。但我毕竟不是专业人氏,也不知会不会出现意外的情况,希望懂的人可以指正。 声明:此后处理适用MasterCAM 9.1,其它版本请自行研究。如何要使用此后处理,请务必核对程式!凡使用此后处理一切后果自负!(经反馈,两段程式合并一起处理时,会出现换刀指令!如不用刀库的必须注意!) 找到车床的后处理文件MPLFAN.PST(位于Mcam9\Lathe\Posts\),复制一份出来放在同目录,改好自己喜欢的名字,打开修改。以下是修改记录。(黄色底纹是修改过的,注意对比源文件) force_wcs : no #删除程式中的G54,默认是yes。 #去除程式中的M08、M09(冷却液开关) #fstrsel sm09 coolant scoolant #程序名,日期,时间等 # *progno, e #去除程序名 # pbld, n, *smetric, e #去除G21 "(-", progname,".NC", "- ", date, ")", e #程度名和日期,随意更改 #删除程式中的刀具和刀片描述 # ptoolcomment # comment #删除程式中的“G0 T0202(刀具号)” # pbld, n, *sgcode, *toolno, e #以下两段调换顺序,可以调换“G0快速定位”和“主轴转动”的顺序。黄色的第一段输出“快速定位和冷却开关”。 sav_absinc = absinc if home_type > one, absinc = zero pcan1, pbld, n, psccomp, *sgcode, pwcs, pfxout, pyout, pfzout, pfscool, strcantext, e if lcc_cc_pos, plcc_cc_pos #Use sav_xa to position with comp. LCC pcom_movea #Update previous, pcan2 ps_inc_calc #Reset current absinc = sav_absinc #Added for 'css_start_rpm' logic (09/05/01) if css_actv, [ if css_start_rpm, prpm # Direct RPM startup for programmed CSS else, pcssg50, pcss # NO RPM start - just output the CSS ] else, # Direct RPM was programmed

mastercam后处理修改

m a s t e r c a m后处理修改 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

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图形中读入主轴速度

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代码作有组织的排列,编排成一条程序段。

MasterCAM后处理的修改

MasterCAM后处理的修改 MasterCAM9后处理的修改 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 修改后变为:

mastercam9.1后处理带刀具半径和余量显示经典

# Post Name : MPFAN # Product : MILL # Machine Name : GENERIC FANUC # Control Name : GENERIC FANUC # Description : GENERIC FANUC MILL POST # 4-axis/Axis subs. : YES # 5-axis : NO # Subprograms : YES # Executable : MP v9.10 # # WARNING: THIS POST IS GENERIC AND IS INTENDED FOR MODIFICATION TO # THE MACHINE TOOL REQUIREMENTS AND PERSONAL PREFERENCE. # # -------------------------------------------------------------------------- # Revision log: # -------------------------------------------------------------------------- # Programmers Note: # CNC 01/12/01 - Initial post update for V8.1 # CNC 07/02/01 - Add cantext to cancel drill and tool retract # CNC 01/09/02 - Initial post update for V9.0 # CNC 01/31/02 - Set usecandrill, usecanpeck, force_wcs to YES # CNC 02/22/02 - Forces output of I,J,K arc centers (arcoutput:0) # CNC 04/12/02 - Use original position for inverse feed and 4 ax paths # CNC 05/01/02 - Set "helix_arc:2", support helix arc output in XY plane # CNC 05/07/02 - Do not update sav_rev with axis substitution # CNC 11/06/02 - Altered 'F'eedrate output format when tapping (G74/G84) # CNC 01/06/03 - moved feed assignment below pcom_moveb to address bug w/feed in 4 axis # CNC 01/17/03 - Added flags to allow reversal of axis orientations # CNC 02/04/03 - Initial post update for V9.1 # # -------------------------------------------------------------------------- # Features: # -------------------------------------------------------------------------- # This post supports Generic Fanuc code output for 3 and 4 axis milling. # It is designed to support the features of Mastercam Mill V9. # # Following Misc. Integers are used: # # mi1 - Work coordinate system # 0 = Reference return is generated and G92 with the # X, Y and Z home positions at file head. # 1 = Reference return is generated and G92 with the # X, Y and Z home positions at each tool. # 2 = WCS of G54, G55.... based on Mastercam settings.

相关主题