青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 3169|回复: 9

后处理修改帮助

[复制链接]
发表于 2012-7-31 14:15 | 显示全部楼层 |阅读模式
后处理修改帮助2 F; @% y3 S) a5 u
    一、PM 自带的后处理中有适合自己机床要求的,不过要修改、增删些代码。 : M8 u1 c' o$ ^5 B
    二、没有适合的,需要改写后处理。 . o* }" f$ v( s: Y
    三、机床的代码格式完全与普通 G 代码格式不同,需建全新的后处理。
* Z2 u+ p5 m  d) O7 Q2 J! w' ~! @" p- Y
现在开始准备工作: # R$ g0 `$ ?# _, W2 G% M! D# F# G
  # Z& Q  M) N. p: [# A( t9 K
    1、以不同的控制器试着处理几个G代码文件出来,然后和自己机床的代码进行比较,选一个最接近自己的。   / n9 T. P' r% G. l
    2、打开ductpost\dp-index.html,准备有问题就看帮助。      
7 T' X9 }' r: p- k    3、运行:ductpost -w [控制器类型] > [控制器类型].opt ,从而生成OPT文件,这个选最接近你机床的控制器。如:ductpost -w hurco > hurco.opt 。 这时就可以用文本编辑器来打开这个opt文件了: 0 ?7 T& Q: L; }2 z* S# c3 r

& U  ]6 j; E+ @# d1、程序头、程序尾的改写:
# Z/ l  N: s8 J/ l- X这个在以下的定义里面: - z, v7 J! X" r- s$ P
          define block tape start
! M- N+ |% K  E/ H$ M5 h          ********************
  D9 ]) s  _/ g1 K, Q          end define 3 Q+ k; y3 {- w, d
          define block tape end
# k" d# J) b1 B7 @% h          *******************
9 N8 @5 a( k4 O) O7 A; ~0 ^          end define ) S) w! E- H; [& H: l; d0 n

# t; e0 d: `  ^1 e8 M. e9 \1 j你可以根据自己的需要添加,如: 5 i$ z2 m+ y) [& O5 u

. l" ]) Y1 G) h9 |' G        define block tape start 5 c) F8 w2 g/ T: P& q
          "%"
2 `2 L: X) t7 `7 g2 T7 S4 G          N ; "G17G90G80G40G49"
5 ^+ f6 p% C. h        end define
9 Y0 p' i4 x6 @, c; Q: P; t) l: J( _" U6 }4 ^6 V
        define block tape end / |2 D- u! t1 ]% Q9 t  _! T( T
          N ; "M05" $ t& ]0 V4 P1 V# Q7 \  l* V
          N ; "M30" ! ^, A6 L9 S7 o- J: n0 \
      end define
2 b: X6 p$ ^+ [" f( \    . Z  x3 u3 d% Q3 ?  f
不过注意这种引号方法优点是简单明了,但控制器只是把它当字符处理,而不能以模态存在,具体可参见其它说明。
5 p- T1 s4 j  h2 X
+ y6 u# _. L+ L9 O! n2、是否需要N行号?
, V% u7 ?, y: V        %
# c0 y3 Z  p; p0 p        :0001
$ N6 h/ T5 U9 O: G; m7 ^# t        N10G28G91X0Y0Z0   O; O0 [4 _! G# n1 e8 i! K
        N30T1M6 6 V* Z3 O. l' G* z- ?
        N40G0G90X-25.Y-40.S800 M3
( B" C1 T. J9 w; Y0 u    , H4 x: J& T" L( [
如这上面的N10、N30、N40,另外行号的起始、增量、最大都可以定义。如果不想要行号,可修改为以下值: 7 Y* M; Z4 _+ t! n
                  define format ( N )
' f4 {6 s5 k1 x2 V) S$ T% |9 C3 {                      not permanent ; ?, T* q; C4 \
                  end define
: O6 F" B) b& U7 C# d! w& a9 E1 `; e5 \; L; I7 m! v
3、是否需要Message?
" `* s" f( H& E8 i% ^5 {
) {) W- L$ X, w9 t6 u      N60( MSG, Toolpath Name: ET) + x0 r# I* m2 y6 l& M7 M
      N70( MSG, xyzxyz_cut_1 ET)
, T8 d  e6 y: b7 j  I& S( l) d      N80( MSG, Output: ET) , F) y, ^% Y" h0 i( v- Q7 V  k
      N90( MSG, UNITS: MILLIMETRES ET)
3 [6 W# @$ m7 n; {8 E! }7 v2 e      N100( MSG, TOOL COORDINATES: TIP ET) / z. p: Y% D( k) r& l. G$ n
      N110( MSG, LOAD TOOL ET)
4 Z$ Y: p( C* g& ?3 h& q: N% H4 J* z$ ^+ e0 M
上面的信息,可修改为你需要的,具体参见帮助。也可选择不输出,如: 2 N. S5 l! ^6 q5 M
   
. H6 v2 z0 k% ?4 v" A& M      message output = false 3 v" b: z, J: @$ C2 g7 l

  ^0 \2 x+ ?  P7 w; R5 X! Y, Q4、圆弧的输出格式:
* l: k5 B( c# E& M& }/ Y3 Z) f/ i      
) M+ M' Q( @  g$ H( _这个需要讲一下,输出R的就不讲了,专讲I、J、K的输出。大致有三大类: . v9 \" p; T; X* I+ w
    - M3 v6 A% i5 J  U, x$ T/ l
      a、I、J输出为圆心的绝对坐标值。   
  u! X: s7 H6 s4 L      b、I、J输出为相对坐标值,具体值为:圆心坐标值-圆弧始点坐标(常用)     
1 @. t* G/ u, f" s6 B8 L      c、I、J输出为相对坐标值,具体值为:圆弧始点坐标-圆心坐标值 9 h- d: d0 q- d  `& a" X4 m
      
9 A$ d7 h$ D2 C& z/ b: B5 a6 N      define format (I J K)   :定义I J K的矢量
( k6 z& D' @! ?  ?$ m$ z( I- X0 \        scale factor = -1  h- Q$ L8 L  E0 w6 B
      end define
: w8 V9 J% x; |3 w8 p5.定义左右刀具补偿
5 B! U! F5 e  F1 R& |" l: Q6 q      define codes                 
" y% `0 `% J( `; O5 R1 t      comp on left = G2 41( X! {$ ]! f% K- h! d- T
      comp on right = G2 426 K5 Q. p' w; F3 o) B
      comp off     = G2 40   
, l% F# j+ `* Z2 k- _8 p" w* c$ \      end define0 s$ v* @. @6 G, a
      % n2 n5 J  U) S( `6 t/ a' ?
#14 :从#14~#41为定义旋转轴的写法,如小数点的位数,+/-的输出等等, T  j' s% o" r% T7 p8 Q, v" W
      
9 o# X8 {( d" A  rdefine format ( A )9 |& {  ^, P: A3 I" O* m
  address letter = "A"
/ a/ ]) d$ ]" S# O- c# O  A  address width = 1
4 t  i& D, e1 L$ ^0 p$ g9 f8 g6 ^  field width = 8
' {$ K. V" G; C0 b2 N+ d: B! H  metric formats
! J1 z6 H* Q* J6 G, h  decimal places = 3
- L! X7 p8 f- t9 e  decimal point = true
7 k) B) I# ?: i+ n7 K* J4 G4 X  sign = if negative5 r6 o! Y) v+ E+ y* p' N0 H* b+ k2 y
  leading zeros = false
# w1 Y5 s4 Z  ]1 A* Y# V  trailing zeros = true
3 a7 i% u4 i1 yend define
6 a/ Y2 b8 `" f1 Y#26
4 N% S8 V% h- Z, p) R( g) a  word order = (+ A ) 9 s$ D9 [+ ^" X: ?0 D
#28
8 I6 i9 c1 m1 _6 [9 N        units = metric2 o3 ~9 \; r* v% X6 U% @" j
  message output = false( Z2 |/ L# m8 B! `
  spindle output = (2 0 0 0 )7 a- I) ^" |7 w+ O! j( ]1 c1 C
  coolant output = ( 1 2 )
9 {% K" Q4 B, c0 H#32' j) }0 d5 E2 {9 u: N0 S' e
define format ( C )
5 h  a. t# ?( h( e3 s" G  n  address letter = "C"
+ g- H5 ^+ `% \" D/ l4 L  address width = 1! q" N) @/ T" ~
  field width = 8. j4 {- b1 M) Y& `0 E! ^
  metric formats
+ T; Y% d8 J9 j" H' m  decimal places = 3; G6 z$ @% d$ |, Y; y' {$ p  @
  decimal point = true6 s5 T6 O8 R& @
  sign = if negative7 `5 \8 C' W2 n" A: O! c
  leading zeros = false 6 L, Z1 r2 s3 l8 s% s1 l
  trailing zeros = true
: @" a* T& F8 P& ^5 }/ Fend define
7 T# J" B3 T) t1 e#39( c9 j8 F8 Q( a6 ]6 k) v8 j( X/ e
  word order = (+ C )
% d, u. X. y' o) ?0 u! v. E# Q4 F#41- ^! f+ ^2 ~7 o' w- W5 n" x) c
        units = metric
5 g" p" i; C. U7 [% Y8 A9 J2 q4 G8 i  message output = false
- g. x- a( y9 d) U" p0 k1 ?: r, Z  spindle output = (2 0 0 0 )# ?9 _8 B( S! Z
  coolant output = ( 1 2 ). S  w8 |. f% H2 D8 p- R
2 l0 ], [4 Y2 k) P7 {! a& `
#33
# I; U# I; w  Y, k' i3 d0 C  define keys             :定义旋转轴名称% ^7 H- w3 T1 C2 W
  azimuth axis   = C
, d9 W9 a( F0 P* `; R: p2 e: G" m; x  elevation axis   = A7 h( C$ ~' ^2 N
  end define - M  `9 B* d7 i  [( _" L7 @
#38
/ u4 [. o6 b1 b& u- O  A  azimuth axis parameters = (0. 0. 0. 0. 0. 1. ): }  k9 b; d- N# \' M' F
  elevation axis parameters = (0. 0. 0. 1. 0. 0. )1 ?9 F# A6 x* ^0 f$ o# `
#41 1 [9 I) l, O9 G2 k- r9 a
    spindle azimuth rotation = true     :定义方位轴方式,true为主轴头式false为工作台式
. M- P7 |9 j7 |; I  spindle elevation rotation = true     :定义俯仰轴方式,true为主轴头式false为工作台式
6 j, P3 @4 W6 t% v' I$ |& @. {) K5 I: N#44: d/ v7 Y7 }- c( K) g, G' w5 N
      azimuth axis direction = positive       :定义方位轴用法,相对还是绝对* m+ Q# d2 [( B* E
    elevation axis direction = positive       :定义俯仰轴用法,相对还是绝对
+ ], h) [& l$ q3 g  n5 k#478 ]' Q: D* G8 @/ Z: @/ {( N
    azimuth axis units = degrees         :定义方位轴单位! C& n4 f& d+ R! H: }! y
  elevation axis units = degrees         :定义俯仰轴单位
$ W/ q- C' D& }, C9 e#50& p! m+ @" u! X6 O. g5 P/ ^
    azimuth axis parameters   = (     0     0     0     0     0     1 )     :定义方位轴参数9 Y  m' l. X* ~1 f: X
    azimuth centre         = (     0     0     0 )                   :定义方位轴圆心参数  U/ I* p; e" l' O! C5 {
    elevation axis parameters = (     0     0     0     1     0     0 )     :定义俯仰轴参数
' f& Q7 e' e. A    elevation centre       = (     0     0     0 )                   :定义俯仰轴圆心参数3 V' N( }; E% K) X4 }1 S& W
    pcs origin           = (     0     0     0     0     0     0 )     :定义旋转轴圆心
) b( R) {2 r/ {, ]* G4 s    linear axis limits       = ( -99999 999999 -99999 999999 -99999 999999 )     :定义线性轴范围
; e# c3 ^; p, E5 S/ R) U9 B$ j    rotary axis limits       = ( -99999 999999 -99999 999999   999     1 )     :定义旋转轴范围6 i. D! Q0 i9 {) O  S# f
    move safe angles       = (     0     0     0     0     0     0 )     :定义起始角度
6 T8 J& B) w  d    linearise multiaxis moves     = false     :定义机床是否支持线性多轴联动,false为支持true为不支持# k6 T& Y: J  p& b$ _% w5 O
    multiaxis coordinate transform = false     :定义机床是否支持多轴联动,false为支持true为不支持& ]( N9 m" [9 {9 P- r
    integer 3   = 1       :定义是否进行多轴处理      
' r: H. q7 Q/ k: p  J7 Y  k  c3 _    integer 9   = 5
2 @  p0 g0 D- v* g4 i    integer 22   = 12 ]3 `) ^( V; b0 k9 k+ T/ n: i4 k
    integer 23   = 1
0 ^! E1 T0 U! `% \/ [    integer 24   = 0
0 M0 C! `3 f: a    integer 25   = 0% _) w$ m* i$ v& G: M
    integer 28   = 1      
1 ?. t9 ~( G$ C2 P4 z- V    integer 38   = 0
$ ]# ~2 e+ x" T$ _* n0 H/ b    integer 40   = 10 / F/ m' ~, T, f6 E
    block start   = 1
7 o  u- d( m( R1 U! U    block increment = 1     + G! k5 O4 |/ k  M- g. n
maximum feedrate = 16000.0         :定义最大进给量
9 V' a6 N6 F4 p+ Icomp output   = (1 1 1 2)
. W( {+ e5 N' Z; r& Imessage output = false           :定义是否输出信息,false为不输出true为输出/ ^  V' V! l6 f! T0 Z8 K
block order = true
( x. S$ M$ d# t6 jdefine block tape start
# E$ U& `3 F' I% A# X4 K+ qend define
/ q, \" P3 K; Y" j% D) zdefine block tool change first clear :定义程序头和换刀及换刀后的第一个动作 # a8 |& \  Q; V% ]1 |+ _1 D
"T1 M6 D1". P- z7 g( y6 B8 ]
"TRAORI(1)"
& _" @5 s6 D2 I4 w* F8 Z"HSM"
7 \4 G5 C( O; ^+ w9 E4 HS ToolSpeed ; M1 3
8 C+ ^! r4 M, P9 ZG6 54
3 x2 k. {: z5 P# j6 TG5 90 ; G1 0 ; Z FromZ8 @; F# `2 ]9 v- z+ Y
G5 90 ; G1 0 ; X FromX ; Y FromY
" W0 O* x! o; b0 [! |3 dend define
' o% ^/ L+ }1 v( {; |$ Z" x8 Bdefine block move rapid             :定义快速移动
$ U: r# t$ \3 F1 m: h& [) MG1 ; X ; Y ; Z ; A ; C# t8 y9 q; n/ R9 x2 i
end define# f8 O: p' N. K" ^  O
define block move circle
7 P+ K" ^* J5 i' t  EG1 ; G2 ; X ; Y ; Z ; I ; J ; K ; D ; A ; C ; F ; M2   :定义线圆弧移动
1 f. N, i% N. Jend define' s* b0 |: X% @) R
define block move linear; P1 E; D" k* K
G1 ; G2 ; X ; Y ; Z ; D ; A ; C ; F ; M2           :定义线性移动方式 & d4 G$ ]7 g8 U- n
end define
9 w" ]/ M: |8 g. u5 adefine block tape end                         :定义程序尾
* L' A0 X9 x9 h5 h2 \"M5 M9": c) c# P7 j% ]0 y# e
"M30"! R; B2 k3 K- k0 g" D) J
end define% C* @$ f" T$ S9 H4 i( o5 t% G( Q  E
end       , r( s4 r, N9 R: |  S& K3 U
      1 s( I2 S; h2 c) M* ^$ p
所以这个就要看你机床格式来具体设置了,修改以下值为你所需:      
7 c: a0 c! A2 z" `, a      incremental centre = true (相对,反之false绝对)       ; A  f* t. m8 _) K/ Z
相对有两种,所以:      
  e1 ]) N" u2 R      scale factor = 1 或 -1     : v4 u! [6 s8 j, a0 q" \
另外有些机床不能输出360度的圆弧,这时需要将其分为几段输出:
* H+ p# q7 b$ M; E& ]6 ~& }        full circle = false ( U: D% Q$ s8 W4 ~0 g
5、换刀的格式:
, K) x5 W* U0 }& q; w6 H/ l如:       : }9 F3 Q5 L5 E3 Y& w
        define block tool change first
& Q, s+ t3 n$ Q" Z8 m3 Y9 M7 {          N ; OP ; change tool ; T ToolNum
8 i+ }4 n, f  S0 F! y          N ; "G48"
) R& Z* E4 y. {1 m1 {" e          N ; G1 0 ; Z FromZ
6 z& \1 b" m$ b* i. o7 F        end define
) U9 |4 j6 m; ]- \+ V) T0 u    ' \/ V# P, x: t& x4 @; O
      里面可自己添加你的机床换刀时所需的代码,如打开刀具长度补偿。
6 \9 U6 f2 x  U3 G  J" l   
; C: [  ~/ P) Y+ i6、快速运动、直线运动、圆弧运动的代码: 2 p6 }5 W$ \! p. {  S" W2 \( B
9 s# W5 }5 y8 t
  参见:
; D* j: L( o/ U& w0 Y1 \      define block move circle 3 F: N$ q$ |1 m) l* H
          N ; G1 ; G2 ; G3 ; X ; Y ; Z ; I ; J ; K ; F ; D % H) q2 Y) K3 l
      end define
( F/ g! f1 @& B. L. k! y4 ]  Q4 q2 _3 s0 Q
      define block move linear ! N4 z2 _9 B  D8 o( L8 V; m
          N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; ; T ; S ;
; J3 a" A, V! }        M1 ; M2
/ Q2 ^2 d- {* N2 v      end define
4 }/ G% o2 l0 l$ ~- v& p' X+ ~" c9 Q1 l" S5 {
      define block move rapid * J6 l. o8 G& a7 ?$ V; q2 r
          N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; T ; S ;
2 ~  R: w/ s2 s  o        M1 ; M2 ( ^$ |; B0 s; u( G( _
      end define
' k, q  G: a  w6 Q" h6 A
8 }# n0 F  L) v2 T1 x        你也可在帮助文件的指引下,修改上面的代码,如:不想要每次输出G17之类,可以删掉G3。。。当然修改前要了解清楚该代码是做什么的,另外注意备份,随时恢复。
% V9 A4 V2 a  a0 j) v7 I  
6 J: {" ~* C; a/ H2 U# `7、多轴: : j- c& i* p% @- m2 W
          6 U; B* X4 C: ]/ f. X9 h
      PM 这点做的非常好,如4轴的几种方式、5轴的几种方式都有代码可参考。如:在X轴加一个圆盘A,只需添加、修改以下几行:     
/ \9 z, L2 N6 b/ i9 a
: j4 s6 n( J! }+ Q8 H: F        Fourth rotary table axis :- ( A. rotating about X. )
. u3 o9 k- z4 f  D, p! o+ U8 P/ L: w9 \8 g8 d* f
        define format ( A ) # j8 N5 H% n. ^# J# w* R
          decimal point = true ' _0 q0 f, Y) P: r9 A, @: V
          decimal places = 3
  H# {: n9 y( D        end define ' I' S$ S4 N" R# f# g, G

4 W5 d/ C6 k8 ?# S        word order = ( + A )
1 `9 m; U6 I9 B, t8 D
) I6 L, o, u  e1 X+ w9 X9 B$ `0 G3 L        define keys 7 \1 N5 A6 G/ w3 ^/ m  H0 Z  V
            azimuth axis not used
6 c6 L  S8 d3 p7 s) t8 z1 z8 x            elevation axis = A $ M8 t7 l$ Q& d! x, i8 ]
        end define
8 J5 p" O3 w9 L% \# ?7 z
$ l9 f$ Q: p& ?" K. L# V        spindle elevation rotation = false ## Default
; l4 t; W4 M) S' G) d! U- s        elevation units = degrees - S$ V0 I1 |- e# a, E4 R7 U
        elevation axis direction = positive + R2 s. a$ b0 D# `0 l, Z9 d
. f% ]7 g5 K. y# T
        azimuth axis parameters = ( 0. 0. 0. 0. 0. 0. )
% l% }  _0 {5 K, w+ f0 V        elevation axis parameters = ( 0. 0. 0. 1. 0. 0. )
4 w" R/ }3 ]" p6 q; Q! E/ I0 ~7 e/ _% S; ]2 C) F
        define block move rapid : C7 Y6 B; C% q4 ]+ p3 \) a
            N ; G1 ; G2 ; G3 ; G6 ; X ; Y ; Z ; A ; H ; M1 ; M2 ! g  S$ {& H; F& k8 i5 j
        end define
  ^1 `2 I  O% V! y  b" Y0 o4 ]( X3 ^1 h/ ]+ o
        define block move linear
6 C- K$ `- x; ~. z. l; n' |            N ; G1 ; G2 ; X ; Y ; Z ; A ; F ; M1 ; M2 . Z7 ?( l# w$ g# F+ E* ]) Q/ Z
        end define
2 c1 G3 W( N7 t* @3 Y' p+ v8 W3 q. \/ c( ^' O/ P$ e* K; ^
具体可参见ductpost/multex4.html页及5 轴的帮助页。。。4 B$ r% k% x% r" h4 M1 \, [. O
        4 O# U4 T, q- U% p
注:总结,多轴后处理的写法,如有错误遗漏处欢迎批评指教。) ~+ @3 s0 d+ t  k6 c
  
( y' T" W  h0 O8 |  b我还要强调一下五轴的后处理改写一定要小心再小心。希望大家多多交流,共同学习进步。' \5 f# H! R3 O: J" k0 Y
发表于 2012-12-14 12:34 来自手机 | 显示全部楼层
哈哈,是沙发啊,谢谢你了楼主。大家一起进步吧
回复 支持 反对

使用道具 举报

发表于 2014-1-1 02:29 | 显示全部楼层
看了LZ的帖子,我只想说一句很好很强大!
回复 支持 反对

使用道具 举报

发表于 2014-1-1 02:30 | 显示全部楼层
学了一些很必要的东西,谢谢楼主
回复 支持 反对

使用道具 举报

发表于 2014-1-7 13:19 | 显示全部楼层
哥顶的不是帖子,是寂寞!
回复 支持 反对

使用道具 举报

发表于 2014-1-18 16:24 | 显示全部楼层
什么文件?在那找到呀
回复 支持 反对

使用道具 举报

发表于 2014-6-9 13:23 | 显示全部楼层
我是UG爱好者,看了LZ的帖子,我只想说一句楼上的贴很好!UG论坛好强大!
回复 支持 反对

使用道具 举报

发表于 2014-10-16 13:08 | 显示全部楼层
可以非常好。
回复 支持 反对

使用道具 举报

发表于 2014-10-23 21:12 | 显示全部楼层
你轴向、径向余量该如何设置呢,亲爱的..............
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-6-16 01:09 , Processed in 0.089989 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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