CNC机械工程师详解Mastercam后置处理
0 ^! Q* V2 U0 {! S, K' r赵存璞( 工程师)+ R* F' T* {- R8 b( F2 O
Mastercam系统是全球装机量最多的造型加工软件,应用十分广泛,不过
% x3 u* R( [* s! o5 g! @1 `, ^很多人对MASTERCAM的后处理部分还是很不了解,下面让我给大家讲一下: `. z; ], g* r6 E. f
MASTERCAM后处理POST文件内的主要内容,从而方便更多的MASTERCAM
0 C; k; o* z5 ]4 b3 x爱好者了解后处理,如果还有什么不清楚的请登陆网址:
1 F/ M! U% C. g! `2 jhttp://user.qzone.qq.com/727825947
- A4 c& k! {3 b( ~6 |电子邮箱:mailto:zhao-1381045@163.com QQ727825947联系谢谢!!
+ {2 J% [6 d6 Q1 K S! {& o0 |Mastercam系统后置处理文件的扩展名为PST,称为PST文件,它定义了切削6 D5 a% C; N% L
加工参数、NC程序格式、辅助工艺指令,设置了接口功能参数等,其结构由八2 q6 E7 U6 w; ~2 L. D
个部分组成:
9 C) v; v' o6 r2 G% n; z1. 注解! ~) q3 V P+ H5 k5 b
程序每一列前有“#”符号表示该列为不影响程序执行的文字注解。如:& H# \7 l. ]( @8 K7 d7 a& Y- T
#mi2-Absolute,orIncrementalpositioning
, a, p* V( G, u: t, n- [0 ?0=absolute3 D* h n Y& ^: W& U) r: D" Z
1=incremental3 K6 A; N+ A1 f# |- i+ O
表示mi2定义编程时数值给定方式,若mi=0为绝对值编程,mi=1为增量值编
3 F4 J. C* b0 k B, T程。4 _* [9 }, d V: v0 w
在这一部分里,定义了数控系统编程的所有准备功能G代码格式和辅助功能M
: k* @8 u5 s Q6 h1 E4 G3 w& {代码格式。* ~. O: I8 `4 v
2. 程序纠错
/ x7 G/ |! N8 l$ H5 E8 R6 N% j# Y; g程序中可以插入文字提示来帮助纠错,并显示在屏幕上。如:5 [: R0 u" q4 a; S
#Errormessages(错误信息)
! M+ y+ J3 G) zpsuberror#Arcoutputnotallowed
2 ]4 f- H2 S3 s, R- Y r* E"ERROR-WRONGAXISUSEDINAXISSUBSTITUTION",e
8 t9 E Z) d8 J3 h# H如果展开图形卷成旋转轴时,轴替换出错,则在程序中会出现上面引号中的错9 o9 x1 {* L j8 j3 k- |0 G+ C
误提示。
7 k# \: k. T8 l# v$ R z: y3. 定义变量的数据类型、使用格式和常量赋值
. Z3 I% H" R7 t& [. e+ ~! `7 f; _ b如规定G代码和M代码是不带小数点的两位整数,多轴加工中心的旋转轴的3 X0 {4 I2 H% N* u. l. b
地址代码是A、B和C,圆弧长度允许误差为0.002,系统允许误差为0.00005,
9 Q) }6 s" [7 z进给速度最大值为10m/min等。
: {/ v- c- E3 I8 K& W% M/ j( i4. 定义问题
6 J, k. W) o3 C$ l可以根据机床加工需要,插入一个问题给后置处理程序执行。
. ^9 |3 T: a8 Y: `. B4 j( a如定义NC程序的目录,定义启动和退出后置处理程序时的C-Hook程序名。8 t: Q& e* U. Y: U9 Y
5. 字符串列表8 O0 ~+ `, X: A& V4 ]* Q
字符串起始字母为s,可以依照数值选取字符串,字符串可以由两个或更多的字
6 i$ A6 B; u: a3 _ k符来组成。, v5 Z& h; R' H% y9 t% a3 S6 _8 q0 a
字符串sg17,表示指定XY加工平面,NC程序中出现的是G17,scc1表示刀具
6 H/ M# Z z, {6 P$ q半径左补偿,NC程序中出现的是G41,字符串sccomp代表刀具半径补偿建立
, q3 K) g |- {1 X或取消。) b- a# w- w$ }' a7 Y5 r) E/ N
6. 自定义单节
8 g" W. O0 ]) c, D) u) B- X可以让使用者将一个或多个NC码作有组织的排列。
# ?" `+ E5 o) [7 r/ [6 E: C" r自定义单可以是公式、变量、特殊字符串等:+ t+ s2 w( j- C
pwcs#G54+coordinatesettingattoolchange
' D; _0 Q, K/ S/ a* u- P* I5 v U4 [if mil>1,pwcs_g54
6 S& I$ ] S/ P表示用pwcs单节指代#G54+在换刀时坐标设定值,mil定义为工件坐标系 d) u7 v3 G; ~
(G54~G59)
* ~1 }* X6 A% H7. 预先定义的单节 g7 |- E, _. d1 y. O7 [! H) j
使用者可按照数控程序规定的格式将一个或多个NC代码作有组织的排列,编
0 h2 X: Y8 p3 h排成一条程序段。+ W# y* D" y7 b9 ~0 U; b
8. 系统问答
# T# q4 ]; d. c3 P6 q1 h" e后置处理软件提出了五组问题,供使用者回答,可按照注解文字、赋值变量、8 b! w4 C4 x4 w
字符串等内容,根据使用的机床、数控系统进行回答。( t0 i \/ w9 n& _) f3 T# l
设计后置处理文件,一般是按照NC程序的结构模块来进行。根据NC程序的- D& }. T5 M$ ~6 a' a
功能,后置处理文件分成六个模块如下:$ h9 _2 c& o& W: z4 h; F7 X
1. 文件头9 f! r6 T; F8 f$ ^
文件头部分设定程序名称和编号,此外,SINUMERIK810D系统还必须指定NC& z- [- l( g9 |# S6 l
程序存放路径,并按照以下格式输出:
" M( B) V7 k# q3 x“%_N_(程序名及编号)_(路径)”。
, H0 ]% t `: s6 G1 J. d7 INC程序可存放在主程序、子程序和工作程序目录下,扩展名分别为:MPF、SPF、
: y; Q$ [9 @8 }* ^9 e2 BWPD,一般放在工作程序目录下。因此经修改的Pst文件格式为:
) z' W( U$ x$ q$ ^5 t$ h) z1 uPheader#Startoffile
7 }% ]7 Q6 O+ j# Y+ f4 Z"%_N_",progname,"_WPD" (程序名、存放目录)2 F% ^, \6 U; }4 z
2. 程序起始% O) |+ L4 z3 d
在程序开始,要完成安全设定、刀具交换、工件坐标系的设定、刀具长度补偿 、
- `6 I+ D' h. l& V0 b" t6 S$ z主轴转速控制、冷却液控制等,并可显示编程者、编程日期、时间等注解。
J2 R8 @! `9 L8 B修改后的有刀具号Pst文件开头格式如下:
8 a3 h p% s h, U' N+ ?#Startoffilefornon-zerotoolnumber
) I4 P3 m: A0 `! g* Q* |......" u, ?8 N6 F1 n* |+ L& ]1 U: Q
pspindle(主轴转速计算)( v `% v3 l& w& o L
pcom_movbtl(移动设备)
y- y; L- `: r% Y4 P0 R% p; xptoolcomment(刀具参数注解)
$ {1 u& i( v. P- `7 l+ z" W, b; a......
* N+ b: S% d3 b1 V upbld,n,*sgcode,*sgplane,"G40","G80",*sgabsinc4 K" m/ f+ e' d- o" {# h* i
(快进、XY加工平面、取消刀补、取消固定循环、绝对方式编程)
0 \+ h3 E* W6 ]/ G$ k; h+ `if mil<=one,pg92_rtrnz,pg92_rtrn,pg92_g92(返回参考点)- \. h$ ?1 f/ b$ Q& G
......, j4 Y$ ~3 L4 d: x7 M: B
pbld,n,*sgcode,*sgabsinc,pwcs,pfxout,pfyout,pfcout,*speed,
* |4 {8 r( c8 }*spindle,pgear,pcan1
+ ?& k" q+ h6 E* {" d(快进至某位置、坐标系编置、主轴转速等)
- ]: ]% ]! b1 b0 A( U$ _pbld,n,pfzout,*tlngno,scoolant,[if stagetool=one,*next_tool]
, h, d: A# v& p8 l3 L4 M: }0 h(安全高度、刀长补偿、开冷却液)
% U( G' h) b1 O: z% g' @+ u. A; ppcom_movea(加工过程)* ~9 S, j9 q- X0 t- g" N7 c8 l1 [: L
3. 刀具交换
% C! ]" `- z$ E p1 E. ]刀具交换执行前,须完成返回参考点、主轴停止动作,然后换刀,接着完成刀具: \' d! M' ?: \
长度补偿、安全设定、主轴转速控制。
& `, `3 A/ {6 Q5 tPst文件中用自定义单节ptlchg指代换刀过程,编辑修改后的程序如下:( H" Y }# b0 m( B4 @; F i
Ptlchg#Toolchange
( c, k1 c5 f* U4 x......
. x( z! J* {! L! m& T: t! [5 Uptoolcomment(新刀参数注解)7 B1 j6 l1 V8 b
comment (插入注解)6 q7 W8 ] T8 w
if stagetool<>two,pbld,n,*t,e(判断、选刀)7 t5 X( x/ A4 T8 e# o
n,"M6" (换刀)
9 q0 D; k, A3 t) h8 ^: C% Qpindex(输出地址)4 w+ p& C! b. N+ F6 |2 M- _
pbld,n,*sgcode,*sgabsinc,pwcs,pfxout,pfyout,pfcout,*speed,$ w: y$ h9 d1 z3 l8 z4 a
*spindle,pgear,pcan1; a; ^& K1 V% r6 L$ d
(快进至某位置、坐标系偏置、主轴转速等)
# d' y9 |4 l- e4 n9 l9 `4 A6 |pbld,n,pfzout,*tlngno,"M7",[ifstagetool=one,*next_tool]1 S) K4 e. W1 x S( P. C, R( D1 F7 o* W
(安全高度、刀长补偿号、开冷却液); X' y* c8 S( u% s) ~
pcom_movea(加工过程)6 j% w3 r) V( }5 p+ Z0 _
4. 加工过程
: [) v$ I/ n! w( a这一过程是快速移动、直线插补、圆弧插补、刀具半径补偿等基本加工动作。, R2 e# h6 j- e/ D" v
对于几乎所有系统,这些加工动作的程序指令基本相同。只是注意SINUMERIK) ~( [& y' N0 E
810D系统的刀具长度补偿值由字母D后加两位数字调用,不需要G43/G44指
/ b' N3 a! g# O0 }' Y' m令;而半径补偿值则由G41/G42调用,不需要再接地址代码。用G40取消刀具
6 D* Z F% S+ T长度和刀具半径补偿。
4 l: e; s3 e9 I- U- y' n3 }5. 切削循环
6 ]. k* a! T% L9 g* `Mastercam软件提供了6种内定的孔加工固定循环方式:一般钻削
8 P, p: Y( }3 O8 D: E0 ~(Drill/Cbore)、深孔啄钻(PeckDrill)、断屑钻(ChipBreak)、右攻丝(Tap)、精镗
0 e/ E% s; h0 l- ?孔(Bore#1)、粗镗孔(Bore#2),通过杂项选项(Misc#1/Misc#2)可设定左攻丝 、- J, S% j$ Z1 T% N k
背镗孔、盲孔镗孔、盲孔铰孔等循环,并采用G73~G89代码来表示。
6 F+ g4 [2 Y% W' r7 v i) f#POST名称:wgkG54; g% s) a% E% Y
#类型:MILL f5 `; j( V u+ w
#机床名称:GENERICFANUC$ o; h% O* [& W* @* m
#控制器名称:GENERICFANUC' I# G6 S! Q; t+ w2 g- X
#描述:GENERICFANUC3AXISMILLPOST5 O: p$ E" _; b3 O8 n/ F: R! b- e
#AssociatedPost:NONE5 I J4 y. t, @- F" m% x: K
#车/铣复合:NO+ G2 C7 V6 \ o7 e/ f0 w
#4-axis/Axissubs.:NO# h9 ]+ C$ W% B0 e. K. `: s
#五轴:NO8 J" ?% H; Y& ?+ h0 G
#子程序支持:NO0 B; }# _! R" R* `1 m. j
#自动换刀:NO9 W& h. v3 O6 a
如对于深孔钻削固定循环,Mastercam采用的格式为:G83X_Y_Z_R_Q_F;而. U* L5 w0 _; p
SINUMERIK810D系统用CYCLE83指代深孔钻削循环,其NC程序要求给出循
, \3 ~- D3 F% d7 ]环加工所有参数,输出格式为:
2 I/ P8 t- p5 ]4 k; d7 j2 P7 TCYCLE83(RTP,RFP,SDIS,DP,DPR,FDEP,FDPR,DAM,DTB,DTS,FRF,VARI)
7 \7 g$ c$ D) w9 `! G7 B在pst文件中需按SINUMERIK810D系统格式进行定义、修改和编写。+ c# j$ E8 z$ f9 c$ z
6. 程序结尾" R; `) _; I" ~/ y1 U
程序结尾一般情况下是取消刀补、关冷却液、主轴停止、执行回参考点,程序
- M1 f4 R: n1 U6 U! O停止等动作。下面是修改后的pst程序结尾:
0 R( K d x) j" @Ptoolend_t#Endoftoolpath,toolchange: Q6 S) z( R9 K3 P
......
( X- S6 s2 P* K- \pbld,n,sccomp,"M5",*scoolant,e(取消刀补、主轴停止、关冷却液)
; p' R; t& K: Y' Z/ Ppbld,n,*sg74,"Z1=0.X1=0.Y1=0.",e(返回参考点)
- p3 h( l3 ~$ N0 @: Yif mi2=one,pbld,n,*sg74,"X1=0.","Y1=0.",protretinc,e Q: R6 _0 y S3 y
else,protretabs(程序结束)
4 {, d5 i" ~: d, T5 {" @# q#工作坐标系:G546 G9 I2 p+ T) v m' w4 ~6 k
#Executable:MP8.008 h1 t) ]. N5 C1 w2 f
#这个POST支持FANUC控制器普通三轴铣床的的G代码输出,
6 e8 e7 y) @5 h2 L! P( m5 s#不支持自动换刀,有最大圆弧报警+ R0 E/ N( X0 Q3 H1 s+ F/ [" [
#它来源于MP-EZ.PST7 ^. w/ a, b+ L& `4 { y
#是针对MastercamMillV8的特征而设计的
2 T: L' t c* d- L' e3 P#! b" o) `2 f$ s0 x, M* C5 I: a
#8 }# ^8 a9 q/ q- W9 q1 z
#欢迎各位试用此后处理程序,提供意见反馈,2 j* D+ d' U* v. V: G; u. b& q
#网址:http://user.qzone.qq.com/727825947 赵存璞
6 P# a: P- N& x/ A& ?9 F5 h#电话:13810450657" w% M; | k" i3 |) p5 j7 K
#E-MAIL:zhao-1381045k@163.com
. O9 d( ~; W+ z: e( v- V. y#QQ:727825947. Q8 \, z. P% G$ a" E: ^, f% h
#--------------------------------------------------------------------------#修改日志:6 |$ ]/ x" Z$ M5 z7 A, t
#--------------------------------------------------------------------------#ProgrammersNote:3 |7 W! L6 }. _$ p* U
#CNC08/01/00-Initialpostsetup,jce! V3 h+ ^% g5 K* o- e1 o
#2008-8-8- 去掉自动换刀,赵存璞
* z/ f+ M o7 a#2008-10-8- 增加中文注释,赵存璞( v% r! g% t$ d
#2008-10-8- 增加最大圆弧警告,赵存璞
, F% E8 D6 c2 z6 X, _8 j( L#2008-11-8- 修改坐标系为G54,赵存璞2 e* F) k* g }: W. I! O
#--------------------------------------------------------------------------#特征:
5 ]! d' ^4 A0 X#--------------------------------------------------------------------------#下列Misc.(杂项) 必须使用整数:, j) d$ \( R, A1 h+ ~) {
#8 w- x$ Z6 H; L, ~" R# u7 R
#mi2- 绝对或增量坐标attoplevel
: c' a8 A( g- ~) f, b0 P#0=绝对/ Q( e1 i7 F6 w6 B
#1=增量5 p! y7 W" Q8 t
#
) t4 X; Q( j7 J5 q. M3 X: Y#mi3- 选择G28或G30来执行参考点回归.
9 p7 x: s# ?( p5 I#0=G28,1=G30: i! T. F, R! m% H- v5 Y
#. L1 {8 h$ }- I3 c
#Cannedtext:
9 N: N3 ?% i* K) q2 }#在轮廓点里插入"cantext".以允许/禁止下列Mastercam里许可的功能,
; K: w( s) y! |4 K: W/ k! k#EnteringcantextonacontourpointfromwithinMastercamallowsthe
0 W2 R- c; q, ^/ E# `* k0 O+ x#followingfunctionstoenable/disable.2 d- M2 ^7 r; |# L
#Cantext值:
/ T$ w. l# t+ d7 V9 ?#1=Stop=输出"M00" 停止码
4 h- D' o. M- |5 H+ H; p#2=Ostop=输出"M01" 选择停止码
: v K9 ?" y3 D& s6 J#3=Bldon=在NC单节打开单节删除码(\)
C6 u' l+ S. f$ Y. e#4=bLdoff=在NC单节关闭单节删除码(\)/ S y! D2 q8 E' a6 ^: o0 I, ]9 s
#
5 N$ I4 T# d$ ?& q- I8 m$ _/ ]; j#钻孔:
7 s% c1 |# W) [+ ]#在这个POST里支持所有的钻孔方法. F& P2 l3 G- }3 U, [# X( H
#
( |, k! X/ K# h5 {, h#附加注意事项:+ \( F2 }! y: i0 B5 h+ s2 D
#1)G54callsaregeneratedwheretheworkoffsetentryof0=G54,
! G! u9 F9 ]0 H% ]7 d#1=G55,etc.* z0 l" w+ U+ }2 p; i, D- c( b
#2)由NCI变量"met_tool"决定是否使用米制; _/ S$ n2 y3 r2 q. M1 T8 o8 Z
#' _: P6 c) Q+ ~6 v4 z
#3)以增量方式从换刀起始位置计算运动量.
2 z3 T9 q% z |) p#起始位置通常定义为所有换刀时刀具所处的最后位置
) a: b" ^" V4 h9 s, ^, R d6 ]% ?3 u#Incrementalmodecalculatesmotionfromhomepositionattoolchanges.
5 x* K% [9 r; \# G; i$ o#Thehomepositionis usedtodefinethelast positionofthetool
) {0 D u& F# U, j" A#foralltoolchanges." X2 X7 c- I% s( ~
#4)变量'absinc' 现已被预先定义, 设定mi2(杂项整数)以定义
! b5 \5 e( u$ e4 _4 T, j#绝对/增量程序输出.
! ~0 w0 n: M7 q- r6 `/ M9 g#
7 I; w6 Y) m# c% @( c- p+ |8 N- a, {$ a#--------------------------------------------------------------------------#DebuggingandFactorySetProgramtches调试和加工设置程序切换
- u+ T$ O$ J3 m: k1 Z3 v4 T#--------------------------------------------------------------------------m_one:-1#定义常数
) ` o! C( V9 p" bzero:0#定义常数
4 f1 j" E. v" E" b& |1 none:1#定义常数; O8 {3 n, O5 X- M& ?! Z; |
two:2#定义常数8 X9 U8 ~0 @6 E! G. K: y
three:3#定义常数! z8 E0 b+ ]' T+ P
four:4#定义常数
1 O3 g+ O! Z) @6 q1 J# Yfive:5#定义常数5 |7 c- p. L1 |# ]: \7 E/ F, N! r
c9k:9999#定义常数
( k5 P) d0 u5 l9 z+ y' r/ Jfastmode:1#Posting速度最佳化
, z8 _/ a. i, i: qbUG1:2#0=不显示,1=普通列表框,2=编辑器
! l1 |( g4 [4 s, D& _( T! U% fbug2:-30#Appendpostlinelabels, non-zerois columnposition?0 ]& V. s0 P. F3 f' t& X$ [
bug3:0#Appendwhatlineno.toeachNCline?) u1 s) V6 f6 t$ {3 C
bug4:1#AppendNCIline no.toeachNCline?& T& d( K5 m6 D7 x/ b! z
whatno:yes#不执行whatlinebranches(分枝)?(leaveasyes)
. L; H8 M M* y+ |- N0 a# kget_1004:1#Findgcode1004withgetnextop?
& I/ |9 L9 P' d) V4 @rpd_typ_v7:0#UseVersion7stylecontourflags/processing?. w6 u) L& _( c5 l
strtool_v7:2#UseVersion7+toolname?. g3 y7 a/ T' r, A( C6 H% E# n
tlchng_aft:2#Delaycalltotoolchangeuntilmoveline
* P5 S. d6 c- l; K- q$ O$ U( bcant_tlchng:1#忽视cantext入口onmovewithtlchng_aft
: O1 b. {. O, Xnewglobal:1#全局变量错误检测" S0 e% v2 Y! I* z+ K" d
getnextop:0#建立下一个变量表) v. f+ Y3 \5 q& v* H
此书尽量做到,简洁、易懂、实用。不用专业名词,不用英语基础。使大家都能理$ p" K6 s3 f3 g. h5 r
解应用,做到学有所用,不要像很多资料一样只是给高级技术人员的。+ G4 L9 d- R6 D
好了先讲到这里,希望对大家有帮助,特此奉上此书!!!1 l' E2 w- D# R
水平有限希望CNC技术爱好者们多多交流相互帮助!提高自己的能力!为企业与社: E B3 I# V/ T$ e" b- J" M( ~7 b
会服务!!!
" T( u9 V/ B8 s& Zhttp://user.qzone.qq.com/727825947% H- r5 {# ]) X2 ]$ y5 C
电子邮箱:mailto:zhao-1381045@163.com QQ727825947 赵存璞
3 T5 d- J2 y) F! D4 N
M$ K% m. I {9 y3 y |