|
Mastercam是美国CNC Software公司开发的一套CAD/CAM软件,最早的版本为V3.0,可运行于DOS系统.V5.0以上版本运行于Windows操作系统。由于其诞生较早且功能齐全,特别是在CNC编程上快捷方便,因此有很高的市场占有率.软件的CAD功能可以构建2D或3D图形,架构自由曲面的功能远远胜于其他同类软件.在CAM方面更是直观和方便,可直接在点,线,面和实体上产生刀路.
( \3 Q4 l- u4 S7 g: c4 b% x U% j! X" X; n
+ h; I$ r6 f+ l& @) T, A' z
下面重点介绍它的后处理设置.
4 Q3 \6 D) a6 t" P
& A5 e. } l) P) X 后置处理文件简称后处理文件,是一种可以由用户以回答问题的形式自行修改的文件,其扩展名为.PST。安装MASTERCAM时系统会自动安装默认的后处理为MPFAN.PST.在应用Mastercam软件的自动编程功能之前,必须先对这个文件进行编辑,才能在执行后处理程序时产生符合某种控制器需要和使用者习惯的NC程序,如果没有全部更正,则可能造成事故.例如,某机床的控制系统采用G54工件坐标系定位,G90绝对坐标编程,要求生成的NC程序前面必须有G54G90设置,如果后处理文件的设置为G55G91,则每次生成的程序中含有G55G91,却不一定有G54G90,如果在加工时没有进行手工改正,则势必造成加工错误.本文介绍了Mastercam后处理文件的内容以及修改和设置的方法,供有关人员参考.也就是说后处理程序可以将一种控制器的NC程序,定义成该控制器所使用的格式.以FANUC系列的后处理系统为例,它可以定义成惯用于FANUC 3M控制器所使用的格式,也可以定义成FANUC 6M控制器所使用的格式,但不能用来定义其它系列的控制器.不同系列的后处理文件,在内容上略有不同,但其格式及主体部分是相似的,一般都包括以下部分:
) ~) Z5 B+ s5 P
6 ~6 V K& Q& Q1 q6 } 1) Annotation(注释).对后处理文件及其设定方法作一般性介绍.此部分内容一般都不用更改. % [; \( c% E$ F ^( u
以下是截取的部分注释注释前都带#号,系统在执行代码处理时是不会读取前面带#号的语句的.)
4 f. \; O2 e- H+ m, q( k# Post Name : MPFAN
* h# w7 \/ M8 ^. }2 @# Product : MILL
, X5 w$ O" X% F) W& ~, y# Machine Name : GENERIC FANUC + v2 i. [: C+ _; [7 t6 T1 T
# Control Name : GENERIC FANUC # ~* J1 u$ {' x1 s5 o7 o; t
# Description : GENERIC FANUC MILL POST
* O6 C* g' V3 E! u |# Associated Post : NONE
1 s# E1 `7 {% \% r0 K# Mill/Turn : NO ) s' E1 p I+ M9 K5 o5 J; Z# [1 @' l
# 4-axis/Axis subs. : YES
" W& o" k8 O1 F* F& r# 5-axis : NO 3 K$ [, c4 Q6 n+ W% M
# Subprograms : YES
# u& z+ O* [. V3 t2 o4 M8 r# Executable : MP v9.0 # D4 \1 ]: [8 G G1 _) N8 H" j
#
, Z- q2 a+ L | u* \$ l# WARNING: THIS POST IS GENERIC AND IS INTENDED FOR MODIFICATION TO
3 D; I8 d d5 J8 j, u3 x# THE MACHINE TOOL REQUIREMENTS AND PERSONAL PREFERENCE.
- W1 [; O) i& @% e- {2 w, c/ r8 F+ \8 m" W2 z
2) Debugging and Factory Set Program Switches (系统程序规划).此部分是MASTERCAM版本的后处理系统规划,每个版本都大同小异,一般不需更改.以下截取的是9.0版的)
& k7 B1 f& H7 _, o# Um_one : -1 #Define constant ; l7 F. P; |* E0 d9 J {
zero : 0 #Define constant / X& D. Z4 Q, M9 S3 d) Z$ y
one : 1 #Define constant
0 \6 _( _4 C8 m' M- Dtwo : 2 #Define constant
1 S$ d" N; p( M7 Ythree : 3 #Define constant + ~# N# k6 h: _7 o( v
four : 4 #Define constant
3 ?9 f' C+ F @, H- vfive : 5 #Define constant
6 n, d; X, M2 F Bc9k : 999 #Define constant
1 w1 F9 |- r% J
7 e( Y' i- W _) E# A' L1 [fastmode : yes #Enable Quick Post Processing, (set to no for debUG) % A7 G# b. `- n! G6 A* O$ y( X( ^
bug1 : 2 #0=No display, 1=Generic list box, 2=Editor
1 |7 S9 G2 C* H9 \ R% ]8 }8 Y7 c+ gbug2 : 40 #Append postline labels, non-zero is column position?
& m$ w: w4 S. i" O% F/ Wbug3 : 0 #Append whatline no. to each NC line? , m+ ]+ i) \& w3 N9 L$ g
bug4 : 1 #Append NCI line no. to each NC line?
2 J6 X8 a j. z& u: Jwhatno : yes #Do not perform whatline branches? (leave as yes)
9 a" Q! _ j5 @7 n) J4 q: r
! ~4 i) U& t- y. [9 Oget_1004 : 1 #Find gcode 1004 with getnextop?
0 S: h' S8 \& y$ V' Vrpd_typ_v7 : 0 #Use Version 7 style contour flags/processing?
: I5 m2 Y: W6 Q" @strtool_v7 : 2 #Use Version 7+ toolname? 7 N/ p8 L* R% z$ o' r8 h6 `, F( G
tlchng_aft : 2 #Delay call to toolchange until move line
9 Y6 p6 w* p5 a0 S: y9 b+ ?cant_tlchng : 1 #Ignore cantext entry on move with tlchng_aft
2 L; H2 }8 E3 wnewglobal : 1 #Error checking for global variables ! v1 V6 m+ [9 u: W& j8 U! [' J- X
getnextop : 0 #Build the next variable table
8 f( o1 a6 y2 z. N7 L$ g: @( P1 l
+ V0 c4 y' s% @3) General Output Settings(常规后处理设定).此部分可视情况更改,以适合机台或个人使用.以下截取的是9.0版的一些常规设定.冒号前面的是变量,冒号后面的是设定值,#号后面是注解(一般是说明0代表什么,1代表什么,2代表什么,yes或no应该不用翻译了吧?!)英文后面的中文注解是我加进去的,翻译的不是很详细,但相信大家能看懂.没有翻译的就表示我根本不会或此设定不常用....嘿嘿... 2 s, A* \( e9 c& d
; s' R8 x* f& E2 ^* f( D# Q
. t: D* G$ t& P7 K' esub_level : 1 #Enable automatic subprogram support(启用自动支持子程式) 3 y; o5 z$ |! c$ a$ i; ~
breakarcs : 2 #Break arcs, 0 = no, 1 = quadrants, 2 = 180deg. max arcs(打断圆弧方式) # }6 A$ Z* p+ F+ t' ]3 K# q; Y- i
arcoutput : 1 #0 = IJK, 1 = R no sign, 2 = R signed neg. over 180(转出圆弧方式) ( B0 N4 n+ O% ^- v
arctype : 2 #Arc center 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc.
9 m: U9 Y% `) L) w* v. c8 Odo_full_arc : 0 #Allow full circle output? 0=no, 1=no (是否转成整圆方式)
) |4 j( i% r' w8 Q: thelix_arc : 0 #Support helix arc output, 0=no, 1=all planes,2=XY plane only(是否转成螺旋弧)
8 {: {5 q% P( O3 T' _arccheck : 1 #Check for small arcs, convert to linear(是否检测小圆弧并将其转成线) " q9 z8 c6 t! N8 X9 D
atol : .01 #Angularity tolerance for arccheck = 2(圆弧角度公差) - g3 ?6 o$ t1 [5 i# x
ltol : .002 #Length tolerance for arccheck = 1(圆弧长度公差)
. O, I& H, H$ c# |, ^, k }5 O7 Pvtol : .1 #System tolerance(系统公差)
6 G: n" }) h9 x2 _- cmaxfeedpm : 500 #Limit for feed in inch/min(最大进给-英制)
) u" l3 ^3 p4 A( Y$ Sltol_m : .05 #Length tolerance for arccheck = 1, metric(圆弧长度公差-公制) ' e% M k+ d/ q) D# W p
vtol_m : .0025 #System tolerance, metric(系统公差-公制) ( d4 a6 C2 q2 @1 |4 ]
maxfeedpm_m : 10000 #Limit for feed in mm/min(最大进给-公制) : X+ l3 m, A C
force_wcs : no #Force WCS output at every toolchange?(换刀时是否转出WCS坐标) 5 U- P: l* t; R3 m0 Y
spaces : 0 #Number of spaces to add between fields(两行之间是否加入空格)
( Z( w" |& J' v, B) {( C- ?omitseq : yes #Omit sequence numbers?(是否省略序列号)
$ B! ?9 t& P) O3 p0 L0 M1 @seqmax : 9999 #Max. sequence number(最大序列号) , c1 j7 [7 f6 v: h- ^
stagetool : 0 #0 = Do not pre-stage tools, 1 = Stage tools(是否沿用刀具)
5 s! |; n/ `! [9 k. w S# ]* {use_gear : 0 #Output gear selection code, 0=no, 1=no (是否转成齿轮代码) " g9 f; U5 U% k H) i6 F) N
max_speed : 10000 #Maximum spindle speed(最大转速)
+ c! u8 d& C9 ^7 B# u0 Umin_speed : 50 #Minimum spindle speed(最小转速)
% d w5 k! m) @( W% F$ Y M) tnobrk : no #Omit breakup of x, y & z rapid moves - C- r2 P' p8 Q
progname : 0 #Use uppercase for program name (sprogname)(程式名称是否使用大写)
& Z; J/ L/ h4 t8 v _* e5 |/ d, V+ ]/ Y# d# |. z0 y% g- A: K
4) 中间还有一些例如:Common User-defined(指令设定),Format statements(格式报告),definitions for NC output(NC代码限定),Error messages(出错信息),Toolchange / NC output Variable Formats(刀具变量)等基本上都是系统固定格式,不需要更改.在此就不再详述.当然,我也不建议你更改这些项目,如果你改错的话,系统很可能不执行或机台报警......
9 a8 @1 C1 _$ J! ~: c6 u/ `" ^4 ]9 Y
; ~' m2 o" M, D, b 5) Start of File and Toolchange Setup(文本内容和换刀设定).此部分内容很重要,很多使用者都从这里着手把程式改成自己需要的格式.以下截取的是9.0版的部分内容,其中有些是我根据自己需要更改的,中文是我加的注解.引号内是可以更改的内容.
8 I3 q6 U o0 I' c. w
& [4 g1 z0 r. M8 A8 M3 s7 S"%", e(程式开头的百分号) ' d2 }$ f! E8 u+ a2 q; C6 R6 {
*progno, e(程式号码) # U/ h1 K( I* C- o: e6 |
comment(注解,可有可无,如不需要则删除此句)
& B, y* G* i5 B3 S"(PROGRAM NAME - ", sprogname, ")", e(程式名称,可有可无)
" u* _: a% p% L' T G, b"(", *tnote, *toffnote, *tlngnote, *tldia, ")", e(刀具直径及补正参数显示,如不需要则把此整句删除)
( g m, Z( \) v5 L# M; ~- M% Z6 O"(DATE=DD-MM-YY - ", date, " TIME=HH:MM - ", time, ")", e(程式日期显示,可有可无) 5 _6 T8 z# X8 u3 i {+ k g
pbld, n, *"/M99", e (我自己加的一句,如不需要则整句删除,而不是只删除引号内的内容) ' h$ }2 l0 c5 e N0 s4 Q/ `: s8 u
pbld, n, *"G90", "G92","X0.Y0.Z10.", e(定义加工原点,也可以改为G54坐标) " \( J( ^8 j' b1 @- q, ]
sav_absinc = absinc (绝对坐标系) 9 r- N4 i) J+ m! h4 p0 ^) W
......
- f* R# ~ I4 P* B/ W" G. K l7 L6 G# t) j& J- m. n. ~6 p
(中间省略的部分是系统根据刀路自动转出的程式,一般不必改) & E. ^+ h0 U0 u5 a
......
* n. Q$ w8 v# J- F2 O# b$ g) k* k(以下几句是出现在程式尾,可以根据需要添加或删除) + T( m: X! e$ R/ k5 |! o
! D6 k. K: z( k+ Tn, "Z10.", e (加工完成后提刀至安全高度) ! [% m1 j8 D& N' J+ s
n, "X0.Y0.", e (归零)
1 v, J2 o% t5 T' L& P4 r" Nn, "G91", e (转用相对坐标) ) X8 D8 B% R' _- c( |
n, "M99", e (回到主程式) . P# U. u2 L; Z7 |: f* c! e
mergesub(此四句为程式结尾固定语句,不必理它) / `: p8 q( a: w7 U* O$ U( g6 W
clearsub 6 L8 `1 Q4 @8 ^5 |& F$ P+ E' e
mergeaux
/ c+ Q/ z8 t% ~clearaux
/ E5 `" o' n; y% |/ }- a"%", e(程式尾) |
评分
-
查看全部评分
|