机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 5476|回复: 7

Mastercam 后处理

[复制链接]
发表于 2015-3-3 00:11:45 | 显示全部楼层 |阅读模式
MASTERCAM后处理格式修改 [url=]转载[/url]
  N1 G6 `: e8 m+ E5 i9 R7 J

; k( `' J0 B% ~4 `* c1 V
8 @* f5 [- o& U3 ]) o, L对于后处理格式,一般的用户有三个层次的需求:1 k- r( d" O% Y! t! i1 {# A
  M5 E( ]& ^4 T
一、PM 自带的后处理中有适合自己机床要求的,不过要修改、增删些代码。- G  u8 _- O/ d1 n
二、没有适合的,需要改写后处理。, W. l% ~& a, n1 J( a( p
三、机床的代码格式完全与普通 G 代码格式不同,需建全新的后处理。4 V8 D" D1 k/ U$ ~
7 n2 d. C; q' z, _
现在开始准备工作:
' L% P- x  v  O* B! w" {
% t/ V" D6 ?2 T8 D, {( K1、以不同的控制器试着处理几个G代码文件出来,然后和自己机床的代码进行比较,选一个最接近自己的。
. r- A. u1 b' A2、打开ductpost\dp-index.html,准备有问题就看帮助。
! q0 b+ J" a( o$ y3 _/ U  }3、运行:ductpost -w [控制器类型] > [控制器类型].opt ,从而生成OPT文件,这个选最接近你机床的控制器。如:ductpost -w hurco > hurco.opt 。 这时就可以用文本编辑器来打开这个opt文件了:
' b  a0 d% Q2 T+ v6 q, m1 g# Q" K5 V) d
1、程序头、程序尾的改写:
# I) V! S8 f2 R! g5 w" y$ g5 N' H这个在以下的定义里面:+ c! `" W, V; s2 o4 r; l2 o
define block tape start  k7 `* G* N" \( ^) a
********************# b# ^; Y5 Z. B7 x  n
end define
1 W9 V. S) ]. M& _define block tape end  b0 z+ z# s- {" {# t1 l( ]
*******************/ g- q2 }2 D8 c: Y/ H4 r" h) n& E
end define0 f$ L- \' @$ |- G: p$ Q( ~2 O

1 o2 q* `1 U& p2 c9 l) M你可以根据自己的需要添加,如:
& i7 q: p0 u! g- {+ [% O0 l" X% ]( a7 {/ m/ O9 {  E+ m
define block tape start
3 O4 w, c$ }; R( r$ \9 W"%"
9 P9 }7 U9 z/ Z9 B& f) V1 eN ; "G17G90G80G40G49": S" z+ {( T% i( r$ `. Y: ?
end define
! D9 e& l: R3 c0 p4 e6 \! B2 h
  j- i  _1 T  D0 z) H+ _define block tape end
* @: v$ A/ I% v) E# nN ; "M05", l; z" k# l) y, A. |
N ; "M30"' T8 i8 P# Q5 b, s7 u2 s
end define  q& z% f3 I# F& a
8 K* B# Z6 F; ^& P- Z
不过注意这种引号方法优点是简单明了,但控制器只是把它当字符处理,而不能以模态存在,具体可参见其它说明。( ?7 r* m' G0 R
9 m& R# r8 ~: A% m
2、是否需要N行号?* n, H  R3 d1 S4 C; k# k" @2 [  s
%
) _* v) h& j* ?- s5 Y:0001! J9 Y' B! _1 b: x$ n0 [
N10G28G91X0Y0Z0
% e* W: e  K" m( Q4 l$ TN30T1M6! n4 s. J( K! E! M8 G; u, N$ z1 R
N40G0G90X-25.Y-40.S800 M3, b( A2 `# ~5 z$ t2 m* x
4 f8 X% c+ B% R" m* V% Z
如这上面的N10、N30、N40,另外行号的起始、增量、最大都可以定义。如果不想要行号,可修改为以下值:
) y0 E/ X* [( `* B5 [$ w2 \! a! ~define format ( N )6 t* ^# [% Z! M) L( P* r6 `) I
not permanent
  }8 y: V. I0 w+ F2 ?9 g1 |end define  Z) k- Q4 a& u/ P( ?

7 }# t2 }6 v# j; U' I) S3、是否需要Message?
1 Z4 g; _. Q- _1 s9 ], L
& `  p7 ?* Y$ Y0 u+ E4 qN60( MSG, Toolpath Name: ET)
+ L& d2 a) B/ ~! eN70( MSG, xyzxyz_cut_1 ET)
1 r; c3 e" f. W- q9 zN80( MSG, Output: ET)
. _8 V0 Q; s% m8 n, N; F7 @7 IN90( MSG, UNITS: MILLIMETRES ET)
0 S4 M' Y9 w$ gN100( MSG, TOOL COORDINATES: TIP ET)
2 |3 |& t# G6 [( {N110( MSG, LOAD TOOL ET)# |/ j! ~8 \; ^5 G3 p6 J* o' a% W9 j
) o" d  P( g1 o3 @! y
上面的信息,可修改为你需要的,具体参见帮助。也可选择不输出,如:
6 \7 p: ]% b4 w$ r$ o
- w: C- n3 O" \+ n( O6 ?6 F' H5 Zmessage output = false
5 u$ {0 G! Z0 @$ c! `9 V8 x$ r% @; k5 F
4、圆弧的输出格式:
! o, h: T8 k" j$ \
) W- i$ P, l" `9 B6 T: g这个需要讲一下,输出R的就不讲了,专讲I、J、K的输出。大致有三大类:+ f6 Q  K( r3 R3 y* s
9 D5 H5 E9 F- i" v0 e6 k5 r
a、I、J输出为圆心的绝对坐标值。$ ?, W9 X% d& E2 {  c* A$ X! ]7 V
b、I、J输出为相对坐标值,具体值为:圆心坐标值-圆弧始点坐标(常用)$ h- x! B; y' G
c、I、J输出为相对坐标值,具体值为:圆弧始点坐标-圆心坐标值$ k7 S8 E8 P* r8 ?6 k: L
1 k6 J) U3 \7 ?" F% p$ H
define format (I J K) :定义I J K的矢量9 ^0 w# y/ t; c' w( u* O# x
scale factor = -1' r$ B; d# u+ ]9 Q. }
end define
1 {5 O' a. v: `9 u5 A5.定义左右刀具补偿- t# c9 v% u* _2 u
define codes+ W: D, j5 H& x0 _2 D
comp on left = G2 41% k: V- @8 v% ?6 t  o: _1 m# G9 K8 ?5 {
comp on right = G2 42! O& E# w% ?1 P+ N- j
comp off = G2 401 ?9 \; \& D1 D
end define
5 L8 q5 H8 p+ y/ U+ \- F2 I  F8 O4 v+ H
#14 :从#14~#41为定义旋转轴的写法,如小数点的位数, /-的输出等等
# r  i$ z. B9 D& f) `- i4 a4 G- A, M
define format ( A )
' r4 |4 X4 ?& m  r8 m0 {7 Raddress letter = "A"
2 C# U6 ?9 j/ N# I4 X' L, yaddress width = 1
4 z9 \9 f6 K" [# r7 Mfield width = 82 V' d  ^/ J$ M4 b
metric formats& t3 V, B6 P- X8 Q! x& n2 V
decimal places = 3
: ?& P# ]6 C( f0 _6 m  V8 u. cdecimal point = true
+ ^7 W: ~8 K; F3 W. W3 ssign = if negative
  }7 }/ m! w( x5 G( _+ ]leading zeros = false
! F' ]/ \0 K" O2 c  a9 c# Ztrailing zeros = true
0 I& l' v! g, n+ q; H& L4 rend define
8 s" G0 D- T- ?#26# l) u) }, F! e6 s
word order = ( A )# L. F' h/ N4 H7 X
#287 Q+ P/ F+ B( t  H- V$ j7 u( c
units = metric
5 m& K- w6 \* K' ?message output = false& ?, {: N7 y+ D( r" @
spindle output = (2 0 0 0 )1 G) K9 T7 S( Y
coolant output = ( 1 2 )
+ ?- W5 f, A0 J; B9 L) A#32
6 E. X! f, _5 c; w, }. `define format ( C )
( T+ `  V! E/ o( aaddress letter = "C"
: l. \  p1 K& [6 @3 J) x, U6 n+ eaddress width = 1
( q* I+ D$ V6 Bfield width = 8
9 y# X/ T' W' f" v6 q/ q2 b5 s8 I; d& ]metric formats, b5 w0 V( f$ f$ V8 x5 H
decimal places = 3
3 G7 H4 \1 m/ ]6 H% ~8 Edecimal point = true1 x) d/ H7 N8 v9 v" b
sign = if negative) C8 G, i& O! U- v1 s& t2 w' o6 \
leading zeros = false
% Z5 h9 u% `2 y+ O4 d5 [/ htrailing zeros = true- d1 ^5 r+ ~( D) w
end define  X# n4 a. t$ p9 ]
#39
5 S% h) x3 f* `word order = ( C )# W- s2 j* K+ {
#41$ |0 [5 a' Y; y# e1 C: Z
units = metric. Z3 e1 S* m( g, U
message output = false
- p' }) h  I/ w. vspindle output = (2 0 0 0 )
1 G7 F1 g- |. Z, s  n6 _coolant output = ( 1 2 )
) v4 A5 l3 ]! s: ^$ s  |$ L
# h) I* ~8 y6 \  n$ D! b/ f#338 e3 R6 i) a4 Q: S. ~2 W: q
define keys :定义旋转轴名称+ l8 z3 s# D/ G
azimuth axis = C. C( ~: b$ X# s. p- G
elevation axis = A
$ T1 z8 G/ V! ?5 W2 m& \/ M! f, eend define
7 t2 B" q  q8 q2 }#38
% T0 ]* R1 l  Xazimuth axis parameters = (0. 0. 0. 0. 0. 1. )) w4 p0 ]5 e; [9 L2 Y' u5 N  O! J
elevation axis parameters = (0. 0. 0. 1. 0. 0. )
4 R0 V8 _% v0 D7 u( j; M8 h#41
1 f( S  L" J* Vspindle azimuth rotation = true :定义方位轴方式,true为主轴头式false为工作台式2 z5 R/ g  P2 b7 w" M' J& D6 ?
spindle elevation rotation = true :定义俯仰轴方式,true为主轴头式false为工作台式9 }$ a' u' _; V  c( S& ]' L  b
#44* i# v7 F, p1 }- F. [9 ]: \
azimuth axis direction = positive :定义方位轴用法,相对还是绝对" A, j, o( O; q4 K. y  l3 y* G
elevation axis direction = positive :定义俯仰轴用法,相对还是绝对
) V7 j# [8 _! [5 k#47
4 G. h; Z& I" _: x7 k! m  k, [azimuth axis units = degrees :定义方位轴单位# I2 s1 L) n5 D; Z
elevation axis units = degrees :定义俯仰轴单位
' k$ r2 U. s. B/ e1 K# ~#50
9 W- j: m( H4 T6 z% e) M+ P  Razimuth axis parameters = ( 0 0 0 0 0 1 ) :定义方位轴参数
* U% W8 k$ ~% c  tazimuth centre = ( 0 0 0 ) :定义方位轴圆心参数
1 j6 _, y7 H7 g; t, Jelevation axis parameters = ( 0 0 0 1 0 0 ) :定义俯仰轴参数
9 N# T2 U" M+ Y  B& D- kelevation centre = ( 0 0 0 ) :定义俯仰轴圆心参数
9 B0 l* V7 l. w9 Q* X4 epcs origin = ( 0 0 0 0 0 0 ) :定义旋转轴圆心; a7 a1 Z$ K* K; k$ m
linear axis limits = ( -99999 999999 -99999 999999 -99999 999999 ) :定义线性轴范围) `% b9 H3 Z! G9 g1 N) |* s
rotary axis limits = ( -99999 999999 -99999 999999 999 1 ) :定义旋转轴范围) d9 I  m! t( [5 S, K& z
move safe angles = ( 0 0 0 0 0 0 ) :定义起始角度
9 Y: k" d0 ^  \7 z+ W' ~linearise multiaxis moves = false :定义机床是否支持线性多轴联动,false为支持true为不支持0 w' N  S' E" C
multiaxis coordinate transform = false :定义机床是否支持多轴联动,false为支持true为不支持
: f5 c/ x  C4 a; J$ B$ `4 Q7 minteger 3 = 1 :定义是否进行多轴处理4 }) J- m/ u' E9 n; A& k6 V/ k
integer 9 = 5
( S% u: Y  K9 }0 [1 g: ]integer 22 = 1* T  w0 b! e5 v. w7 P& }
integer 23 = 1
2 j# j. ?- y2 W$ v: K/ x6 |+ y4 }2 Q+ Cinteger 24 = 0
" }3 o: m( ^) |0 finteger 25 = 0
: e. N% m) W3 x: i2 J9 sinteger 28 = 18 q, H) D9 [' [) a
integer 38 = 0
" ^5 T, y  l; xinteger 40 = 10
, p# L4 |; v5 Y9 vblock start = 1
- q4 C1 r1 J% n, P! q6 N* Q2 s  bblock increment = 1
$ E9 n$ C; T5 O, y7 Jmaximum feedrate = 16000.0 :定义最大进给量
; A% A2 @1 |/ scomp output = (1 1 1 2)
5 K. P+ _5 c8 y! Kmessage output = false :定义是否输出信息,false为不输出true为输出
* c0 a( b+ G( n) c( k: f3 D0 a& Sblock order = true
( J: Z$ c! \. K  adefine block tape start
% F# b6 F. H5 v: Nend define- @0 V9 k# \& h2 m4 m1 k, |- M
define block tool change first clear :定义程序头和换刀及换刀后的第一个动作
$ V$ y1 R+ R1 J, }' h) \"T1 M6 D1"* _3 r/ ]6 ]. t" H) J& j
"TRAORI(1)"6 d, z! q& \( E2 M. M; K! q+ e
"HSM"
; r& O9 z" F$ h' X/ h6 DS ToolSpeed ; M1 3
. ^# k8 W6 m+ X6 f& D) |G6 540 b7 f3 H" e8 h  q/ V9 G& L
G5 90 ; G1 0 ; Z FromZ" C' c* n! w9 j9 e
G5 90 ; G1 0 ; X FromX ; Y FromY" ^+ [2 r% G9 c& [+ G' U+ X, K
end define* Z  k' p4 p$ ]6 u) n7 `
define block move rapid :定义快速移动% \5 ^  U0 F" ^. x+ |
G1 ; X ; Y ; Z ; A ; C
# Y. t7 y+ `. w$ M6 o& dend define2 U& ?- \* o) k, e  C
define block move circle
8 Q5 [" b4 A9 yG1 ; G2 ; X ; Y ; Z ; I ; J ; K ; D ; A ; C ; F ; M2 :定义线圆弧移动- @) j2 M3 n4 O/ E1 A7 O
end define
, `: T* j( B( L) ~) A( Y, fdefine block move linear5 e" n$ H6 F: `+ |
G1 ; G2 ; X ; Y ; Z ; D ; A ; C ; F ; M2 :定义线性移动方式% i+ U9 B8 h! l% [
end define) j- l( e1 G3 y5 _
define block tape end :定义程序尾
* w" D. W) Q, d/ {' h"M5 M9"+ B& C: N  |+ X9 N# h. k
"M30"! ^5 P4 Q0 U2 x
end define' d) m# [2 l& I2 x! s
end. L6 a  ~" C/ w4 q, d5 o. g: |6 [8 ]

6 ~$ P' N4 K* h$ W( q% C所以这个就要看你机床格式来具体设置了,修改以下值为你所需:
2 w! l2 k# H1 n: ?( \0 cincremental centre = true (相对,反之false绝对)
, P2 ?) y# R& S7 ~8 S相对有两种,所以:
% u$ Q! }% p; iscale factor = 1 或 -13 {% I9 z7 O9 B9 A% m' ?
另外有些机床不能输出360度的圆弧,这时需要将其分为几段输出:
: u7 A) L, B: i! x* Lfull circle = false: T1 k! @: ~; o( g
5、换刀的格式:0 c+ m) N9 d. g  E. L
如:
" J1 A' n, ?3 u& I/ H3 n. e5 Idefine block tool change first
$ o6 L$ R) ]( M: E7 x, t, G" _6 ]N ; OP ; change tool ; T ToolNum
3 o. a' f$ t0 U9 b2 J( ]N ; "G48"
, \4 i5 h; X% E4 QN ; G1 0 ; Z FromZ
9 v/ w- B( j: t# \! n! J6 t1 X" @0 r' Jend define! X5 `, N* V) `' }) i

% I+ j, x7 J4 D! |+ B# ~里面可自己添加你的机床换刀时所需的代码,如打开刀具长度补偿。0 r' J' S, X# w) H- j! D

' C( n; h4 \  V5 o2 O, \$ {6、快速运动、直线运动、圆弧运动的代码:* u) C- J' P: z- N
  c8 v. d( ?7 D% G4 J
参见:
% U. g: _. i4 m. }define block move circle
4 N! P; x2 ?" p' U- v: W0 ~N ; G1 ; G2 ; G3 ; X ; Y ; Z ; I ; J ; K ; F ; D
' Q4 b" F3 w) j! zend define+ ?, }# I& N6 {5 L* D! a
2 r2 Q. I- _- ?/ d/ Z
define block move linear
- Z+ ]8 R2 }/ v' c% EN ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; ; T ; S ;
! J8 Z2 R% @! r* N) jM1 ; M2! E2 _+ ]+ b; D$ m; B3 I
end define( u# h3 x8 W) h
5 J4 R; z7 l5 o+ @7 D4 P
define block move rapid
3 H6 {' ~4 D9 D6 n7 ^N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; T ; S ;# [3 ]! y# C, ^1 @
M1 ; M2
0 J% T" D0 a  yend define
9 A/ X! n/ Y2 i/ Q
, h2 _. D# v( |* ?9 H+ d你也可在帮助文件的指引下,修改上面的代码,如:不想要每次输出G17之类,可以删掉G3。。。当然修改前要了解清楚该代码是做什么的,另外注意备份,随时恢复。
$ ], j5 h+ e0 J) o2 S& ]+ A1 R! h5 r+ f) ?* t; s; u; T
7、多轴:
8 L/ s) E1 _! w3 J& z  z
$ q6 a. M) I  i  H3 LPM 这点做的非常好,如4轴的几种方式、5轴的几种方式都有代码可参考。如:在X轴加一个圆盘A,只需添加、修改以下几行:9 r6 C  m4 A& r6 J

3 s1 p+ a- M1 K+ [$ RFourth rotary table axis :- ( A. rotating about X. )
' k5 X& I$ |" ]4 V0 k6 Q
! {/ {! z  s* v$ B% o% rdefine format ( A )
* V; f7 J3 n6 N/ w2 Udecimal point = true3 y/ A: y1 I& h9 N" o: T
decimal places = 3
  A+ p& y. h/ d0 c5 Pend define
- u5 B* M4 I1 Q9 n2 p3 F; x: y8 N, V: W
2 x% O5 I& W. s7 r# Uword order = ( A )/ j+ \8 \1 `+ a0 A* c

  j1 ^4 \- b& Idefine keys
' h0 G( a" P7 A4 P+ {% l4 jazimuth axis not used8 m% z& L3 X8 i! z2 a9 E
elevation axis = A; N  C( K8 n) |7 p
end define6 |3 w0 a' X" k. M
. F  P0 e% T- v% T4 U
spindle elevation rotation = false ## Default
. n" L( S7 D/ ]+ Z0 qelevation units = degrees0 F4 w( i0 g6 F2 G! E
elevation axis direction = positive. Z- I# o: E) V+ o9 T" I# }$ x
' n. L" N# ~* z$ I! S
azimuth axis parameters = ( 0. 0. 0. 0. 0. 0. )
6 o& u+ Q" d+ Z$ k/ ^7 R) Delevation axis parameters = ( 0. 0. 0. 1. 0. 0. )
7 T5 x9 q3 r! A1 d1 f
* h5 S' g5 C/ T# N8 m* Sdefine block move rapid
' D" B5 B% I$ M2 I% H6 p& RN ; G1 ; G2 ; G3 ; G6 ; X ; Y ; Z ; A ; H ; M1 ; M2
) b* h# `/ M( n: wend define3 N2 c6 N4 B. {+ o: R, Q$ o6 G4 V
2 A! A5 S* s, T# U  g
define block move linear
* K/ C2 R5 K8 qN ; G1 ; G2 ; X ; Y ; Z ; A ; F ; M1 ; M2
( g" C6 q' i8 b7 e0 ]end define( \# T2 |. |0 N, j  G$ u
6 h* `( m: h& N, J2 s# z8 y4 U& N
具体可参见ductpost/multex4.html页及5 轴的帮助页。。。
" _  T0 x# v( A; q' y3 v! S/ ?1 A# C) G& Z, a; v
注:总结,多轴后处理的写法,如有错误遗漏处欢迎批评指教。
# s8 z7 d& j- o& {# q; ~

+ R) Y& G  D( ^' T  _  I# V: p
6 O% w% f* G: H2 [6 V" {4 }: A1 u' J" X
补充内容 (2015-3-4 23:09):- `7 W2 F) D) M  _1 m
内容是PowerMILL后处理
" j6 q, \& R, Q! E
; _3 I) f  c5 O0 \' }补充内容 (2015-3-4 23:09):( J# j) U2 g7 _5 v0 K
对你们抱歉啦!!

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-3-3 07:16:47 | 显示全部楼层
标题是mastercam 内容却是powermill
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-4 23:06:43 | 显示全部楼层
panyuhao 发表于 2015-3-3 07:16 , V$ S, [% S2 w( D& }7 {
标题是mastercam 内容却是powermill

' g7 l/ z( Y) c$ d" U初学者,我是不是搞错了,我再看看书!
6 U; p+ w0 s/ Q8 T, U; G
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-4 23:08:23 | 显示全部楼层
panyuhao 发表于 2015-3-3 07:16
7 l/ O/ b7 {- f标题是mastercam 内容却是powermill
4 M/ C: N) E+ W6 o9 m; ]
对不起我弄错了!!: f3 w9 O7 o7 p7 i* [8 y+ R
回复 支持 反对

使用道具 举报

发表于 2015-3-5 09:46:52 | 显示全部楼层
大学有学点MAX  可能好像上班后 用的公司用的不多
; Z7 K. u) T- e/ G' {# k+ x( Q2 }现在学SolidWorks
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-5 22:33:02 | 显示全部楼层
qq820647955 发表于 2015-3-5 09:46 % m- ~. b6 k4 ]7 Q4 V7 z
大学有学点MAX  可能好像上班后 用的公司用的不多
3 ]0 A. {9 k% u/ ?$ A1 }8 V( N现在学SolidWorks
' D0 Y0 V9 u, d/ F
solidworks算图纸,mastercam是程序啊!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-5 22:35:17 | 显示全部楼层
qq820647955 发表于 2015-3-5 09:46 0 _1 l+ V, [4 a  C; ]8 B0 r
大学有学点MAX  可能好像上班后 用的公司用的不多0 \) O  c1 O" `3 y
现在学SolidWorks
, ]  [% u+ H3 K. `
我感觉虽然solidworks有solidcam,但是还是没有mastercam的程序好用
6 g+ r$ ?) o9 _0 f: q+ b. D
回复 支持 反对

使用道具 举报

发表于 2015-3-11 22:48:09 来自手机 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-1-10 16:02 , Processed in 0.055183 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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