機械社區(qū)

標題: Mastercam 后處理 [打印本頁]

作者: 咪嗪    時間: 2015-3-3 00:11
標題: Mastercam 后處理
MASTERCAM后處理格式修改 [url=]轉(zhuǎn)載[/url]2 w/ k) c6 p3 n; e

. c, V* g9 l+ N0 g$ v2 t+ r6 i( P5 ?8 W, q5 m, d4 j
對于后處理格式,一般的用戶有三個層次的需求:6 ^# d! V' h" c, [2 B3 W; ^

" q8 k  r" n% |: |2 f一、PM 自帶的后處理中有適合自己機床要求的,不過要修改、增刪些代碼。, P7 s3 N2 j: ]$ e
二、沒有適合的,需要改寫后處理。: }/ ~5 A( h, r6 @4 X9 W
三、機床的代碼格式完全與普通 G 代碼格式不同,需建全新的后處理。, y: s1 u) w9 I5 Q

- `' @5 O# \' b& p現(xiàn)在開始準備工作:8 \, t, ]3 D! n& B0 j: N

( q, q. l1 ]/ G0 s7 v- A1、以不同的控制器試著處理幾個G代碼文件出來,然后和自己機床的代碼進行比較,選一個最接近自己的。- u. K, E1 d6 p4 e* g! y
2、打開ductpost\dp-index.html,準備有問題就看幫助。! \' F+ g3 T$ S) @3 U$ k
3、運行:ductpost -w [控制器類型] > [控制器類型].opt ,從而生成OPT文件,這個選最接近你機床的控制器。如:ductpost -w hurco > hurco.opt 。 這時就可以用文本編輯器來打開這個opt文件了:
7 F, k8 ?6 r7 S8 ^! @. m# f( h$ i6 a# s! ]9 p$ D& C! x" g, g
1、程序頭、程序尾的改寫:4 W" k6 ~. n" R' G
這個在以下的定義里面:
0 K5 Z) ~9 y& wdefine block tape start7 ?' W- X( k1 V+ v  y# u6 Y  ?
********************7 p5 Q9 M* V, H1 f8 g
end define5 g' N* O% ?% d; @# z5 e
define block tape end
+ k; p* y# s' i; S& b1 U*******************! P* W& _3 H- f
end define0 |. C! P, K3 f# K! s
. l" k$ k5 k( e# y7 T5 T
你可以根據(jù)自己的需要添加,如:/ T! k6 R- r6 ], c+ B" m0 V0 U
+ E9 Q2 w, u+ L1 A3 ^8 ]
define block tape start; V$ O: _6 R: {! H$ C/ ]8 z
"%"9 `6 i% Q5 G; I( W+ _4 s- [) j( i" c) _
N ; "G17G90G80G40G49"9 N6 Q7 g, m& X" s, [
end define( T" [( p' ], h* [

7 A# d+ o- J- w; v; p# h, T/ r0 Pdefine block tape end- p9 _6 u% M9 n$ {# v0 l
N ; "M05"- T9 S( }4 j+ Q! l( n9 ~& K
N ; "M30"$ L- h2 D4 t2 o2 o' F
end define/ t" }3 C+ ]2 q3 ?. U

+ z. B" `. ~% _6 `6 x/ y不過注意這種引號方法優(yōu)點是簡單明了,但控制器只是把它當字符處理,而不能以模態(tài)存在,具體可參見其它說明。
4 w  d6 d' V$ f9 ^% y1 w: T# D
. d. P3 |, K" N; l2 V2、是否需要N行號?: |1 Z! s  Q% c, r+ i, w2 I
%
% L& R# l" Q& `! c:0001: G; d8 h1 r4 u  W6 A
N10G28G91X0Y0Z08 g! k7 h& b, [5 x& i
N30T1M6' ~& x' ^$ R/ s, e- R4 g
N40G0G90X-25.Y-40.S800 M3
8 ?& i7 h8 h' V+ V6 h; {4 P5 B3 `4 d2 ]- d5 U" z$ \
如這上面的N10、N30、N40,另外行號的起始、增量、最大都可以定義。如果不想要行號,可修改為以下值:
9 |# i' h6 O& ?: k. a1 Idefine format ( N )
' [4 b0 o4 v" J# x) H' C( knot permanent  D$ k: E3 ~% E5 {
end define2 `% b7 I! r* [& m
0 j2 v3 u: i0 O+ @; x( c) f/ z
3、是否需要Message?
# L. t) p$ V+ G7 H( Y1 h5 {. E9 w8 ]+ J: K, Z1 E
N60( MSG, Toolpath Name: ET)
% b& S+ K  c' V- C' HN70( MSG, xyzxyz_cut_1 ET)
* K- Y0 c4 Z+ T- [. RN80( MSG, Output: ET)0 ~/ h; ]1 q' k, r8 i3 c0 D; f* k) j) o
N90( MSG, UNITS: MILLIMETRES ET)
6 a9 L6 B/ t' L4 p7 E+ lN100( MSG, TOOL COORDINATES: TIP ET)5 h( V! z& {: v' }2 R* \" F6 T
N110( MSG, LOAD TOOL ET)
: H: I1 k& D* }% B" X
, U. Q8 u- d2 I5 L8 x  Y8 i: I上面的信息,可修改為你需要的,具體參見幫助。也可選擇不輸出,如:8 ]  B& P( E0 z% o* c2 T
6 g8 q: x$ L8 F6 {0 w  w2 z6 F
message output = false
$ o% T) l; C( k# ^$ \4 B
" x6 f5 j8 q. y- S4、圓弧的輸出格式:( @( U; b# U9 W+ R% [( H
9 |4 y$ C1 q, a, A4 g; f
這個需要講一下,輸出R的就不講了,專講I、J、K的輸出。大致有三大類:
1 w9 x5 i' r& m; t  O0 O
) {$ I' Q$ n' }5 V$ q8 wa、I、J輸出為圓心的絕對坐標值。
/ d- i; l, G' n8 ]b、I、J輸出為相對坐標值,具體值為:圓心坐標值-圓弧始點坐標(常用)8 \) J+ t4 Z5 _% V
c、I、J輸出為相對坐標值,具體值為:圓弧始點坐標-圓心坐標值
$ B6 t# _+ \4 }  `' n
* H$ f3 q6 z8 ~1 ~define format (I J K) :定義I J K的矢量
/ }, J$ \/ D- B/ d% |scale factor = -15 }8 G* A% U. U
end define
) l' c) g, V' C+ z5.定義左右刀具補償2 X' P0 S3 m/ Z( q- T' L; e& |
define codes
" D5 y" S; V$ S! `2 W$ xcomp on left = G2 41
. P7 `9 h, i! e' r. @# G5 m& x6 }/ V! icomp on right = G2 42, f% l( d+ {6 R& w
comp off = G2 40* ?3 A: ?* b# F0 A$ w) m" r
end define+ O4 O7 T1 A6 P7 Z( L; w) \! P/ N
% u; q. [' @3 O! S
#14 :從#14~#41為定義旋轉(zhuǎn)軸的寫法,如小數(shù)點的位數(shù), /-的輸出等等  u* \7 v' ^; S! `* v

1 q% a( T. V4 c1 @4 S* M* \define format ( A )+ e$ r+ H1 B' O: i3 W2 n; d5 G7 s
address letter = "A"
: o  K1 ?  r0 \address width = 1
% v  q5 K+ c, ?* nfield width = 8
$ C' o  D; M# b% O' Z; p# Jmetric formats, P( p! u+ L7 W
decimal places = 3
2 B6 ^$ P+ `. Q+ R& i. O7 Odecimal point = true
& x, t1 P0 x: S- H. J. ssign = if negative: e! J  O# Z& x/ d
leading zeros = false' P8 t; `1 W6 ~+ T0 o; G
trailing zeros = true
. Y' a" Q4 R. v- Dend define) ~9 v7 M1 e& w2 j
#26
; u/ }6 ~% J: j( R# V) ]* e# tword order = ( A )' q: u- o& k& x! o
#28
: }1 C- m5 B& p/ Q8 i2 e7 _units = metric
9 @, c( ~( l* z& r4 }message output = false( y/ r+ v: w( J+ W6 g8 A1 z+ ?
spindle output = (2 0 0 0 )/ T5 }6 ]9 B+ W7 ]- F
coolant output = ( 1 2 )2 G8 q3 q* ~5 v9 l& i
#32
" S: q$ d( N# I8 C. M0 \; y/ n8 {5 _define format ( C )* E- _" r* t3 d6 q0 e3 H& u
address letter = "C"
+ @: d3 o1 E( K- @  kaddress width = 1# v8 y2 W: f9 J% E
field width = 86 s: W8 }  S# ~$ ?1 g( q0 m
metric formats
, q$ r% _+ @! K) }% v% ydecimal places = 3
( X4 {. k+ p* k, u) Zdecimal point = true
9 K+ A5 b# n+ Dsign = if negative8 k! \4 t, @9 D; w7 R
leading zeros = false
( k, S* F2 d1 x6 H5 T  Qtrailing zeros = true
: f: r( q2 J" {; B* d  P6 D# Dend define: s7 x6 D: G* ~9 d+ H
#39( t6 o2 e! R9 C5 ~1 H
word order = ( C )5 j: S+ `% v1 j4 q) Z, A
#41
" o: o6 }2 c2 funits = metric0 C! K$ [) x& X7 Y8 h; D
message output = false4 N. W- V. e. e# K
spindle output = (2 0 0 0 )
" |( h3 j: h$ y9 w/ S  Icoolant output = ( 1 2 )% l. k$ ^5 ~4 M4 ^1 F9 J6 M) b

7 G  ?' {2 l1 k#33: Y% r) K# q& u1 i& j; J, G$ U' U
define keys :定義旋轉(zhuǎn)軸名稱
7 g6 |- s! R  E7 P9 V! Cazimuth axis = C
2 W  |' S& L0 ]4 j9 yelevation axis = A
1 u0 ^' W2 ^9 _! x6 A* Jend define9 A9 ^# m' f4 d5 Q
#388 O( ?5 Y% h4 R4 P* r9 D# G
azimuth axis parameters = (0. 0. 0. 0. 0. 1. )5 a7 j$ k+ S/ u1 o( j% J
elevation axis parameters = (0. 0. 0. 1. 0. 0. )9 `! R6 {$ t, L; J6 Y* E, p
#41
+ J+ v0 r# F; ?" l2 I- ~spindle azimuth rotation = true :定義方位軸方式,true為主軸頭式false為工作臺式, \" A0 ]1 s& \( u0 ?; l" L3 D
spindle elevation rotation = true :定義俯仰軸方式,true為主軸頭式false為工作臺式; Z7 ?+ c3 V! a# }
#44
7 R/ t( b- P) C: I; zazimuth axis direction = positive :定義方位軸用法,相對還是絕對. m7 g4 b! O9 W* u  x
elevation axis direction = positive :定義俯仰軸用法,相對還是絕對
* D" F; }" y" h  x3 Z, C& O; D#47
$ P: N1 s6 v( f+ n  N/ ]azimuth axis units = degrees :定義方位軸單位
. H% z$ V4 \% ~5 {+ Eelevation axis units = degrees :定義俯仰軸單位
! m4 c* [& [+ L) t7 l+ J& T0 S#50
. q' X! G! l7 Z5 O/ Xazimuth axis parameters = ( 0 0 0 0 0 1 ) :定義方位軸參數(shù)
$ g# B: v; o0 R& N& Y# ?azimuth centre = ( 0 0 0 ) :定義方位軸圓心參數(shù)' S5 B0 H- v% `6 o. N1 i# d, z4 M
elevation axis parameters = ( 0 0 0 1 0 0 ) :定義俯仰軸參數(shù)# Q6 ~+ w. v1 o  |
elevation centre = ( 0 0 0 ) :定義俯仰軸圓心參數(shù)# F* F+ t/ E9 W" I  E9 k
pcs origin = ( 0 0 0 0 0 0 ) :定義旋轉(zhuǎn)軸圓心
  x* L* x) g6 z- flinear axis limits = ( -99999 999999 -99999 999999 -99999 999999 ) :定義線性軸范圍
; t3 Q6 T$ N8 e: P2 U0 mrotary axis limits = ( -99999 999999 -99999 999999 999 1 ) :定義旋轉(zhuǎn)軸范圍
7 e8 O* K8 D* G7 b3 P2 {6 Xmove safe angles = ( 0 0 0 0 0 0 ) :定義起始角度$ B: A, E" O8 O  m( w1 ?- [
linearise multiaxis moves = false :定義機床是否支持線性多軸聯(lián)動,false為支持true為不支持# I9 R/ L# W) R6 s; m: W  e
multiaxis coordinate transform = false :定義機床是否支持多軸聯(lián)動,false為支持true為不支持
  C) @* M+ o  D' t" iinteger 3 = 1 :定義是否進行多軸處理
# I& X  ^$ |. L* `+ pinteger 9 = 5
4 z8 n7 G: K8 M, finteger 22 = 1; \- }% U5 N5 J
integer 23 = 1
- Y" @; q  _1 T8 l5 w7 Finteger 24 = 07 A% @) Q9 w  O+ j# }
integer 25 = 0
7 Z1 S+ C5 w) ]' j# o' Vinteger 28 = 1
* `+ H* h7 m- o. L1 X9 yinteger 38 = 0
: O. ], `! e: T7 ~4 f- Q+ Binteger 40 = 10
& j6 V5 |! W3 ~4 P) S. zblock start = 1
) z8 z9 x1 b+ ~0 N+ O( xblock increment = 1* e) p( q2 L! [* H3 D" b
maximum feedrate = 16000.0 :定義最大進給量
1 M" t% w# O$ t+ g" ]comp output = (1 1 1 2)
- y' r; ~5 C4 y) D' fmessage output = false :定義是否輸出信息,false為不輸出true為輸出
1 ?3 b( ~& S7 Eblock order = true$ m+ H0 J# j! M: i! i' S
define block tape start
/ N  L$ T) J8 ^! @end define. ^0 g% x2 w2 \8 r6 ~, V. j
define block tool change first clear :定義程序頭和換刀及換刀后的第一個動作! D3 |. m: t# X# J
"T1 M6 D1"
$ E3 u6 f' h+ G/ t0 C! P! ^! Z( z5 N"TRAORI(1)"' }% ?* {" Z, h% V, T
"HSM"# a/ j' T/ g/ o) S
S ToolSpeed ; M1 3/ ^( e4 X/ K0 a+ l+ u- x! ~
G6 543 T6 J5 N: o; R: I3 v
G5 90 ; G1 0 ; Z FromZ
. x" _9 w" k7 O: v- C: u$ q) c, iG5 90 ; G1 0 ; X FromX ; Y FromY' S! L( \; m+ F: \
end define
+ e7 h6 k' n; R' Ddefine block move rapid :定義快速移動( u# Y7 D* V! Q
G1 ; X ; Y ; Z ; A ; C
. Q2 B2 l( n( l5 E  dend define- A! ]. Q, H! r% Q9 k7 q
define block move circle3 N4 Q" C5 ?2 g# [, k
G1 ; G2 ; X ; Y ; Z ; I ; J ; K ; D ; A ; C ; F ; M2 :定義線圓弧移動
1 X4 z, e9 a8 L/ P7 d4 n7 A1 g: Zend define
  M2 g9 @5 X1 zdefine block move linear5 l( W" h* G" N# u$ W
G1 ; G2 ; X ; Y ; Z ; D ; A ; C ; F ; M2 :定義線性移動方式  |9 r& h- ?: F  a; H6 L" f
end define
9 ]7 u2 |  v, t  J, {6 edefine block tape end :定義程序尾
) t9 c; O" Y- Q4 J8 ?"M5 M9"2 X. l) v  P. p2 s2 V) D- @
"M30"* @, A$ w. K. y; t! X
end define
+ m& p; r5 H6 r+ r* mend# d1 ~2 E# |+ [# F& A

' X% x( x. i  c. o6 j+ A所以這個就要看你機床格式來具體設(shè)置了,修改以下值為你所需:
! K! [* i' t9 y$ A: p7 M2 Gincremental centre = true (相對,反之false絕對)5 T/ e% P: k( B/ E5 L  |
相對有兩種,所以:7 `" N1 i9 ^8 Y& a* J( w$ a, w
scale factor = 1 或 -1
: Q, U- k! ]' v另外有些機床不能輸出360度的圓弧,這時需要將其分為幾段輸出:
% i# E, O/ k9 L, |) B0 y; K- `full circle = false
* M& P. c! u( W5 v) x5、換刀的格式:1 @0 G1 u3 ^7 u* N" D0 ^
如:5 W6 ]& s4 O8 x6 B# I
define block tool change first
% F4 H7 l6 _; ~% DN ; OP ; change tool ; T ToolNum1 b# {% H- s, z& m# e+ Q
N ; "G48"& x: U- a# t. z, g/ C" R2 b
N ; G1 0 ; Z FromZ
- X: ^" j# z' E! Z: t8 \+ bend define0 p- j# D  p, v! E# D

2 B% y1 N5 _# U3 b1 _# r$ f) K里面可自己添加你的機床換刀時所需的代碼,如打開刀具長度補償。
7 l' k% [2 ~* b2 G5 M; R2 a1 j9 ^1 |. r8 V, D) m
6、快速運動、直線運動、圓弧運動的代碼:; s' j& p0 \9 j
: e! I# _' U& I. d8 p( l7 ?$ l
參見:
# m0 D3 a. r$ J2 ?- c2 Y& G% d6 _define block move circle. Q* Q$ Y' H' H6 O% s/ {
N ; G1 ; G2 ; G3 ; X ; Y ; Z ; I ; J ; K ; F ; D
3 G5 m" e  s" i+ ~# }end define5 _- e0 a# @8 w6 _
2 E6 {" B9 d; B
define block move linear' D7 f, \! v  ]" r
N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; ; T ; S ;. }/ Y5 D7 J" {* i/ g, c
M1 ; M2. B# i- s$ f& O4 A& r  F$ ?$ N0 v
end define
6 n* K; v2 q' T% h: T& r# N: f# ]& S$ p# x+ _4 n( y4 m
define block move rapid
- d; S4 ]' r5 ?) v* O0 jN ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; T ; S ;
& h  ~( T4 K! T. L! I! uM1 ; M2
# P2 T7 S2 V1 Z: o6 |, F  ?end define
: O# C; f3 j/ r% I  j3 `
) }! y/ t4 i, i; N# x1 D你也可在幫助文件的指引下,修改上面的代碼,如:不想要每次輸出G17之類,可以刪掉G3。。。當然修改前要了解清楚該代碼是做什么的,另外注意備份,隨時恢復。8 I7 v/ q. G4 ~1 ]: w: q' J
, e  e2 U& k. g6 F+ n$ i0 d
7、多軸:2 S, p8 B4 Q2 f2 P6 Q" O3 l" Z/ a; Q

" ^5 k0 W7 s/ v7 j- @' Y8 ^" ^PM 這點做的非常好,如4軸的幾種方式、5軸的幾種方式都有代碼可參考。如:在X軸加一個圓盤A,只需添加、修改以下幾行:
5 m9 R- A# i5 N, K3 {- y" _: K( z* r% P) G; a& s9 {0 R
Fourth rotary table axis :- ( A. rotating about X. )
/ h1 b, J0 z% N2 T$ @3 z. e% Z1 t- b8 [, X% Y7 p
define format ( A )
( h% l5 Y( w; W& r2 ^7 w9 xdecimal point = true! {3 v2 m. ~) x, g
decimal places = 36 ?3 ?  A5 f6 F- V; h& u1 H7 n
end define# U6 S9 e# y- g% M
1 m5 W3 Q% h  U2 F5 j9 D: E; s2 }
word order = ( A ); u. Z5 f6 [6 \  ]  `
# _# [/ L: E* y$ f! E
define keys4 h3 O! F$ ]! f& b6 Y$ @
azimuth axis not used/ N/ r) h6 e& h2 U& b
elevation axis = A3 j% V; s  \2 s9 E
end define. _: A# e# p; p) ~- S

3 A  I0 O1 E( @' L; R" s. uspindle elevation rotation = false ## Default
4 |3 S8 ~1 O% H1 J) C0 }# m) i) televation units = degrees
  J# l4 s: h/ v: P) z. \! Pelevation axis direction = positive1 F! L9 l" E6 ~; }2 u) w- r

: T$ w  i8 ~) b2 J# Gazimuth axis parameters = ( 0. 0. 0. 0. 0. 0. )
4 c$ a( U( P5 Y! s) Q* O2 Q1 V7 Kelevation axis parameters = ( 0. 0. 0. 1. 0. 0. )/ y+ k% u  Q6 s* G3 {
/ Q9 t3 f, P# ^+ b3 X1 F
define block move rapid
! d* h; x) }' i& \3 q) F1 K: ?N ; G1 ; G2 ; G3 ; G6 ; X ; Y ; Z ; A ; H ; M1 ; M2
+ p8 S  g. H/ p* K0 F( ]end define
0 H: b" `8 a9 n
" J6 r! g' Z! [0 q5 ^define block move linear* o# T. B6 Z+ s
N ; G1 ; G2 ; X ; Y ; Z ; A ; F ; M1 ; M2
' X: t( H2 R; |* J' L; ?( A. Send define( g1 m3 s$ y% h; K0 x' m  J9 R$ L
$ A2 j/ X0 M* R- Q: p% [0 D; w
具體可參見ductpost/multex4.html頁及5 軸的幫助頁。。。
  N7 e. Y! m8 }( `6 K) y6 d" I) h  M- b& {2 n+ W& O
注:總結(jié),多軸后處理的寫法,如有錯誤遺漏處歡迎批評指教。

( u. Z) w/ O! X2 {0 m8 _$ g: N! a- K( V. S* r: C' u7 u% u
: K: {3 \8 O: t  Y' b' v1 |. X

8 q" e, l( t# j7 L# W- L補充內(nèi)容 (2015-3-4 23:09):9 U3 I& e( d6 F* S8 w  o% @
內(nèi)容是PowerMILL后處理
. E. o; ^8 ^! l' l+ e7 N# Q* a0 u( t1 N" y, ?- n; j& B. i- n0 d
補充內(nèi)容 (2015-3-4 23:09):
7 C0 p% f* o! K' x對你們抱歉啦!
作者: panyuhao    時間: 2015-3-3 07:16
標題是mastercam 內(nèi)容卻是powermill
作者: 咪嗪    時間: 2015-3-4 23:06
panyuhao 發(fā)表于 2015-3-3 07:16
! K; Y+ `, t$ \4 n3 L% O! |+ D標題是mastercam 內(nèi)容卻是powermill
0 G3 D& x3 X& w* h  H5 x
初學者,我是不是搞錯了,我再看看書!0 [( o1 W: q: b) A7 m

作者: 咪嗪    時間: 2015-3-4 23:08
panyuhao 發(fā)表于 2015-3-3 07:16
9 ]' V5 ^* u3 _0 S標題是mastercam 內(nèi)容卻是powermill

' j3 B. f- P4 r9 w0 Y( N% z* T/ V對不起我弄錯了!!* N" B  {! A% `# p  f

作者: qq820647955    時間: 2015-3-5 09:46
大學有學點MAX  可能好像上班后 用的公司用的不多5 o+ Q5 N& _4 l4 n" `" x# E
現(xiàn)在學SolidWorks
作者: 咪嗪    時間: 2015-3-5 22:33
qq820647955 發(fā)表于 2015-3-5 09:46 7 f7 T2 k5 o9 ]: h# x" M2 \, t4 y
大學有學點MAX  可能好像上班后 用的公司用的不多+ z0 u) c7 a9 u* j' X4 K
現(xiàn)在學SolidWorks
8 Q8 v$ C/ M$ }
solidworks算圖紙,mastercam是程序。
作者: 咪嗪    時間: 2015-3-5 22:35
qq820647955 發(fā)表于 2015-3-5 09:46
+ Y2 K' C, x, R1 v9 s9 C- @大學有學點MAX  可能好像上班后 用的公司用的不多
+ h) Q! ]6 M) C" C現(xiàn)在學SolidWorks

6 ^2 U$ Q5 A1 \' B+ m5 Z我感覺雖然solidworks有solidcam,但是還是沒有mastercam的程序好用
" O/ f* m: R7 Z2 L/ v6 V: _
作者: 只看看不評論    時間: 2015-3-11 22:48
學習了




歡迎光臨 機械社區(qū) (http://e-learninguniversity.com/) Powered by Discuz! X3.4