|
后处理修改帮助
1 Q$ i; H! q- ^& z' } 一、PM 自带的后处理中有适合自己机床要求的,不过要修改、增删些代码。 : N6 E% J' [- u6 g$ @% {. h5 C0 \
二、没有适合的,需要改写后处理。
) c" I z, K3 t 三、机床的代码格式完全与普通 G 代码格式不同,需建全新的后处理。
1 U+ t5 |) |- b. |+ r' X1 h2 S$ p* e1 e6 k! O6 m
现在开始准备工作: " K7 o/ W: @4 z- J# y
" u$ w" K1 X, n% Q2 M9 a 1、以不同的控制器试着处理几个G代码文件出来,然后和自己机床的代码进行比较,选一个最接近自己的。 1 L- E5 h& j, A: m, n2 }
2、打开ductpost\dp-index.html,准备有问题就看帮助。
, ]5 j0 U) U6 G4 P7 G 3、运行:ductpost -w [控制器类型] > [控制器类型].opt ,从而生成OPT文件,这个选最接近你机床的控制器。如:ductpost -w hurco > hurco.opt 。 这时就可以用文本编辑器来打开这个opt文件了:
3 D! G, j2 c: _% i( w
$ }& V( y2 Y( J1、程序头、程序尾的改写: / [; u- h, I9 A! I$ L
这个在以下的定义里面:
7 d3 R7 @9 Y8 k* ] define block tape start ; T+ _9 t$ H; f/ i3 G
******************** 7 b; l e O; ]
end define
/ G7 }# D0 K& k; Z define block tape end
2 M2 l4 y1 v. L7 @8 t, i *******************
6 B3 k( k+ H- u) w+ I' M end define
9 M" L# O& i# g) {8 l! A: U q; L! z$ v O
你可以根据自己的需要添加,如:
0 r" v8 ?; S: g" F0 _
) V; P+ { D, u- Q define block tape start a" w0 k6 C! Z7 ~: F4 {( [2 N
"%" + Z( A! v6 }* }% ~
N ; "G17G90G80G40G49"
1 b$ h- l9 o3 g end define + D+ ~, M) V+ r3 Y
2 E4 V! X' c" y2 p4 A5 q6 R define block tape end
0 A6 |2 y0 W+ e1 ?4 y9 P/ h N ; "M05" 9 ~' Z# N9 i& [- ^+ W
N ; "M30" ; G: N: O2 z O5 X, T; ~5 i
end define
* T' f) O, M* h) L f7 P 4 x/ x- G* Q7 F: y
不过注意这种引号方法优点是简单明了,但控制器只是把它当字符处理,而不能以模态存在,具体可参见其它说明。 + w! C- f& X/ G! o/ A) W' k
+ g1 y$ \3 U( B- s: D
2、是否需要N行号?
7 x9 S2 e. i: x7 l* O g6 \1 V % & ~7 W# J" V8 U2 M6 h; W: g Y
:0001 ( F5 g6 k" b* _3 ]$ @. }
N10G28G91X0Y0Z0
9 v, I5 @3 q" N N30T1M6 6 K8 } k* |& U4 t1 [) [% n2 q
N40G0G90X-25.Y-40.S800 M3 : b c* |. d$ _
/ Q" ^+ }$ B$ U3 \" |# F
如这上面的N10、N30、N40,另外行号的起始、增量、最大都可以定义。如果不想要行号,可修改为以下值: 2 \% i' M6 p& s. _- g
define format ( N ) ( r7 V- d! Y1 Z) a5 X2 i" w
not permanent ! z% S3 @9 S% j% u E. I3 ]
end define ! o+ b9 h' q1 i' C
$ t) ^( \8 C s/ `8 W3、是否需要Message?
! L. }, L" X' @. K) |( o( k A
! s$ \- z' V: Y. s" w2 M8 d5 z N60( MSG, Toolpath Name: ET)
! F" m0 u9 V3 R3 @& T+ o N70( MSG, xyzxyz_cut_1 ET)
. J! ?& s% J. Z5 [7 ~0 |. j N80( MSG, Output: ET) # \4 R8 T! }/ E2 w
N90( MSG, UNITS: MILLIMETRES ET) : s9 M. e% f3 O2 j! s
N100( MSG, TOOL COORDINATES: TIP ET)
) }. A; I& x7 T% G. r. G8 Z N110( MSG, LOAD TOOL ET)
6 t4 o: _: y) d, c) {( i- V
# l# s, s, H3 Z# [上面的信息,可修改为你需要的,具体参见帮助。也可选择不输出,如: ; g: J. p" o! k
4 o0 q6 S* v x! i/ M) i# f0 x message output = false , t) V5 Q7 j5 \1 j& f
$ d# @1 f; M, [# m4、圆弧的输出格式: ( A8 f' Y* w! G
7 Q) e; d4 h. x: u/ u这个需要讲一下,输出R的就不讲了,专讲I、J、K的输出。大致有三大类: 5 D. J3 c, C2 U* N$ r0 Y7 D
, d6 z2 A$ A* E" Y! H
a、I、J输出为圆心的绝对坐标值。 , ?4 R9 H0 c* v" E; r
b、I、J输出为相对坐标值,具体值为:圆心坐标值-圆弧始点坐标(常用) ! D# f& b6 D9 J4 f0 h& k/ x
c、I、J输出为相对坐标值,具体值为:圆弧始点坐标-圆心坐标值
# r6 |8 I) n d , y8 Z% W! Q; x& L8 B' x
define format (I J K) :定义I J K的矢量, v$ U2 u9 h* z) W6 S4 r
scale factor = -1
: q5 t+ U/ Y* X0 O' z ~6 H' i. { end define) v0 `( l7 b. a1 G; f* z6 E
5.定义左右刀具补偿
" x) ~3 A. o+ @ N+ S3 }7 j define codes : x7 w4 s( f6 ^
comp on left = G2 41 C5 h- h- |7 g5 P3 j% p. m- a
comp on right = G2 428 e$ X# Z8 @3 c
comp off = G2 40
. y2 @; v* w6 U$ ]' h( C; o end define
) E" P# h" |/ X; _, G
7 \' {2 Z( Q% |#14 :从#14~#41为定义旋转轴的写法,如小数点的位数,+/-的输出等等( X( ?( F" i" R+ D: Y! c8 w5 J& a
6 i g+ _+ e* s. C0 |) sdefine format ( A ); w V; }/ s; V1 h9 W; w
address letter = "A"
# U% t5 K" J( [% T: E% v. x5 | address width = 17 t) w% `: E* V$ F5 n6 Q* d
field width = 8$ @$ B$ p3 {/ {# R; a
metric formats
3 o( _ W/ s, b decimal places = 3- ?1 M- b4 s0 n3 j. n; ^ @
decimal point = true$ A; B- M0 ~( R9 o
sign = if negative
: P* L8 ~& e: t# i8 p# u: ] leading zeros = false % g2 x5 W) l) F3 V& C' s) V* Z
trailing zeros = true+ l7 ]% p* B4 C# A3 }
end define
: u8 |+ G# K4 E( Y$ A D#26; P5 E. k2 f& f) Q
word order = (+ A )
1 d6 V. h: j( w: ]6 y$ U#28
3 ~# W& Z# Y# ~7 ~ units = metric
1 U, k" M, J' S; o) o1 k5 n message output = false
* J, z" N# q* A3 l5 X spindle output = (2 0 0 0 )1 d2 z% I2 ]0 P3 V1 M+ B! I
coolant output = ( 1 2 )' r% ]2 e% \6 Z; X7 n' N8 s' K2 O
#32, r4 Q$ i1 ]. \0 k3 g1 C
define format ( C )
) T- h: p( w( ?; m, k9 q% N6 n address letter = "C"! \( \+ K" O; d; H) q* y
address width = 1( X6 e$ h$ m9 `/ U$ e0 m* q
field width = 8* L3 D7 d$ M8 W. m4 o i+ }
metric formats# Z9 D* n7 B0 f9 S& ~/ [; X
decimal places = 3
: e& ~6 t% g: ^4 h9 C: E+ m decimal point = true
: v6 @, _5 F; F" J# J& f sign = if negative
W9 { G$ \& ^- d leading zeros = false
" h) f* d) v! e. w" j9 h0 Z trailing zeros = true: f% N8 G$ o, Q3 I- ~) W$ U9 Y* }
end define* y2 K! N2 K+ J" c# A
#39
. v A( N8 y+ X0 J0 F* N/ c word order = (+ C )
: Q/ a5 [ c/ [# ]. z) I#41
' n9 g4 [; B e& z8 e7 t6 _ units = metric/ A7 p- q$ B9 b# b" z
message output = false
+ @% E+ T4 b: ~) A) h8 O spindle output = (2 0 0 0 )# ?' R/ T6 M p6 J) H4 w
coolant output = ( 1 2 )
6 r8 m6 c4 s* i7 i) k# |8 P$ X$ l7 P- ~* O
#33
' p" L2 i( c0 C6 k. p define keys :定义旋转轴名称
, u+ u. m _1 @) E azimuth axis = C
# [, M; i4 }6 B7 A7 a, T elevation axis = A
" r; s" [: s& b% _ F6 G end define 4 d4 a6 K- H3 V9 c
#38
* ], k" e, z" v4 g azimuth axis parameters = (0. 0. 0. 0. 0. 1. )
% F5 W) g- ^ R7 E% f T( V/ g- x4 ? elevation axis parameters = (0. 0. 0. 1. 0. 0. ), `7 r9 X9 M# r6 y8 f( H
#41 # K2 u: P4 T: ]/ j8 b0 V
spindle azimuth rotation = true :定义方位轴方式,true为主轴头式false为工作台式+ x6 x5 a( O5 L7 }5 i+ [
spindle elevation rotation = true :定义俯仰轴方式,true为主轴头式false为工作台式
' w4 @2 ~0 e$ D/ [+ b4 l- H#446 {" `/ U* l% J, l! r7 X
azimuth axis direction = positive :定义方位轴用法,相对还是绝对
/ {+ J- w7 U! m/ C8 ]( r elevation axis direction = positive :定义俯仰轴用法,相对还是绝对
7 J4 f) y/ o! b9 I#47
4 @" L! C" i' j% f6 h azimuth axis units = degrees :定义方位轴单位6 s) h0 b7 k! r/ t
elevation axis units = degrees :定义俯仰轴单位2 g) ]9 e: T' X8 b
#50# `- r7 d( K' C9 I7 B
azimuth axis parameters = ( 0 0 0 0 0 1 ) :定义方位轴参数4 V- i0 \2 g0 z8 z" w2 Y" r0 f
azimuth centre = ( 0 0 0 ) :定义方位轴圆心参数
! E9 @2 u$ F4 _ elevation axis parameters = ( 0 0 0 1 0 0 ) :定义俯仰轴参数
- H/ L9 g7 H6 ]8 W7 j' S elevation centre = ( 0 0 0 ) :定义俯仰轴圆心参数# r# c) E6 A5 A( H) o1 v+ t
pcs origin = ( 0 0 0 0 0 0 ) :定义旋转轴圆心
9 T7 U' @! b) V% a$ E J linear axis limits = ( -99999 999999 -99999 999999 -99999 999999 ) :定义线性轴范围
- C& O, T3 [/ }3 u; q3 A7 ]& z1 C8 N+ a7 \ rotary axis limits = ( -99999 999999 -99999 999999 999 1 ) :定义旋转轴范围
7 {- p/ K7 i0 V3 V1 e( t$ [' c move safe angles = ( 0 0 0 0 0 0 ) :定义起始角度
" z& C1 h% S9 [- x) M- ]$ l linearise multiaxis moves = false :定义机床是否支持线性多轴联动,false为支持true为不支持1 U6 N6 P1 Z. P3 d+ u
multiaxis coordinate transform = false :定义机床是否支持多轴联动,false为支持true为不支持
0 c( I$ s) }3 c3 ~# |: c integer 3 = 1 :定义是否进行多轴处理 ) A! ?" u& j& ]$ t# _ v
integer 9 = 5. T& c; z) K- m( `* U
integer 22 = 1) n9 x& f1 G! G- G. K
integer 23 = 1
0 p/ o: |% P) G2 O; W& v$ l/ H integer 24 = 0
' x. p7 M, Q F( J8 W2 d( Y! Z integer 25 = 0
, [; t X. ]) d- p$ o integer 28 = 1 4 r, U& O) D" [
integer 38 = 0* C( A: G, i5 G5 ]8 B
integer 40 = 10
( y0 Z; [4 N) ]1 J7 t block start = 1 , Y7 S! x; Y8 N6 K8 n2 M* F
block increment = 1 . k4 v# Y, e3 b' T" ]8 s
maximum feedrate = 16000.0 :定义最大进给量; O0 L- m. W- _9 c+ s( N3 G2 T
comp output = (1 1 1 2)
( N% f, z% T1 E4 c7 Ymessage output = false :定义是否输出信息,false为不输出true为输出
7 u# U* ^' ^( M: S" s% n% Fblock order = true2 M. ?; a0 I D7 C1 }
define block tape start # [" t5 S+ H% b5 x* F }
end define0 u) Y, W; X* v2 B1 Y6 f) S6 _; e
define block tool change first clear :定义程序头和换刀及换刀后的第一个动作
# t# {6 l. w# I5 t- S"T1 M6 D1"9 {5 O2 S3 G; V( q2 p, N% e
"TRAORI(1)"
# Z, b% t' k8 K& Z( `"HSM"" h5 P% t p1 _6 V
S ToolSpeed ; M1 3
+ s! u B* j6 JG6 54
8 f! K4 |9 e h# X2 kG5 90 ; G1 0 ; Z FromZ [9 c/ n7 V$ e' ]. I# q4 C4 P
G5 90 ; G1 0 ; X FromX ; Y FromY
/ w+ @4 n7 n$ a8 g( mend define
1 Q8 S" g/ F$ R3 h! Edefine block move rapid :定义快速移动
E6 P; o6 z$ }2 J8 m: B1 K1 [G1 ; X ; Y ; Z ; A ; C
1 u; Z; S |+ F0 N7 N! o M6 iend define/ d! Z9 J$ T* C8 g) V+ n6 v3 \0 z
define block move circle& @% G9 \, S! a1 L; t7 v% d
G1 ; G2 ; X ; Y ; Z ; I ; J ; K ; D ; A ; C ; F ; M2 :定义线圆弧移动
( X) [9 q5 q1 _# g3 fend define
' p5 t, `1 N1 r7 b1 J, M+ ldefine block move linear j6 w+ q" U r# ~3 \
G1 ; G2 ; X ; Y ; Z ; D ; A ; C ; F ; M2 :定义线性移动方式
2 v5 ^, {' V. H" `end define
$ W$ y2 G$ h+ T! E2 y8 |4 ?define block tape end :定义程序尾
' B3 V/ E/ m' m/ }" R6 |: g) `"M5 M9"
2 l9 W- l2 T/ ]' r"M30"
% W, d" J8 |! @% C% |: cend define, V- ^/ x. N9 |: x3 A
end
* ]* U. b; N% ~. c# j, f
' }5 N: A, }+ ?5 j& j$ S所以这个就要看你机床格式来具体设置了,修改以下值为你所需: ; r( x O1 M. }5 T; B/ J
incremental centre = true (相对,反之false绝对) 7 x2 \2 t0 i: F" W7 i) j$ e
相对有两种,所以: 9 N1 a6 T7 ^6 |, t5 @
scale factor = 1 或 -1
" b1 L5 R$ ^# }# b另外有些机床不能输出360度的圆弧,这时需要将其分为几段输出:
+ n" E! ]7 @0 G: ?9 W( o5 o full circle = false ' y- N$ b' D- h2 R$ t; [
5、换刀的格式:
, @, y: a0 _% F8 V如:
4 e2 F# C' j4 \& Z0 q define block tool change first 6 A6 M7 ^9 g, @& I _: y
N ; OP ; change tool ; T ToolNum
! t1 i: U# f7 p3 C4 C9 W N ; "G48"
9 A# d. x5 t4 c N ; G1 0 ; Z FromZ 8 v% U' o; L' q( ?+ u
end define 7 B' I0 [9 J3 T* y5 l) {: g" W
. r5 T( n: d1 @! I5 o
里面可自己添加你的机床换刀时所需的代码,如打开刀具长度补偿。 0 j6 s2 l$ Q' ?
& C4 W3 E* b* Z) |( x& K6、快速运动、直线运动、圆弧运动的代码: 6 H& V; i( Y/ B# B0 v0 |
1 i) O9 M9 ~8 g+ y
参见:
7 e( ^$ @7 r9 c" v3 Y' Q! {9 a define block move circle
1 q+ F# \5 t1 l/ c N ; G1 ; G2 ; G3 ; X ; Y ; Z ; I ; J ; K ; F ; D
' T, e1 z' M) u( e, ^; l5 I end define * p3 F7 F% u L, V" o9 w
. J1 s. D! d7 l# v define block move linear 3 P: W! Z/ i Y3 U% l5 Q
N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; ; T ; S ;
2 X! A& E3 j( J y7 J- J" `) ]& a M1 ; M2 ' q& E( z0 u9 s0 X7 X* p
end define * ]- w k" e3 V- _
. A8 K7 }" ^2 m; E- e% P define block move rapid
- X5 \% Z _* l N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; T ; S ; % K) w4 n) S7 p7 S& Z/ K
M1 ; M2
2 l- v! J2 @+ d3 @* m% w, y+ G) Y( F end define & z1 t/ h/ _, `8 l ^7 X+ g- r
( |% T* G( f, A. U4 F
你也可在帮助文件的指引下,修改上面的代码,如:不想要每次输出G17之类,可以删掉G3。。。当然修改前要了解清楚该代码是做什么的,另外注意备份,随时恢复。
$ B) y9 r: ~3 p; h% [ 8 @6 d9 s0 q D( h2 c: S$ }
7、多轴: $ t% n4 }5 M0 b- ^2 E8 i
( k+ o0 w9 N7 g! x; U1 T6 k6 x6 }
PM 这点做的非常好,如4轴的几种方式、5轴的几种方式都有代码可参考。如:在X轴加一个圆盘A,只需添加、修改以下几行: ) ^$ ^; k5 f/ ^) W; W! \
4 f. ]& {5 d: p" p Fourth rotary table axis :- ( A. rotating about X. ) & ]- T5 F7 ?5 a! {7 I1 k4 T9 F( k6 L
0 v$ r# O3 t, L2 p" m. k2 O, X8 d define format ( A )
7 L3 a; Q$ f3 k. C" |! A decimal point = true f/ ~) ^& `7 `* C
decimal places = 3
3 p. m* a+ U; k3 ]+ D! L end define
0 N$ p. o; Y1 l4 W
) \) O" r6 N' ?. W5 w word order = ( + A ) 3 p! ^0 L ]9 J" }5 ?
8 t$ u$ k3 l% J2 q5 j4 e( ` define keys
7 u& u8 n; h: ^5 G. c azimuth axis not used
( D5 @3 S9 O7 u8 L! h4 U+ d H elevation axis = A + Z4 W8 Q/ _7 I# i
end define 3 k: h- b1 P" G' x+ A! `7 [
- Z- v% O6 S- _7 s: Y$ e
spindle elevation rotation = false ## Default / @% p' K) p+ K2 n
elevation units = degrees 3 ^% E. i5 Z9 F) R8 Q7 s+ i
elevation axis direction = positive 7 s- I; k+ }5 h) L( e3 C3 b. a
# V- m" i+ ~; |) |/ s
azimuth axis parameters = ( 0. 0. 0. 0. 0. 0. )
. {7 z- ?- ~. n: A elevation axis parameters = ( 0. 0. 0. 1. 0. 0. ) 2 Y7 e# w6 w# J; y
* K& @9 F4 G u7 t) i2 b define block move rapid $ N# ~+ o4 d, i' [' @+ f
N ; G1 ; G2 ; G3 ; G6 ; X ; Y ; Z ; A ; H ; M1 ; M2
7 ]$ h4 {( V- p end define ! |, ?5 f1 F% a
5 ]" [, y. y; u: i1 q' G6 n" }
define block move linear
# Q7 K, ]+ t+ B1 n2 H N ; G1 ; G2 ; X ; Y ; Z ; A ; F ; M1 ; M2 5 D4 s9 e8 j" c/ T6 b
end define
+ S y6 [. ?8 _/ [
2 K' O1 ^& ]4 j1 ]具体可参见ductpost/multex4.html页及5 轴的帮助页。。。
( |0 N2 t7 S2 F! n x
3 W' u; G( h4 w) Y+ I7 x/ k1 n注:总结,多轴后处理的写法,如有错误遗漏处欢迎批评指教。( M2 p: T; ^; ^3 \
( L, s+ ^( I# r9 K3 ^8 N我还要强调一下五轴的后处理改写一定要小心再小心。希望大家多多交流,共同学习进步。( e3 p: q' r% ?, q, J5 H+ |
|
|