|
Mastercam是美国CNC Software公司开发的一套CAD/CAM软件,最早的版本为V3.0,可运行于DOS系统.V5.0以上版本运行于Windows操作系统。由于其诞生较早且功能齐全,特别是在CNC编程上快捷方便,因此有很高的市场占有率.软件的CAD功能可以构建2D或3D图形,架构自由曲面的功能远远胜于其他同类软件.在CAM方面更是直观和方便,可直接在点,线,面和实体上产生刀路. + y# [+ g/ D5 e4 R d
! [4 X+ N8 w" q+ I* f. ?/ L; ^8 W
3 N2 S2 h% E; ]8 A- B2 Y下面重点介绍它的后处理设置.
" q: s5 j/ X$ z/ c; k8 x$ s) _% S5 D( _9 v. m$ K
后置处理文件简称后处理文件,是一种可以由用户以回答问题的形式自行修改的文件,其扩展名为.PST。安装MASTERCAM时系统会自动安装默认的后处理为MPFAN.PST.在应用Mastercam软件的自动编程功能之前,必须先对这个文件进行编辑,才能在执行后处理程序时产生符合某种控制器需要和使用者习惯的NC程序,如果没有全部更正,则可能造成事故.例如,某机床的控制系统采用G54工件坐标系定位,G90绝对坐标编程,要求生成的NC程序前面必须有G54G90设置,如果后处理文件的设置为G55G91,则每次生成的程序中含有G55G91,却不一定有G54G90,如果在加工时没有进行手工改正,则势必造成加工错误.本文介绍了Mastercam后处理文件的内容以及修改和设置的方法,供有关人员参考.也就是说后处理程序可以将一种控制器的NC程序,定义成该控制器所使用的格式.以FANUC系列的后处理系统为例,它可以定义成惯用于FANUC 3M控制器所使用的格式,也可以定义成FANUC 6M控制器所使用的格式,但不能用来定义其它系列的控制器.不同系列的后处理文件,在内容上略有不同,但其格式及主体部分是相似的,一般都包括以下部分: : c* ^; D6 M' y3 d2 {' [0 @, S
$ a8 {( e% W0 G H* T0 k
1) Annotation(注释).对后处理文件及其设定方法作一般性介绍.此部分内容一般都不用更改.
* ?# w7 @( ?, m( A3 l1 U以下是截取的部分注释注释前都带#号,系统在执行代码处理时是不会读取前面带#号的语句的.) & _1 C# z& i: L& [
# Post Name : MPFAN
5 g1 q9 \8 x j" t# Product : MILL ' ^- z* [5 U1 I* j: J$ @
# Machine Name : GENERIC FANUC
- ~7 Q6 f* _! e( S3 D# Control Name : GENERIC FANUC
G# X5 }5 U4 u& K9 I/ a# Description : GENERIC FANUC MILL POST 9 E5 _; D; h/ E; c( Q2 l
# Associated Post : NONE
: |% S' H3 n! z9 m$ \ A# Mill/Turn : NO
" w; E! I( _1 w8 z! n) d# J# 4-axis/Axis subs. : YES
5 T4 ]/ v7 u6 t' R6 V# 5-axis : NO
5 Y: \( m- f# Z0 j3 e/ H" Q# Subprograms : YES
. v8 T) u$ a, d+ C6 o& V# Executable : MP v9.0 0 \ L2 ^6 { i
# & {' Q4 a7 I$ V
# WARNING: THIS POST IS GENERIC AND IS INTENDED FOR MODIFICATION TO
. `! C/ h, @4 [- {2 I0 B+ c- T5 C: P# THE MACHINE TOOL REQUIREMENTS AND PERSONAL PREFERENCE.
* D M7 _! s8 r7 F5 S# ^4 Y* c O) F7 Y1 q: \, |1 p( L+ d- B
2) Debugging and Factory Set Program Switches (系统程序规划).此部分是MASTERCAM版本的后处理系统规划,每个版本都大同小异,一般不需更改.以下截取的是9.0版的) 8 J# q5 H3 ^% @7 Z( g
m_one : -1 #Define constant
' w! X% [5 q. U0 xzero : 0 #Define constant
- _9 f! s( l/ S8 L3 Wone : 1 #Define constant
( @, x L- w; i% p# E' w. rtwo : 2 #Define constant
* T/ k7 Y1 ?0 Y) ~& jthree : 3 #Define constant 6 x4 B5 ]6 v9 K3 F5 @3 u
four : 4 #Define constant
`/ w' @ P5 F% V9 w6 jfive : 5 #Define constant " n x9 z1 m ~3 {' ?+ b- P
c9k : 999 #Define constant * h: \. f0 W) r3 ?0 k6 T8 y
/ ~) T& e6 \( [9 _2 V( e
fastmode : yes #Enable Quick Post Processing, (set to no for debUG)
& e- R# Z8 S+ m8 Tbug1 : 2 #0=No display, 1=Generic list box, 2=Editor
' o8 }. A( @# kbug2 : 40 #Append postline labels, non-zero is column position?
, l: Y ?) V0 T9 mbug3 : 0 #Append whatline no. to each NC line? 5 \& b; I' w4 L# ]4 p7 O0 t
bug4 : 1 #Append NCI line no. to each NC line?
& N3 c, F+ J" E/ r4 u5 Z t8 P' Xwhatno : yes #Do not perform whatline branches? (leave as yes) " _- ?; R; H4 p0 {1 D
- z/ u9 ]" ?* ] \
get_1004 : 1 #Find gcode 1004 with getnextop? 0 ?4 A6 A: k( p( m4 Y+ P/ T- u
rpd_typ_v7 : 0 #Use Version 7 style contour flags/processing?
, Z P8 h W! C% G7 u! H' Astrtool_v7 : 2 #Use Version 7+ toolname?
Z: }. v' @7 ^% Ltlchng_aft : 2 #Delay call to toolchange until move line 9 ?7 U/ ?: F7 C0 P. t
cant_tlchng : 1 #Ignore cantext entry on move with tlchng_aft
0 b' b9 S2 W$ D9 Z6 q0 c4 Pnewglobal : 1 #Error checking for global variables
2 e# W# [5 ]8 V& d4 O1 B( s% b- Z, w& i: Jgetnextop : 0 #Build the next variable table
3 ~* `" k; U9 u* A1 {
6 s) M% t9 a$ j+ ?2 M1 S& S& g8 M3) General Output Settings(常规后处理设定).此部分可视情况更改,以适合机台或个人使用.以下截取的是9.0版的一些常规设定.冒号前面的是变量,冒号后面的是设定值,#号后面是注解(一般是说明0代表什么,1代表什么,2代表什么,yes或no应该不用翻译了吧?!)英文后面的中文注解是我加进去的,翻译的不是很详细,但相信大家能看懂.没有翻译的就表示我根本不会或此设定不常用....嘿嘿... ( [' O# R3 b2 t0 F
% A; g7 Q B* ~) Z% N$ V% T4 I- u" I. u% @" L C
sub_level : 1 #Enable automatic subprogram support(启用自动支持子程式)
* D6 D: j& U5 D, w" ^: Mbreakarcs : 2 #Break arcs, 0 = no, 1 = quadrants, 2 = 180deg. max arcs(打断圆弧方式)
7 }+ T5 K2 B, x/ D1 J G$ w3 Oarcoutput : 1 #0 = IJK, 1 = R no sign, 2 = R signed neg. over 180(转出圆弧方式) ) m. \4 [ W# E0 Q$ q
arctype : 2 #Arc center 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc. & _7 t3 ~1 Q" h/ `0 h
do_full_arc : 0 #Allow full circle output? 0=no, 1=no (是否转成整圆方式)
b: ]* J$ g: }4 lhelix_arc : 0 #Support helix arc output, 0=no, 1=all planes,2=XY plane only(是否转成螺旋弧)
" E: h- Z/ _: b T& s" Narccheck : 1 #Check for small arcs, convert to linear(是否检测小圆弧并将其转成线) $ X R) e' h1 ^$ \7 c* @/ [: d7 |6 F
atol : .01 #Angularity tolerance for arccheck = 2(圆弧角度公差)
% V ]: x3 y' k6 C# n& v$ Iltol : .002 #Length tolerance for arccheck = 1(圆弧长度公差)
+ M% P& e# x8 F' E. b* kvtol : .1 #System tolerance(系统公差) ; R! S$ M6 ]. H; F5 s
maxfeedpm : 500 #Limit for feed in inch/min(最大进给-英制)
+ w& ~' a; E% l% Z- S+ m( Cltol_m : .05 #Length tolerance for arccheck = 1, metric(圆弧长度公差-公制)
3 `# |* V2 l/ {3 ]vtol_m : .0025 #System tolerance, metric(系统公差-公制)
1 D4 H' Z: t0 n. Qmaxfeedpm_m : 10000 #Limit for feed in mm/min(最大进给-公制) ( Y7 m( n/ E' P4 o1 ?5 D
force_wcs : no #Force WCS output at every toolchange?(换刀时是否转出WCS坐标)
. Y' B/ o7 e) w5 _0 ~) g4 Y7 o' [: Ospaces : 0 #Number of spaces to add between fields(两行之间是否加入空格) 2 `1 x7 c; w3 N. y: n6 ~) L, [2 N; N
omitseq : yes #Omit sequence numbers?(是否省略序列号) $ M% c! J7 f! g0 [
seqmax : 9999 #Max. sequence number(最大序列号) & P9 R* O. D8 e
stagetool : 0 #0 = Do not pre-stage tools, 1 = Stage tools(是否沿用刀具) 8 d3 B' `! G1 m* \5 L6 H
use_gear : 0 #Output gear selection code, 0=no, 1=no (是否转成齿轮代码) 4 P0 F: [3 }' ?
max_speed : 10000 #Maximum spindle speed(最大转速) ; {: j& p" c0 B/ A7 G2 K
min_speed : 50 #Minimum spindle speed(最小转速) % |- {, N7 H6 b' p/ |6 c
nobrk : no #Omit breakup of x, y & z rapid moves , q+ I+ z y7 X, {
progname : 0 #Use uppercase for program name (sprogname)(程式名称是否使用大写)
5 S& h8 ~" v9 _ G6 W6 K+ E/ [+ F" J O; a) l* O
4) 中间还有一些例如:Common User-defined(指令设定),Format statements(格式报告),definitions for NC output(NC代码限定),Error messages(出错信息),Toolchange / NC output Variable Formats(刀具变量)等基本上都是系统固定格式,不需要更改.在此就不再详述.当然,我也不建议你更改这些项目,如果你改错的话,系统很可能不执行或机台报警......
# [2 _$ }) E3 q* _: C& e# Y) _" l* ^7 c& ~2 s+ S, A n
5) Start of File and Toolchange Setup(文本内容和换刀设定).此部分内容很重要,很多使用者都从这里着手把程式改成自己需要的格式.以下截取的是9.0版的部分内容,其中有些是我根据自己需要更改的,中文是我加的注解.引号内是可以更改的内容. r' V+ v; H" u4 M& L% \ s
( u$ V$ @ c( s9 _) Q"%", e(程式开头的百分号) 0 Z" N* |( `3 ~# V3 h
*progno, e(程式号码)
: C* c: L0 U, Z6 B) s, `7 [comment(注解,可有可无,如不需要则删除此句)
, i4 n4 K* A, r5 g8 S9 p( \"(PROGRAM NAME - ", sprogname, ")", e(程式名称,可有可无) 0 M _4 c& N1 y' U* e
"(", *tnote, *toffnote, *tlngnote, *tldia, ")", e(刀具直径及补正参数显示,如不需要则把此整句删除)
) R; V$ b: `" @; f8 C- C% _) q, n"(DATE=DD-MM-YY - ", date, " TIME=HH:MM - ", time, ")", e(程式日期显示,可有可无)
4 r |% _8 _8 P4 M o x) j( b! `pbld, n, *"/M99", e (我自己加的一句,如不需要则整句删除,而不是只删除引号内的内容) - }- B# N" c9 Q. D: c5 o9 f; i8 H
pbld, n, *"G90", "G92","X0.Y0.Z10.", e(定义加工原点,也可以改为G54坐标) 9 ` u) Y, b6 @: g, R, o: a/ R
sav_absinc = absinc (绝对坐标系)
E) a! x) m7 \8 L* |* S......
5 P& ~8 [, z: [7 N1 W8 J" g' _ @2 R5 d
(中间省略的部分是系统根据刀路自动转出的程式,一般不必改) 0 ?) _2 Y a- T( X9 \
......
; q# B2 ]6 R- A, M2 f4 [: v8 z. T(以下几句是出现在程式尾,可以根据需要添加或删除)
4 _# y- v' {, @2 I) l+ I! |1 S, z& o) L* L
n, "Z10.", e (加工完成后提刀至安全高度) % f' U k/ |% ?/ ~- E4 b" Q6 u- D
n, "X0.Y0.", e (归零)
% {7 m6 l# B# ~9 r) Gn, "G91", e (转用相对坐标)
* ?! b0 C2 g2 l+ \& l, @" [n, "M99", e (回到主程式) 1 B3 j1 K! T2 S3 E1 B% D
mergesub(此四句为程式结尾固定语句,不必理它)
k; x3 \" O3 P8 k$ U( [6 g% iclearsub
9 G# n( |' l1 F( f: N1 J% Bmergeaux
7 ?3 z+ o; i* m8 X% }$ v+ Z, `clearaux $ ~8 q) m0 Q4 J5 x9 K
"%", e(程式尾) |
评分
-
查看全部评分
|