找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 5920|回复: 7

Mastercam 后处理

[复制链接]
发表于 2015-3-3 00:11:45 | 显示全部楼层 |阅读模式
MASTERCAM后处理格式修改 [url=]转载[/url]6 @3 ]8 V1 F3 G: k1 b: e, d2 I

% I* ^1 v; I7 R3 l  z- i. e
1 V& W/ I9 o6 u- u3 F, c对于后处理格式,一般的用户有三个层次的需求:; U! z. ]1 \; z
9 N1 E6 {/ |) `3 B! w8 y
一、PM 自带的后处理中有适合自己机床要求的,不过要修改、增删些代码。+ Z+ ]" ^6 P1 e' Z. N$ [; ~
二、没有适合的,需要改写后处理。
+ i+ F7 D# Q: r+ @+ }三、机床的代码格式完全与普通 G 代码格式不同,需建全新的后处理。& G2 C. W% l* |, T! r9 l
% T) K# W, a: H7 b6 d, L! R/ H
现在开始准备工作:- D/ e+ ^# p" [! @9 w

3 c; L, B- C1 j& ~5 d1、以不同的控制器试着处理几个G代码文件出来,然后和自己机床的代码进行比较,选一个最接近自己的。
& x* ~+ A: z. \+ X% V* X9 m2、打开ductpost\dp-index.html,准备有问题就看帮助。
4 g2 H, w1 r' o2 G9 I3、运行:ductpost -w [控制器类型] > [控制器类型].opt ,从而生成OPT文件,这个选最接近你机床的控制器。如:ductpost -w hurco > hurco.opt 。 这时就可以用文本编辑器来打开这个opt文件了:
9 @- ~7 Z* c! V  G* V7 q7 i3 l" W  p8 ^& s2 t0 b* Q: T
1、程序头、程序尾的改写:
/ w. j( Y0 L8 w2 |9 A7 g; a这个在以下的定义里面:
- a  E/ J- G6 Jdefine block tape start" \# {6 y- u! i) W: {7 m
********************
/ P# O+ E. l# n9 [/ b  H. Q: f) k0 m4 Aend define
$ I3 @# x% a0 h8 Edefine block tape end" L* |- l+ S$ |; j
*******************3 g) b( d6 ~* B" Z! `3 D6 E. `
end define/ v- n# k3 V. K1 t9 ~0 E" z

- C1 A9 `7 D' j& L你可以根据自己的需要添加,如:( K. F  N9 a6 `7 t- k) ?7 V' |
) k( p2 I# @- r9 e7 B% l
define block tape start8 k) h' M  T' m
"%"9 C* K; q  t6 u$ j8 f
N ; "G17G90G80G40G49", [# p: @& \5 l" T
end define: B/ m, W2 j2 Z' Z" M

1 Q/ e9 X; \9 x1 x- r0 Q+ V/ [" e( cdefine block tape end/ P) Q9 i. s0 ~; f9 v
N ; "M05"+ s, g! E; X: W2 @* s
N ; "M30"7 x1 n- k3 N# H) B0 U1 F( [
end define
( e& w! B$ {# n9 F7 V/ k9 n" `
3 c# t4 Y- {: f. g# n. }不过注意这种引号方法优点是简单明了,但控制器只是把它当字符处理,而不能以模态存在,具体可参见其它说明。% }+ N! C! l9 @- L

" _7 `8 D# m3 s2、是否需要N行号?0 E% |" ^* @( y7 \; ~/ J( m
%+ a2 k; C: ~& M/ b( {: x% r0 [) l
:0001* e% o2 ?( y* |( i5 O
N10G28G91X0Y0Z0
9 ^: t! O$ {* ~( FN30T1M6
+ _4 y3 O, G2 S% YN40G0G90X-25.Y-40.S800 M3! J8 L2 S& o) D$ ^! v5 _1 V* R! e
6 M6 O' i6 G/ H6 V9 t
如这上面的N10、N30、N40,另外行号的起始、增量、最大都可以定义。如果不想要行号,可修改为以下值:' [( ]! m: c0 j, j5 u/ e* Y6 F7 j
define format ( N )9 a: n" v- a9 Z. y* d
not permanent
* Y: Q1 a' l1 ?" o+ `end define
9 T6 @8 D% w8 v) t/ v# ^) {+ f
- `2 N& v" L. N9 [3 l  Q) w3、是否需要Message?
& _% g# z: C6 I+ ~
6 L# }! e4 y4 p* e1 hN60( MSG, Toolpath Name: ET)
, Y% b5 F& D! v) aN70( MSG, xyzxyz_cut_1 ET)
6 ]2 s) Z# N! L. k% _N80( MSG, Output: ET)1 t- r' F# h' G% d6 E
N90( MSG, UNITS: MILLIMETRES ET)) I* r; w6 z) k! E4 @
N100( MSG, TOOL COORDINATES: TIP ET)) c6 z% C- i8 b4 S" t
N110( MSG, LOAD TOOL ET)& M% D0 |7 x4 e: b# E2 V& s
1 X* ]7 u9 c) b, d
上面的信息,可修改为你需要的,具体参见帮助。也可选择不输出,如:! p( O5 E3 t% `

/ g* }# H, B1 t5 @message output = false7 H9 D4 O4 S: V8 A8 a4 K; l9 K
/ }4 S/ {1 Z: L  n) l
4、圆弧的输出格式:
) c( G+ A( {0 H+ R9 l7 C7 g9 k+ r8 r+ e; ~0 i, s
这个需要讲一下,输出R的就不讲了,专讲I、J、K的输出。大致有三大类:$ c, w: @8 E5 B' O, ]7 N
5 O0 f# q% j( M, Z4 S8 a
a、I、J输出为圆心的绝对坐标值。2 E1 P  b5 Q, Y: t, U
b、I、J输出为相对坐标值,具体值为:圆心坐标值-圆弧始点坐标(常用)3 k4 G+ }8 r/ }9 s! T/ Q
c、I、J输出为相对坐标值,具体值为:圆弧始点坐标-圆心坐标值: j$ h1 o# G$ s7 \  M1 B

( W& N' V+ |7 b" O4 m$ Xdefine format (I J K) :定义I J K的矢量
0 q' j/ j& ]4 \9 i' Ascale factor = -1
) @6 C" `# ^9 a3 R- fend define
3 @" g) B7 O" r( R7 J4 T) t+ f" y5.定义左右刀具补偿9 @: s! z! `; p; U
define codes
6 t- r. L, ~; k' M, q' S; Vcomp on left = G2 41/ I" w$ L' q7 R1 s% U& H, c
comp on right = G2 420 B" J* A, }/ Y7 T, d2 S$ o
comp off = G2 40
# u/ V% y3 q- P! x5 x0 h3 k* i! Yend define6 X" @+ S$ h$ @. R/ O+ k
* o& U. F* d8 F
#14 :从#14~#41为定义旋转轴的写法,如小数点的位数, /-的输出等等1 Z2 H$ m- w8 j9 M
8 A6 D, Z# p0 l4 _& [: B; e
define format ( A )
: F- t" U! t' m% u" y4 y& f+ laddress letter = "A"9 R0 A8 D( n! R" w% H. p
address width = 1
6 q( u% N4 r# ]% E) I& Q6 ]- cfield width = 8% ]- {* T: Q, y& X( C! G+ z: I
metric formats
3 [% M" ]5 F" n% B. E. udecimal places = 3- W) Q: s1 M6 N0 [6 r- x; i" ^
decimal point = true0 q7 h: g; w! W3 q7 o2 K% O2 j/ D, t
sign = if negative: G4 f* s+ H# k+ l. O4 K& V  v0 z& p# X
leading zeros = false
8 `+ K" B2 [  Atrailing zeros = true6 I0 i4 d1 |, Y% P: S+ i0 h/ C
end define" B+ h6 [' G: y( N  T
#26
" a/ N" F( H# ]3 U) q( Oword order = ( A )
8 A4 v; U) f: V/ i. E8 y; c) y#28
" A7 d" w8 r0 ~4 w5 s2 xunits = metric/ g! E# O. e8 `' t% K
message output = false
! s* z. D, g9 `1 n$ Qspindle output = (2 0 0 0 )
+ f1 }! ~0 u! f3 H; Zcoolant output = ( 1 2 )- j9 [$ Z& T9 m, f
#32
* h* w: V7 N3 b( ~! ~7 p' ldefine format ( C )
  e- N$ f6 V. W# L6 X; [address letter = "C"% a6 H+ v0 ?* ~& C/ M% z; P
address width = 1. Y! i' u$ V! a& M3 q  x; @- h; {
field width = 82 K' q; v6 ~" A& k% T" m
metric formats
6 S1 ^7 [  g2 [% j( Vdecimal places = 3
2 b3 i* A5 e0 y0 T3 \, Kdecimal point = true3 l' ^1 k1 h. k! ?: K) P
sign = if negative
9 \/ `; _' k* }6 b# @. E+ qleading zeros = false+ p! C' \; U) L
trailing zeros = true
. J2 ~* m; t4 S/ P) Cend define1 B; y3 i5 h7 X. O% h+ C
#39
9 W' K0 h. p3 j" m" r* l$ f3 P* B0 f! Lword order = ( C )
9 c  S' [% [9 `) ~' ^0 }#41
+ n% r# I( f, ~. f. Y& M$ H3 _units = metric! a: W. w/ I  X" y
message output = false7 A- @5 f' }- f; b/ C
spindle output = (2 0 0 0 )& ~5 F2 B; g# ?2 f. `. O, k# ^
coolant output = ( 1 2 )
- F  q6 ]9 q/ J5 v1 h
: P5 m& |& Q, _: f#33
' \3 |8 U' Z  p5 f: F% F- ^define keys :定义旋转轴名称
( h5 u) r7 Q& h& Vazimuth axis = C7 A3 J' G- K  \+ ]
elevation axis = A
# Y3 M. m; q% d1 Y: n8 V5 f8 Z/ nend define8 p% s+ y$ y) j7 D4 C/ r/ Y$ x9 j
#38# \$ P5 J* D% q- x! a
azimuth axis parameters = (0. 0. 0. 0. 0. 1. )  F$ _/ ^1 `3 l1 F- S6 d& k
elevation axis parameters = (0. 0. 0. 1. 0. 0. )
$ w; D7 p" H: x2 h+ W% ~#41
& P+ O) e/ u* e+ ~) [spindle azimuth rotation = true :定义方位轴方式,true为主轴头式false为工作台式
6 R4 U- O9 C; S/ Uspindle elevation rotation = true :定义俯仰轴方式,true为主轴头式false为工作台式% ~/ h2 _6 @# u- e
#44; ]8 P3 b2 }) K4 ?2 G& f! @
azimuth axis direction = positive :定义方位轴用法,相对还是绝对/ I* m: f# Z* B& S. L1 x7 [
elevation axis direction = positive :定义俯仰轴用法,相对还是绝对' {% _2 O# J& f4 i( S6 G
#47
" }1 o9 c% c0 I" ?- [azimuth axis units = degrees :定义方位轴单位; `- m& t, p2 A. P3 V* |$ x" s: N
elevation axis units = degrees :定义俯仰轴单位
, d* Y+ W/ _  M, H! \1 I. o. c#50: V% p. X; C; H4 g4 t' R
azimuth axis parameters = ( 0 0 0 0 0 1 ) :定义方位轴参数
+ K3 B8 D7 E" k4 O# V, Mazimuth centre = ( 0 0 0 ) :定义方位轴圆心参数2 P) I1 y' ~8 @6 m! h- c) x$ G1 s
elevation axis parameters = ( 0 0 0 1 0 0 ) :定义俯仰轴参数
" m* H9 V- q+ C2 G+ M- m; H: felevation centre = ( 0 0 0 ) :定义俯仰轴圆心参数
3 j3 k6 H+ s% w, r& ypcs origin = ( 0 0 0 0 0 0 ) :定义旋转轴圆心  g# t6 G+ S, u: h$ l) }3 T9 I
linear axis limits = ( -99999 999999 -99999 999999 -99999 999999 ) :定义线性轴范围
: g8 R3 x6 j9 K0 _/ |. Krotary axis limits = ( -99999 999999 -99999 999999 999 1 ) :定义旋转轴范围
. S0 P9 k  h2 ]# G# X& O3 omove safe angles = ( 0 0 0 0 0 0 ) :定义起始角度' C1 f- Y, {5 I3 ]  Y! G& P. B
linearise multiaxis moves = false :定义机床是否支持线性多轴联动,false为支持true为不支持
8 v/ T, W3 p: q  M, O. L/ k6 amultiaxis coordinate transform = false :定义机床是否支持多轴联动,false为支持true为不支持
# C$ l+ @' [3 p$ Vinteger 3 = 1 :定义是否进行多轴处理
, N# s# g) [9 Y2 M+ ~7 d1 E; einteger 9 = 5
9 Y1 @7 Q' h+ h1 k. ointeger 22 = 1
  d! o# _! H7 i( i' [& L2 M, Y* O, Iinteger 23 = 1" s/ t1 P/ R  `* U' D
integer 24 = 0
9 [6 V8 {) \) `: x( e8 Vinteger 25 = 0
! `1 c: }) I# H7 J( \7 Linteger 28 = 1$ h4 {9 ?/ o# C
integer 38 = 08 Y: q& E. A* i( k
integer 40 = 10! h. H3 T+ L5 G
block start = 1& U8 f, i2 ]: ]: ^% k
block increment = 1
. ~/ s; x) v4 j' J" Kmaximum feedrate = 16000.0 :定义最大进给量
4 `9 e- f% V* _  a* k# }6 lcomp output = (1 1 1 2)2 ^9 g7 w% Z) Z6 ^* y& K+ u
message output = false :定义是否输出信息,false为不输出true为输出) d0 x# E; O  A' `
block order = true, t7 x% o! K1 w+ Z2 i/ B
define block tape start
  [5 }" [) h- y8 D) P) _  Aend define
' p; F' _- ?! D& m5 Q; Z7 I4 H2 e6 wdefine block tool change first clear :定义程序头和换刀及换刀后的第一个动作
+ r8 B$ U* p8 U4 |"T1 M6 D1"" \' d8 ~. c; v- l2 `9 f
"TRAORI(1)"
1 R0 C  D8 W" Z$ i% X; U% I' M"HSM". T' d3 ~. r: v6 E( \* ~
S ToolSpeed ; M1 3
/ y( o8 A0 g! l: tG6 54
2 g. Y; u2 K2 b) F- zG5 90 ; G1 0 ; Z FromZ
5 D. o5 ], A: y) t9 kG5 90 ; G1 0 ; X FromX ; Y FromY! F0 H4 _# y+ j& Z' G
end define
& H+ M. ^4 E) \  h5 u3 @' B% A, ?: t( Qdefine block move rapid :定义快速移动. w% R* Y% L& j
G1 ; X ; Y ; Z ; A ; C
  w; A. Z8 m/ N* ~( f3 ^2 \3 uend define' q+ o% f* K* V' O' E
define block move circle
: e6 @2 Q/ ^) }& rG1 ; G2 ; X ; Y ; Z ; I ; J ; K ; D ; A ; C ; F ; M2 :定义线圆弧移动
7 P/ Q7 g0 N' Z! S2 i8 K9 Q. oend define
5 L. y. k! m- \$ Y% Sdefine block move linear
: A2 X' F7 d. k- }4 m% U+ a% DG1 ; G2 ; X ; Y ; Z ; D ; A ; C ; F ; M2 :定义线性移动方式
- Z- u: a1 k. S/ Iend define7 [7 t/ \) u+ n4 m- e  W
define block tape end :定义程序尾
6 ~/ K" C% X9 s' D; r  {# m9 \"M5 M9"0 Z1 w/ Z' F2 k4 d6 f# P: q
"M30"
" m+ ~+ c8 Z2 H4 ?4 B  J$ r% Y; Mend define
* b) N5 c/ p6 z* Q1 \3 w; x  Gend6 D7 @+ w( C! `3 A- Y
' T1 Y( o( O3 g  L" c
所以这个就要看你机床格式来具体设置了,修改以下值为你所需:
! `; `$ P5 @3 zincremental centre = true (相对,反之false绝对)) F3 \5 G  l2 o# H3 F. C1 \
相对有两种,所以:
, P" [9 y( d9 p' Q% d) {3 U$ Pscale factor = 1 或 -1
3 t  T) ]4 }- i另外有些机床不能输出360度的圆弧,这时需要将其分为几段输出:: L7 p) [1 q/ Z, A7 u
full circle = false) G4 H+ Y2 V6 _4 ]7 }
5、换刀的格式:
4 C# i& G0 b! d3 A* E( v如:
. w- m+ d# e0 w! v- Fdefine block tool change first
$ w! I3 N  _  k* t) U& {3 c( C0 sN ; OP ; change tool ; T ToolNum
2 Y  U+ k/ y/ }8 z9 y' n6 xN ; "G48"
" Z4 u. [5 Q% m/ ~: NN ; G1 0 ; Z FromZ% y+ p( q- l1 S4 ~5 Q  F
end define
7 a, F2 C- t2 S7 i' z7 _7 I# e! u& Q& ?" W3 n% E9 r  @
里面可自己添加你的机床换刀时所需的代码,如打开刀具长度补偿。
2 A( C2 u" V3 b; T8 |+ ?
" j' v$ l, }! F6、快速运动、直线运动、圆弧运动的代码:1 T8 [: M: P3 A

1 K+ F! t$ F5 U; L9 a- E/ w参见:
' F( u1 q5 d% y) bdefine block move circle) V6 F9 W7 g+ U0 S# t8 X
N ; G1 ; G2 ; G3 ; X ; Y ; Z ; I ; J ; K ; F ; D
% e0 [0 k- I% w+ s$ V: N1 bend define; ]  u: w+ z- g. H+ _

# _) [1 A$ [; Y0 f) ~0 s% _2 Edefine block move linear
2 K5 {  q% x9 \3 b4 |N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; ; T ; S ;
8 R' b/ R0 _. n" g4 LM1 ; M2
2 x+ e# |6 @9 N7 [( }' nend define6 \# K: r; K0 {4 q" y

# c" J7 t5 ~2 |" m. \9 t0 Adefine block move rapid
, B$ M- D2 M6 }3 Z3 j+ q- GN ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; T ; S ;1 W: A* Q& c7 L# l* n* a0 S
M1 ; M2
" {% W7 y! k3 {$ z5 lend define0 [6 m8 @# T0 Y1 x% H8 J
2 z# P% g1 O4 R
你也可在帮助文件的指引下,修改上面的代码,如:不想要每次输出G17之类,可以删掉G3。。。当然修改前要了解清楚该代码是做什么的,另外注意备份,随时恢复。
) z! |# e) ?" L9 D' \) |, B7 E- I+ X4 ~
7、多轴:  a/ A: S5 V3 C  o
% l; M6 K7 f; |: `  Z* Y
PM 这点做的非常好,如4轴的几种方式、5轴的几种方式都有代码可参考。如:在X轴加一个圆盘A,只需添加、修改以下几行:
# P  N7 J) t8 n. V- b2 b9 R4 M! H
Fourth rotary table axis :- ( A. rotating about X. )6 K: G: y2 L# F7 o0 V" H1 Y  M

5 K2 \# c/ M( D  T- E" ?define format ( A )
+ k/ @) e( i1 g* C7 ]4 ddecimal point = true9 n/ Z( b' x( Z+ J0 y: z" _
decimal places = 3
' w% |' G$ G, n' c, Eend define
6 F9 D. [0 A. L9 `) Q1 z5 x7 L0 A% ]
word order = ( A )
0 H, b. P- c; T3 \$ z3 r' l  D% C+ K" ^" d5 N! v# ^  ^+ H# |6 [2 D
define keys
- ]3 M- q; L, q. [azimuth axis not used
: s- x+ y2 h( r4 Z7 A8 c1 H" belevation axis = A
0 u! ]+ a; X* h- ]) bend define# [0 ~2 Z+ f6 y4 ?* s3 y

" Q% o; F+ M/ r9 D( s5 C) mspindle elevation rotation = false ## Default
. j6 H* {- I3 `- L* Delevation units = degrees4 g( t' T2 E* K
elevation axis direction = positive" @' Y% ^- }' y5 D; p2 V! s
' c0 j8 L2 A- @5 G
azimuth axis parameters = ( 0. 0. 0. 0. 0. 0. )5 o  v5 _1 A/ z, A# e5 s
elevation axis parameters = ( 0. 0. 0. 1. 0. 0. )
9 b' X& \: m# \
* H7 V- `. B' i+ s: a2 a/ L) |define block move rapid
* u( G3 R8 P6 w! f" r" s7 ON ; G1 ; G2 ; G3 ; G6 ; X ; Y ; Z ; A ; H ; M1 ; M2
. R8 h- i1 l' gend define
8 y7 K" [& c/ P+ q9 h1 d7 U9 T5 V0 G! n8 w( y, t6 Z
define block move linear, M8 p3 q; \# H, y
N ; G1 ; G2 ; X ; Y ; Z ; A ; F ; M1 ; M27 b6 z9 e' a  c; Q7 C
end define1 W3 l# F# t( t/ m
) `* l$ K; f# l  e1 ]6 Q
具体可参见ductpost/multex4.html页及5 轴的帮助页。。。
- B- W( k5 X5 T- Q5 l4 O& q- w6 w6 `- w3 `% F
注:总结,多轴后处理的写法,如有错误遗漏处欢迎批评指教。
6 ^$ c, J5 b! T$ |
* o+ ]4 O! Z" g- r& b5 ~4 Q
3 t# W* g7 v8 I# z/ R: m5 d8 o
* C  K& C0 X( c8 ~* g5 ^
补充内容 (2015-3-4 23:09):
7 e7 H8 v: [% W2 v; X3 ]0 ~  k. ?! S内容是PowerMILL后处理5 d1 C5 J& C* E4 Y7 i
  k7 a) w& u) c8 @, w
补充内容 (2015-3-4 23:09):
" t) g$ z: c* e) Y$ B' h8 v# ~对你们抱歉啦!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
回复

使用道具 举报

发表于 2015-3-3 07:16:47 | 显示全部楼层
标题是mastercam 内容却是powermill
 楼主| 发表于 2015-3-4 23:06:43 | 显示全部楼层
panyuhao 发表于 2015-3-3 07:16 7 A8 A% M) R2 b. Q3 L# }- D& h
标题是mastercam 内容却是powermill
% D- P, W' a+ m+ A. O: T
初学者,我是不是搞错了,我再看看书!% x- U- I! ?# T1 v) n! p! j
 楼主| 发表于 2015-3-4 23:08:23 | 显示全部楼层
panyuhao 发表于 2015-3-3 07:16 - c6 N# n' X8 X* g
标题是mastercam 内容却是powermill
# [& F5 N: \& k; _' U6 M! e4 O
对不起我弄错了!!
# G* h( O& l9 D( e( t2 o" Z$ [
发表于 2015-3-5 09:46:52 | 显示全部楼层
大学有学点MAX  可能好像上班后 用的公司用的不多
, @; X. y7 l/ Q, f+ G现在学SolidWorks
 楼主| 发表于 2015-3-5 22:33:02 | 显示全部楼层
qq820647955 发表于 2015-3-5 09:46 0 L- _/ e$ l0 L/ n. M
大学有学点MAX  可能好像上班后 用的公司用的不多
! R& B6 _, h8 d$ ^3 P/ j! u8 l现在学SolidWorks

7 `# v8 ~  z$ S  L3 ~solidworks算图纸,mastercam是程序啊!
 楼主| 发表于 2015-3-5 22:35:17 | 显示全部楼层
qq820647955 发表于 2015-3-5 09:46 ! a: N6 R* T& _9 g
大学有学点MAX  可能好像上班后 用的公司用的不多7 e- h) g5 h8 D* q
现在学SolidWorks
1 ?% x( F' m5 G  t2 y3 y
我感觉虽然solidworks有solidcam,但是还是没有mastercam的程序好用; E. W$ I; ?# B3 _( W+ G# s
发表于 2015-3-11 22:48:09 来自手机 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-8-4 19:59 , Processed in 0.087145 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表