CNC机械工程师详解Mastercam后置处理 E* I5 b& J! \2 v
赵存璞( 工程师)6 W- F* ~ o/ W! C3 }8 V. @
Mastercam系统是全球装机量最多的造型加工软件,应用十分广泛,不过9 H; |# e8 m5 X$ U: r1 Q. I
很多人对MASTERCAM的后处理部分还是很不了解,下面让我给大家讲一下
" Y& ]1 T f. Z' x4 t2 y/ G7 IMASTERCAM后处理POST文件内的主要内容,从而方便更多的MASTERCAM3 G. ]! I3 S! o+ j& Y( p
爱好者了解后处理,如果还有什么不清楚的请登陆网址:1 b+ P" b) @5 g; k! F8 r, p) O, l
http://user.qzone.qq.com/727825947" e) h+ k7 \8 c3 I" j
电子邮箱:mailto:zhao-1381045@163.com QQ727825947联系谢谢!!
2 P3 a: ~# X6 ~& @+ @2 ?- e2 mMastercam系统后置处理文件的扩展名为PST,称为PST文件,它定义了切削" C, V2 X c6 D% W" O: ^0 C5 l5 g
加工参数、NC程序格式、辅助工艺指令,设置了接口功能参数等,其结构由八
( I4 x7 m4 A7 p" f& W* Y5 s# R n个部分组成:
' f$ U6 S" W$ o7 F m1. 注解
6 e* q2 Y7 Q# \程序每一列前有“#”符号表示该列为不影响程序执行的文字注解。如:
1 N* M$ s; l8 r0 O/ Q; w#mi2-Absolute,orIncrementalpositioning* N2 q1 M) k( M* c- k. _# o
0=absolute
6 b0 r% k# y# f8 y+ u5 F; X1 _1=incremental# \' k- u$ P' M2 p. w# j. B
表示mi2定义编程时数值给定方式,若mi=0为绝对值编程,mi=1为增量值编; K4 \; M( j: ]4 u
程。
5 D# f+ U4 @1 c6 S在这一部分里,定义了数控系统编程的所有准备功能G代码格式和辅助功能M
; D& K. [ ?& n+ g7 P代码格式。
1 g0 y1 J/ O0 L2. 程序纠错
7 ]* R+ C/ C8 R$ o$ p4 l* l程序中可以插入文字提示来帮助纠错,并显示在屏幕上。如:
+ j. ^6 ?7 J: y! p#Errormessages(错误信息)0 Z, p% X# d$ [! l( a0 R+ p% S
psuberror#Arcoutputnotallowed! h& N" Y2 L* X. g
"ERROR-WRONGAXISUSEDINAXISSUBSTITUTION",e1 \9 |1 O, _3 ^0 ^0 U |+ G
如果展开图形卷成旋转轴时,轴替换出错,则在程序中会出现上面引号中的错5 u3 |9 @! t7 v$ u
误提示。! V" }6 v! d# W) _8 e7 P% V
3. 定义变量的数据类型、使用格式和常量赋值1 k: I0 y, a* ~2 }; h ?
如规定G代码和M代码是不带小数点的两位整数,多轴加工中心的旋转轴的
' A2 c" P# W! U" e: n# m地址代码是A、B和C,圆弧长度允许误差为0.002,系统允许误差为0.00005,8 o6 N) J; V( Y9 D& F9 h& E# `! J
进给速度最大值为10m/min等。
. [# v9 G( R& ?# O3 k4 q. z4. 定义问题0 s4 j9 Q6 m5 t5 f# H
可以根据机床加工需要,插入一个问题给后置处理程序执行。/ }9 ~' F1 ^ n; u6 n! q3 x
如定义NC程序的目录,定义启动和退出后置处理程序时的C-Hook程序名。% v! q' S7 Q: M# q
5. 字符串列表& j8 b! n- x& y8 U
字符串起始字母为s,可以依照数值选取字符串,字符串可以由两个或更多的字2 m% _; N/ i' y: A4 j' ?
符来组成。
) t# o' K* |+ j' G" A9 h4 h字符串sg17,表示指定XY加工平面,NC程序中出现的是G17,scc1表示刀具, X# V& N- ^+ Q1 ^5 P: a7 m, l
半径左补偿,NC程序中出现的是G41,字符串sccomp代表刀具半径补偿建立
7 P, S9 z* D. K7 H& D8 ]4 I或取消。
8 X1 _: K! n3 A9 v5 f. g( t8 D+ ^) b6. 自定义单节0 P$ t/ B5 V% d( r' H; V
可以让使用者将一个或多个NC码作有组织的排列。
& K2 h4 | F/ l# Y( `自定义单可以是公式、变量、特殊字符串等:! G% ?1 D. ^- ?2 t
pwcs#G54+coordinatesettingattoolchange
/ {; e0 J6 V1 r* a% C" X5 eif mil>1,pwcs_g54
3 V/ k% Q* v3 m! N7 M表示用pwcs单节指代#G54+在换刀时坐标设定值,mil定义为工件坐标系, s; h; D3 e' E9 L' w9 }+ d: E9 ^
(G54~G59)
- X9 J% U9 {* j4 ^; q' c+ f7. 预先定义的单节 C' ]! k' n$ U$ ?0 S. ^9 G
使用者可按照数控程序规定的格式将一个或多个NC代码作有组织的排列,编$ y% A7 N$ F" p& B, x7 _( u% R
排成一条程序段。
1 J5 _" J* Q" s; T8. 系统问答
" e: y- }% O2 V3 G6 k1 T, ~# Q$ Q2 Z后置处理软件提出了五组问题,供使用者回答,可按照注解文字、赋值变量、' r# \- p# T$ ?
字符串等内容,根据使用的机床、数控系统进行回答。
0 \1 i! P/ H' T9 b设计后置处理文件,一般是按照NC程序的结构模块来进行。根据NC程序的
6 a, l* T; z/ o( _+ g功能,后置处理文件分成六个模块如下:3 s# U6 \. Z0 Q: ?* T4 L% d
1. 文件头2 ^6 x5 u" H; I; y! D
文件头部分设定程序名称和编号,此外,SINUMERIK810D系统还必须指定NC
" s0 r. H( U/ P* T1 b$ g' n" N程序存放路径,并按照以下格式输出:
7 ]2 r3 M# y# I3 H7 g" [% e+ f“%_N_(程序名及编号)_(路径)”。
2 h6 v7 ]; c) ` V8 ]3 @- SNC程序可存放在主程序、子程序和工作程序目录下,扩展名分别为:MPF、SPF、" m; A; k7 P7 x
WPD,一般放在工作程序目录下。因此经修改的Pst文件格式为:
" t' p0 F# @& g( H3 v8 c) VPheader#Startoffile
0 a$ ~5 v5 q6 P"%_N_",progname,"_WPD" (程序名、存放目录)
6 ]# W% y, o( @; X2. 程序起始
: m/ }- \. b) ~1 m: p0 ^# N2 d+ S6 n在程序开始,要完成安全设定、刀具交换、工件坐标系的设定、刀具长度补偿 、! P1 Y! n& z n) J6 c% M
主轴转速控制、冷却液控制等,并可显示编程者、编程日期、时间等注解。0 ~; s! a) o; g1 X+ E( U
修改后的有刀具号Pst文件开头格式如下:$ p. S! Z& m, U6 W! ]6 H/ C- |" ~
#Startoffilefornon-zerotoolnumber3 E d! U- S# F
......
5 P1 A- |" `0 _" ]( m# _6 \: Vpspindle(主轴转速计算)# o+ ^; g! V9 p8 \3 y8 g# B
pcom_movbtl(移动设备)
, k q- X8 @* q/ P4 n1 vptoolcomment(刀具参数注解)! a0 U2 v: |3 ?+ Y3 e( I/ B% D
......
4 r1 m0 x7 S. E/ `) y* q. v+ mpbld,n,*sgcode,*sgplane,"G40","G80",*sgabsinc
% O) o, I$ ?* M# b(快进、XY加工平面、取消刀补、取消固定循环、绝对方式编程)
" ] s5 b, V0 j7 uif mil<=one,pg92_rtrnz,pg92_rtrn,pg92_g92(返回参考点)0 m% ?: ~+ V0 r! E4 ^3 j* N
......
5 q& G# e0 j( u4 [pbld,n,*sgcode,*sgabsinc,pwcs,pfxout,pfyout,pfcout,*speed,4 v8 F$ A( _' Q+ A: D' W+ m' I: K# @- L
*spindle,pgear,pcan17 O/ M# J# z* w
(快进至某位置、坐标系编置、主轴转速等)9 ?% o! y l: y) s9 w) @, v C
pbld,n,pfzout,*tlngno,scoolant,[if stagetool=one,*next_tool]: t* {7 B' b' ?+ v: |$ {
(安全高度、刀长补偿、开冷却液)! g- K4 u% ~4 x# M" A
pcom_movea(加工过程)3 N: t, h. N4 C
3. 刀具交换" l6 H( l, ^; N. p+ S- ^- h2 G
刀具交换执行前,须完成返回参考点、主轴停止动作,然后换刀,接着完成刀具! K" a9 K5 p3 }8 `
长度补偿、安全设定、主轴转速控制。
( i c& A! R0 O9 h9 F5 p: _Pst文件中用自定义单节ptlchg指代换刀过程,编辑修改后的程序如下:5 \! } I: }5 }) [$ h: ~" ^
Ptlchg#Toolchange
3 L1 r S' O( i% C+ d7 y......
1 I! y' y1 u3 l- _* @ptoolcomment(新刀参数注解)$ W' T; d$ c( h" C& `
comment (插入注解)( X+ k! B& v9 u# p4 P2 S
if stagetool<>two,pbld,n,*t,e(判断、选刀)
) g( o& }) H! q8 h; M* k: G+ Nn,"M6" (换刀)$ A. _+ C) m5 ?! p3 B9 a
pindex(输出地址)
4 p) r1 F3 z. G2 C% ppbld,n,*sgcode,*sgabsinc,pwcs,pfxout,pfyout,pfcout,*speed,3 n) J* ]! A1 I/ k1 B; x
*spindle,pgear,pcan1' d) @- p/ K. Z+ c$ x! N! o- F* e
(快进至某位置、坐标系偏置、主轴转速等): Q2 S+ I$ m- ]" o- a# R# m& s4 h
pbld,n,pfzout,*tlngno,"M7",[ifstagetool=one,*next_tool]
: D* i2 R- y# z. x+ U, @( d+ m(安全高度、刀长补偿号、开冷却液)) W9 T$ ^/ N7 N5 g
pcom_movea(加工过程)
; D) a/ c% d9 x: o/ N/ e5 O5 u4. 加工过程
, K7 i9 H7 ?% n' E9 ]- K这一过程是快速移动、直线插补、圆弧插补、刀具半径补偿等基本加工动作。% _% F4 h. n; B7 F% c9 `
对于几乎所有系统,这些加工动作的程序指令基本相同。只是注意SINUMERIK
* w6 W$ b) s5 @9 t1 g% M8 Z2 n& Z810D系统的刀具长度补偿值由字母D后加两位数字调用,不需要G43/G44指
/ u* [* m P& ]0 w/ C( v+ V令;而半径补偿值则由G41/G42调用,不需要再接地址代码。用G40取消刀具
4 H: Y7 R7 `4 l# A: @! {7 ]3 D长度和刀具半径补偿。
, e" |! D+ X0 Y0 {: o5. 切削循环8 Z" D8 r, g0 ^+ X- S/ g
Mastercam软件提供了6种内定的孔加工固定循环方式:一般钻削0 d) T% D. z: B" N/ [6 n
(Drill/Cbore)、深孔啄钻(PeckDrill)、断屑钻(ChipBreak)、右攻丝(Tap)、精镗+ N) J2 m. F, J; B& s
孔(Bore#1)、粗镗孔(Bore#2),通过杂项选项(Misc#1/Misc#2)可设定左攻丝 、! v/ k# X5 w; |
背镗孔、盲孔镗孔、盲孔铰孔等循环,并采用G73~G89代码来表示。; `% |: f& s, B$ M; ~; z' l m
#POST名称:wgkG54) L: L2 m- R8 x5 y0 i" q4 h6 F
#类型:MILL9 a5 J4 Z7 c) H# b/ u
#机床名称:GENERICFANUC+ x9 h( _& V4 H& ^( _
#控制器名称:GENERICFANUC! U# |: B7 O' K& n" B3 t1 h
#描述:GENERICFANUC3AXISMILLPOST
+ V0 W" e9 b4 c/ w#AssociatedPost:NONE& z! q& I' D+ Y2 U
#车/铣复合:NO
* ~3 z7 m7 ~; L0 y#4-axis/Axissubs.:NO# Y/ T3 ?8 V1 I7 B2 C$ ~% A
#五轴:NO
& v7 d! j7 ]" }0 A+ R#子程序支持:NO/ l( B5 c- K1 B% S+ ?. l$ X
#自动换刀:NO
" G6 M4 [: g0 h/ \: ?- G, u4 e如对于深孔钻削固定循环,Mastercam采用的格式为:G83X_Y_Z_R_Q_F;而
- x0 A0 J7 P6 j. [- x* {0 ]SINUMERIK810D系统用CYCLE83指代深孔钻削循环,其NC程序要求给出循4 o* w6 j2 I+ d, u6 @( U! y
环加工所有参数,输出格式为:
8 p6 c. ?& o4 S; w* {% GCYCLE83(RTP,RFP,SDIS,DP,DPR,FDEP,FDPR,DAM,DTB,DTS,FRF,VARI)1 ^' P9 e2 b) m" A1 w9 U) ^
在pst文件中需按SINUMERIK810D系统格式进行定义、修改和编写。$ O7 _) Q2 D$ X; I. |
6. 程序结尾. [/ N+ ]! T( F* D" O
程序结尾一般情况下是取消刀补、关冷却液、主轴停止、执行回参考点,程序
/ [! N& x( i' Q/ V6 J9 o停止等动作。下面是修改后的pst程序结尾:8 t/ \& k/ e1 n# Q* T8 q
Ptoolend_t#Endoftoolpath,toolchange
* x' f- R6 S2 [ j. s4 _......6 P- G+ O. Z6 @7 F6 _: ?# ]
pbld,n,sccomp,"M5",*scoolant,e(取消刀补、主轴停止、关冷却液)
/ N; r9 I3 t3 f1 {+ {# gpbld,n,*sg74,"Z1=0.X1=0.Y1=0.",e(返回参考点)5 o0 i( V% H! N
if mi2=one,pbld,n,*sg74,"X1=0.","Y1=0.",protretinc,e
2 P( I" i* A, N2 Ielse,protretabs(程序结束)
; A1 m4 k# ?0 O2 O5 g: p5 N#工作坐标系:G54
/ p+ u0 R! ?# F4 j+ a; V#Executable:MP8.00( a' u0 ^( @4 Y1 C" J4 M- P
#这个POST支持FANUC控制器普通三轴铣床的的G代码输出,
8 `5 E4 _ F$ U& V#不支持自动换刀,有最大圆弧报警
; w- \ h/ f' ^8 t#它来源于MP-EZ.PST/ {- m! v1 J1 m; D
#是针对MastercamMillV8的特征而设计的
5 ` m; T2 `+ a3 j, y5 K% r! W7 T#
3 Z" ]* e$ i. O#2 o1 m, v% q) [
#欢迎各位试用此后处理程序,提供意见反馈,
y& c0 N0 w1 e#网址:http://user.qzone.qq.com/727825947 赵存璞
# |8 G* p8 _" d/ R#电话:13810450657; [/ Q2 r% _: O) j% H+ r; j" V
#E-MAIL:zhao-1381045k@163.com* E: ?" m Q% s+ l( ^- ?6 Q9 v# }
#QQ:727825947( L9 X8 ^9 i2 o
#--------------------------------------------------------------------------#修改日志:
# ]* P6 P/ C' e" a7 |7 e" X4 S4 _#--------------------------------------------------------------------------#ProgrammersNote:
( \$ p6 H( k0 L$ H0 O0 S" p#CNC08/01/00-Initialpostsetup,jce6 ?: I% }- M$ ~; ]- Z) D
#2008-8-8- 去掉自动换刀,赵存璞
9 Y& b7 u+ U* g+ V3 B8 q+ [#2008-10-8- 增加中文注释,赵存璞: ]1 x8 O# k$ a
#2008-10-8- 增加最大圆弧警告,赵存璞
: p8 A8 b8 L9 T) V+ O#2008-11-8- 修改坐标系为G54,赵存璞9 N* X3 }5 S- `# B
#--------------------------------------------------------------------------#特征:9 ]! b2 B1 S4 }3 f& F. K$ L# t _& q
#--------------------------------------------------------------------------#下列Misc.(杂项) 必须使用整数:. r, c1 g! f, ?, e
#
5 e" x+ d+ R' d, `#mi2- 绝对或增量坐标attoplevel
, C) q( ]9 \7 }8 s& g: [+ X#0=绝对$ d0 t7 z1 ^4 Z. k0 c
#1=增量, |1 l( E- h( [8 w
#
# v: M# A T/ X7 H#mi3- 选择G28或G30来执行参考点回归.& O# m: Z& u$ s# j% f/ K
#0=G28,1=G30
+ Y8 ~6 g+ k2 x; T' W9 }& R1 J#
6 V' D- K, z* L6 D1 }: O#Cannedtext:# ^9 P; Q1 }; r1 x2 C5 B0 r
#在轮廓点里插入"cantext".以允许/禁止下列Mastercam里许可的功能,
8 J1 s6 S& }$ ]9 a! @# H6 E#EnteringcantextonacontourpointfromwithinMastercamallowsthe; m0 u; L! M/ d
#followingfunctionstoenable/disable.
* d1 b( ~5 ^5 G#Cantext值:
0 U2 k# j6 j ]3 N+ u1 x6 B#1=Stop=输出"M00" 停止码
2 G$ w5 h& K' H. u& ^0 A#2=Ostop=输出"M01" 选择停止码
& w( U; d7 D0 [) Z2 `9 x' i7 e#3=Bldon=在NC单节打开单节删除码(\)
7 H/ @0 U( c7 }# j8 U7 V#4=bLdoff=在NC单节关闭单节删除码(\)! _2 w( e1 r" o
#
3 T5 g6 z0 d) ?/ m9 ~) B# v, H#钻孔:1 C+ M( X+ F1 @! n
#在这个POST里支持所有的钻孔方法.+ I4 O g* d& {+ g/ @' a
#: O8 R5 O2 L3 r% b# b7 v
#附加注意事项:* O' H5 F( y! C9 M, H( `, b7 D1 B( R* R4 i
#1)G54callsaregeneratedwheretheworkoffsetentryof0=G54,4 X# v2 c$ @# m2 O9 M; E; |
#1=G55,etc.% o. \ B6 x7 h I
#2)由NCI变量"met_tool"决定是否使用米制) R; }8 ]0 M* d; V
#9 k, W0 B4 a" d( C* G, \
#3)以增量方式从换刀起始位置计算运动量.
: |( F" ] }- ~3 w9 B% _#起始位置通常定义为所有换刀时刀具所处的最后位置3 _7 N3 B7 w+ J: F, h1 m
#Incrementalmodecalculatesmotionfromhomepositionattoolchanges.
3 @/ Y" M. p# x8 Z" P) f. g#Thehomepositionis usedtodefinethelast positionofthetool
6 h9 U5 c. w! g g#foralltoolchanges.1 x& N" L# C; A4 z: J
#4)变量'absinc' 现已被预先定义, 设定mi2(杂项整数)以定义
~# \" h! d! r) y. K7 O- X#绝对/增量程序输出.
4 r/ T- D7 K: c9 f#
: R# X0 X# v* {' D9 r( A8 s#--------------------------------------------------------------------------#DebuggingandFactorySetProgramtches调试和加工设置程序切换. e5 V' A" V- M
#--------------------------------------------------------------------------m_one:-1#定义常数5 p% \# z& b2 @( f
zero:0#定义常数
9 A. C8 @) G( d! b. m1 e' r$ sone:1#定义常数- i$ Z4 v- v+ Y
two:2#定义常数
( x; F9 G8 t$ ]. ^2 o& J vthree:3#定义常数
: u' Y. n: d" o" dfour:4#定义常数- L* R2 h0 R% w# ^2 S
five:5#定义常数% L4 Z4 j* T( t
c9k:9999#定义常数
7 N7 J( C! _& f# G1 t' x$ c2 j' xfastmode:1#Posting速度最佳化
, Y" }) W( A) o: d# b' j, V7 `# PbUG1:2#0=不显示,1=普通列表框,2=编辑器
; A, q' @5 V: f( B9 D! U2 \8 Xbug2:-30#Appendpostlinelabels, non-zerois columnposition?; d! E$ d" a0 ^" W8 _& _4 i0 L) L
bug3:0#Appendwhatlineno.toeachNCline?: o0 q2 n: W3 l5 i6 X, z9 Z, k
bug4:1#AppendNCIline no.toeachNCline?9 h* c) C. y# \ f( Q" {
whatno:yes#不执行whatlinebranches(分枝)?(leaveasyes)! ?) A9 X z, Z: @/ D# Z
get_1004:1#Findgcode1004withgetnextop?9 B8 x: b, q' h5 g: ?* @
rpd_typ_v7:0#UseVersion7stylecontourflags/processing?5 ^' l; h% m$ l3 G; k* a% L
strtool_v7:2#UseVersion7+toolname?, L& o6 i4 Q* L6 S
tlchng_aft:2#Delaycalltotoolchangeuntilmoveline W @; J" }2 l
cant_tlchng:1#忽视cantext入口onmovewithtlchng_aft2 T( \' E. \5 f1 l( D# ~5 N$ L
newglobal:1#全局变量错误检测
& O9 G0 s: F! X& g4 d! O+ ygetnextop:0#建立下一个变量表
# i a8 A& [- R/ W; R7 E此书尽量做到,简洁、易懂、实用。不用专业名词,不用英语基础。使大家都能理; t& s2 l3 ~; C% w
解应用,做到学有所用,不要像很多资料一样只是给高级技术人员的。
- G. H; j( V) t1 Z好了先讲到这里,希望对大家有帮助,特此奉上此书!!!1 u I5 L: I" d; M
水平有限希望CNC技术爱好者们多多交流相互帮助!提高自己的能力!为企业与社
; n$ L9 R; N- \4 u! g会服务!!!
7 ^5 T, ?* Z" ehttp://user.qzone.qq.com/727825947; k3 L4 _, \4 D
电子邮箱:mailto:zhao-1381045@163.com QQ727825947 赵存璞
. O/ j( F w8 P4 Z
# j6 m8 h5 ~! C( Z/ N |