|
Mastercam是美国CNC Software公司开发的一套CAD/CAM软件,最早的版本为V3.0,可运行于DOS系统.V5.0以上版本运行于Windows操作系统。由于其诞生较早且功能齐全,特别是在CNC编程上快捷方便,因此有很高的市场占有率.软件的CAD功能可以构建2D或3D图形,架构自由曲面的功能远远胜于其他同类软件.在CAM方面更是直观和方便,可直接在点,线,面和实体上产生刀路.
9 O& ^* V* M8 u8 P- ^" t8 j8 a ^& O) `
9 C! M9 F! G, d
下面重点介绍它的后处理设置. 6 {4 v7 r& s5 F9 s- [' Z
/ t1 v, X2 N- z5 ]9 n 后置处理文件简称后处理文件,是一种可以由用户以回答问题的形式自行修改的文件,其扩展名为.PST。安装MASTERCAM时系统会自动安装默认的后处理为MPFAN.PST.在应用Mastercam软件的自动编程功能之前,必须先对这个文件进行编辑,才能在执行后处理程序时产生符合某种控制器需要和使用者习惯的NC程序,如果没有全部更正,则可能造成事故.例如,某机床的控制系统采用G54工件坐标系定位,G90绝对坐标编程,要求生成的NC程序前面必须有G54G90设置,如果后处理文件的设置为G55G91,则每次生成的程序中含有G55G91,却不一定有G54G90,如果在加工时没有进行手工改正,则势必造成加工错误.本文介绍了Mastercam后处理文件的内容以及修改和设置的方法,供有关人员参考.也就是说后处理程序可以将一种控制器的NC程序,定义成该控制器所使用的格式.以FANUC系列的后处理系统为例,它可以定义成惯用于FANUC 3M控制器所使用的格式,也可以定义成FANUC 6M控制器所使用的格式,但不能用来定义其它系列的控制器.不同系列的后处理文件,在内容上略有不同,但其格式及主体部分是相似的,一般都包括以下部分: 6 D8 c S3 j' L# ?
: N) Z3 u: d8 P 1) Annotation(注释).对后处理文件及其设定方法作一般性介绍.此部分内容一般都不用更改. L# d o) K4 E) T% z
以下是截取的部分注释 注释前都带#号,系统在执行代码处理时是不会读取前面带#号的语句的.) $ _% j9 e" g/ h$ @6 v% W4 @
# Post Name : MPFAN 3 c4 w6 l& F0 e1 F; M _: G
# Product : MILL
. P' U4 T; x1 `# F- P. o* m: r# Machine Name : GENERIC FANUC
' U( |, x# ]9 q) ]4 G# Control Name : GENERIC FANUC
; b2 M- R6 ~" S1 Y# U/ P9 F# Description : GENERIC FANUC MILL POST
0 R z. \3 c" k$ A" b# Associated Post : NONE 7 w# w U( h0 n& Q5 m: Q* J* V+ y
# Mill/Turn : NO ( M6 {" | B& J2 ]! I
# 4-axis/Axis subs. : YES
2 v: x! x8 U: P! y$ r# 5-axis : NO , `) V0 w+ _! h( A( K; h
# Subprograms : YES
7 }7 u, r6 X8 r/ O8 O3 y5 Q' o0 S4 P# Executable : MP v9.0
; A- h6 [* u1 | F/ i% y1 {7 A# , E0 X3 f. a5 D* q9 U7 N& b8 Z
# WARNING: THIS POST IS GENERIC AND IS INTENDED FOR MODIFICATION TO
2 l; f& `1 |; F' C# THE MACHINE TOOL REQUIREMENTS AND PERSONAL PREFERENCE.
" `1 ~" R- p4 {' I: O6 r
0 E6 F" a* j0 c! `- Y2 u 2) Debugging and Factory Set Program Switches (系统程序规划).此部分是MASTERCAM版本的后处理系统规划,每个版本都大同小异,一般不需更改.以下截取的是9.0版的) d8 g" u, y( W6 o! A& z/ K
m_one : -1 #Define constant
$ I' s1 ]& O8 C' S( Ezero : 0 #Define constant ! P9 l- \6 H, |1 l/ [8 |! J
one : 1 #Define constant 6 I d/ A, p1 Q+ O8 |
two : 2 #Define constant
+ r( v' `9 ]) Z3 z& E/ `three : 3 #Define constant : Z" I _) C& t ]
four : 4 #Define constant
4 Z5 Q& i; s* Z$ ]five : 5 #Define constant
8 b* I6 B& v9 \* _! j' qc9k : 999 #Define constant
1 Q1 e" A7 L3 D5 [' c e& K1 O8 g+ Z5 m0 y/ K5 b
fastmode : yes #Enable Quick Post Processing, (set to no for debUG)
! z" E4 Y$ Q/ \bug1 : 2 #0=No display, 1=Generic list box, 2=Editor
6 ~4 s' \* d/ a; W* P4 _) Ebug2 : 40 #Append postline labels, non-zero is column position? * P7 @- n5 P7 z# M9 ]5 h6 N1 c
bug3 : 0 #Append whatline no. to each NC line? / H* X* Q3 L5 I* I& w7 h; [& h% h
bug4 : 1 #Append NCI line no. to each NC line?
8 l$ ^' c2 @6 n: a# H6 `5 |whatno : yes #Do not perform whatline branches? (leave as yes)
; B6 `3 g2 X# d8 i4 \% `! f/ x# W$ @2 H
get_1004 : 1 #Find gcode 1004 with getnextop?
' [4 _* j. E' G; ^rpd_typ_v7 : 0 #Use Version 7 style contour flags/processing?
& i# Z6 Y O8 a/ {$ q! Nstrtool_v7 : 2 #Use Version 7+ toolname?
+ H% P( ?' h. m6 m# L8 _tlchng_aft : 2 #Delay call to toolchange until move line
% q; p6 _) _5 f$ \/ Ccant_tlchng : 1 #Ignore cantext entry on move with tlchng_aft 6 G$ L/ T$ T$ z. h& a
newglobal : 1 #Error checking for global variables
o1 f: o% w) V) ^! d( L8 X7 Bgetnextop : 0 #Build the next variable table : \: K! ~, z' i: ^" k B, d" L( R
: a$ ?! L9 @# p/ ^! Y Q9 l
3) General Output Settings(常规后处理设定).此部分可视情况更改,以适合机台或个人使用.以下截取的是9.0版的一些常规设定.冒号前面的是变量,冒号后面的是设定值,#号后面是注解(一般是说明0代表什么,1代表什么,2代表什么,yes或no应该不用翻译了吧?!)英文后面的中文注解是我加进去的,翻译的不是很详细,但相信大家能看懂.没有翻译的就表示我根本不会或此设定不常用....嘿嘿...
4 D/ T8 f9 B' Q6 n4 ]; w9 v6 J4 N& B3 f9 w9 b
0 r) H2 v( p- U- j+ F% A
sub_level : 1 #Enable automatic subprogram support(启用自动支持子程式)
; P4 M# K+ `7 u( ]breakarcs : 2 #Break arcs, 0 = no, 1 = quadrants, 2 = 180deg. max arcs(打断圆弧方式)
; B$ f4 N3 m# n" W3 f8 Z: @arcoutput : 1 #0 = IJK, 1 = R no sign, 2 = R signed neg. over 180(转出圆弧方式)
' U- V4 {% _; warctype : 2 #Arc center 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc. 3 J7 o2 n( O! A) k$ u
do_full_arc : 0 #Allow full circle output? 0=no, 1=no (是否转成整圆方式) ! y W) O1 F8 {+ f% H3 Z3 u
helix_arc : 0 #Support helix arc output, 0=no, 1=all planes,2=XY plane only(是否转成螺旋弧)
1 ^1 K) K" h, e" ]7 `9 l3 }* C$ uarccheck : 1 #Check for small arcs, convert to linear(是否检测小圆弧并将其转成线) 4 k: K' I3 `/ w# b; j
atol : .01 #Angularity tolerance for arccheck = 2(圆弧角度公差)
# [5 V8 a" r. ?0 Altol : .002 #Length tolerance for arccheck = 1(圆弧长度公差) 2 b; g) h# Z( p
vtol : .1 #System tolerance(系统公差) 5 P. U- N5 F9 t( C2 e% W+ @
maxfeedpm : 500 #Limit for feed in inch/min(最大进给-英制) : H& g2 I2 F& S+ b! S% o
ltol_m : .05 #Length tolerance for arccheck = 1, metric(圆弧长度公差-公制) 9 u* i1 P1 L) m: x; h! F. N
vtol_m : .0025 #System tolerance, metric(系统公差-公制)
( u6 E% p Q* r$ m. j# q: F6 jmaxfeedpm_m : 10000 #Limit for feed in mm/min(最大进给-公制)
5 M: k' ^# H0 M3 ?force_wcs : no #Force WCS output at every toolchange?(换刀时是否转出WCS坐标)
7 D8 T e9 j* A+ Uspaces : 0 #Number of spaces to add between fields(两行之间是否加入空格)
) u# D' J! g0 {$ r% T) Vomitseq : yes #Omit sequence numbers?(是否省略序列号)
; _9 B: t( n' {seqmax : 9999 #Max. sequence number(最大序列号) 1 j- i" T% x& `/ ~( t
stagetool : 0 #0 = Do not pre-stage tools, 1 = Stage tools(是否沿用刀具) & U% z% v, X/ }* o+ Z( V
use_gear : 0 #Output gear selection code, 0=no, 1=no (是否转成齿轮代码)
" e$ D$ M0 i9 Y& I9 ` x1 K7 E, Vmax_speed : 10000 #Maximum spindle speed(最大转速)
7 o& m6 Y/ X! P2 A/ d0 h& s4 Kmin_speed : 50 #Minimum spindle speed(最小转速) : ~, H$ c- |, b1 V8 F
nobrk : no #Omit breakup of x, y & z rapid moves / Z' y, }% |( O
progname : 0 #Use uppercase for program name (sprogname)(程式名称是否使用大写)
; }( `9 ] A6 ~, Y6 g S- f4 |6 x
4) 中间还有一些例如:Common User-defined(指令设定),Format statements(格式报告),definitions for NC output(NC代码限定),Error messages(出错信息),Toolchange / NC output Variable Formats(刀具变量)等基本上都是系统固定格式,不需要更改.在此就不再详述.当然,我也不建议你更改这些项目,如果你改错的话,系统很可能不执行或机台报警...... 2 `+ v1 o8 z, \, _6 k4 n3 M6 W
/ T* L) P3 M. D" K6 F" _; o! C. T7 m w 5) Start of File and Toolchange Setup(文本内容和换刀设定).此部分内容很重要,很多使用者都从这里着手把程式改成自己需要的格式.以下截取的是9.0版的部分内容,其中有些是我根据自己需要更改的,中文是我加的注解.引号内是可以更改的内容.
% y( V: w3 [1 _. I/ R" Z; y3 G: v. P& J7 G
"%", e(程式开头的百分号)
* {0 a/ w0 n+ A% I, ~. _*progno, e(程式号码) ! f C5 D' I2 M5 J1 Y$ O- d5 ]% V# g
comment(注解,可有可无,如不需要则删除此句)
2 B9 J% y% z0 S% e"(PROGRAM NAME - ", sprogname, ")", e(程式名称,可有可无) 2 R5 h6 f7 P ~3 S! y
"(", *tnote, *toffnote, *tlngnote, *tldia, ")", e(刀具直径及补正参数显示,如不需要则把此整句删除) ^% n5 I9 `+ b5 X
"(DATE=DD-MM-YY - ", date, " TIME=HH:MM - ", time, ")", e(程式日期显示,可有可无) ' G, F0 l+ \% [/ {, w9 L6 i# r
pbld, n, *"/M99", e (我自己加的一句,如不需要则整句删除,而不是只删除引号内的内容)
/ ^# b6 {9 P: o( e, Lpbld, n, *"G90", "G92","X0.Y0.Z10.", e(定义加工原点,也可以改为G54坐标)
* z! w" H ~' X p) a3 qsav_absinc = absinc (绝对坐标系)
% {# Y7 a- @% ?( `...... ; j- F0 p* P; R1 {2 L- V
4 ]: f8 ]# l" b' B+ G; W4 G2 i$ b
(中间省略的部分是系统根据刀路自动转出的程式,一般不必改)
8 A/ X0 ~9 j' X k) `...... . j0 Z+ C& h, d& v5 b( _
(以下几句是出现在程式尾,可以根据需要添加或删除) % ?7 o" P, I2 F5 V0 N' L3 D1 T
5 ]+ C7 j( f- w" J1 q' {n, "Z10.", e (加工完成后提刀至安全高度) . ]0 r& F2 ^3 q# D4 q
n, "X0.Y0.", e (归零) 1 z& |' b" H5 U% M
n, "G91", e (转用相对坐标) 1 K' Y, u! B9 P
n, "M99", e (回到主程式)
5 ]$ U$ X: g% rmergesub(此四句为程式结尾固定语句,不必理它)
0 z" m6 K# {$ K3 sclearsub
: u+ \ r: [) u" Jmergeaux
% }$ ]7 _! N+ s+ Zclearaux . ]+ M3 [! M; v' s/ n
"%", e(程式尾) |
评分
-
查看全部评分
|