青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

后处理修改帮助

[复制链接]
发表于 2012-7-31 14:15 | 显示全部楼层 |阅读模式
后处理修改帮助# [( w- _. W" H3 w# N) d
    一、PM 自带的后处理中有适合自己机床要求的,不过要修改、增删些代码。
0 Z4 @' b) ?9 o! c* s' {- ?1 M: u: I# P    二、没有适合的,需要改写后处理。 . l" |# F1 V. G) k7 R
    三、机床的代码格式完全与普通 G 代码格式不同,需建全新的后处理。 " H; ^8 e+ }+ t% N; O- `0 F% m6 s

( F0 P) @: H8 ~; [, B  E8 D现在开始准备工作:
" v* N& [$ q3 P5 z& [; w4 b  $ b; z7 }! U) n+ N' T: g: `; `6 x, ]
    1、以不同的控制器试着处理几个G代码文件出来,然后和自己机床的代码进行比较,选一个最接近自己的。   - ~3 f3 |$ x8 U7 {; i* Q- W, X
    2、打开ductpost\dp-index.html,准备有问题就看帮助。       6 w/ R: M( ^! y3 }
    3、运行:ductpost -w [控制器类型] > [控制器类型].opt ,从而生成OPT文件,这个选最接近你机床的控制器。如:ductpost -w hurco > hurco.opt 。 这时就可以用文本编辑器来打开这个opt文件了: + v* P' j5 r2 S+ u& L" N

5 ^; y5 ~7 d3 o" X4 h  `. A! C1、程序头、程序尾的改写:
: Y) ~, C$ |% U- ]6 m2 e2 J这个在以下的定义里面:
" B; M4 ]; E; x1 X; I          define block tape start
# a! e( [" J; x7 V0 K$ ]; {          ********************
- X: i' C, a' {# i, D          end define
$ f; \$ d1 v- Y1 @1 h9 G1 ?          define block tape end
! o# T8 ~; ?9 l+ I) P          ******************* 9 U0 O% f' O" ]& v
          end define ) W3 m# I0 M+ |, _" q

& O; r! K2 i  K! t8 L- _3 Z你可以根据自己的需要添加,如: 4 N0 i/ Q1 o. |# T1 }" o
9 |- P1 U9 d1 O& k% `3 C! Z" a
        define block tape start   w% N+ |9 j% k# [
          "%" ! K3 E  q* \; U& L
          N ; "G17G90G80G40G49"
+ O: B+ c  ?* |# E3 b; ]0 z- o: ?- J! B        end define
2 p6 ?3 L7 E! U& }7 i; w8 E  @
& M# j- U1 p- Y        define block tape end 4 q& m; |3 H9 Q# k* x* [, M
          N ; "M05"
3 x" |: f# _+ K, C          N ; "M30" 6 M' q" U; ]3 m# }" R7 Z/ P0 v
      end define 2 O  p( U2 K/ m) r) k: q: Z
    3 C0 W/ X5 K( G8 R5 w& E% C* k
不过注意这种引号方法优点是简单明了,但控制器只是把它当字符处理,而不能以模态存在,具体可参见其它说明。
% v- U. k$ q* T5 ?
. M& b& Q, x* H: C2、是否需要N行号?
3 h, l( R, N3 P0 ^: Y! r2 R' `        %
5 r: ^" m. W9 B4 Z- A9 d) _* G        :0001 ) I& F4 w0 p6 s  ]4 u/ u) X9 r
        N10G28G91X0Y0Z0   q. x  h1 @3 C8 y; e" P$ l
        N30T1M6 1 r9 B; `% h! |& Z( Z
        N40G0G90X-25.Y-40.S800 M3 6 M7 I' x3 Q6 u8 r- x/ }4 z
   
2 p- o. K% L+ L7 P- p$ U如这上面的N10、N30、N40,另外行号的起始、增量、最大都可以定义。如果不想要行号,可修改为以下值: 7 v: W1 g/ \8 [
                  define format ( N )
4 J! ]& F- }0 I' J- X+ `                      not permanent ) N, B2 h4 }+ ~& P9 _
                  end define
9 K! k3 F* q" X, O( h9 W% u0 U
. Y" g/ k% _/ I. t' K; O3、是否需要Message?
1 O, q9 I  u7 \, F( |0 q2 K3 |, P) R% j) T$ }6 k! U' `& U
      N60( MSG, Toolpath Name: ET)
6 K% K: C; ^2 Q! z' _0 ^; P6 q6 }" Q      N70( MSG, xyzxyz_cut_1 ET)
, l$ X. O; v6 M( [. Y$ u+ n. f      N80( MSG, Output: ET)
; ~4 ?( J7 H  }" P# w. |      N90( MSG, UNITS: MILLIMETRES ET) " x2 e8 d. ]2 b+ [; d* q6 [. C7 \
      N100( MSG, TOOL COORDINATES: TIP ET) 1 b* L. }' M1 i' [) S
      N110( MSG, LOAD TOOL ET)
! }3 O- Q: p, J/ v
2 O4 Z- f4 S0 ]+ u上面的信息,可修改为你需要的,具体参见帮助。也可选择不输出,如: 6 v5 d8 \8 N: A( y* C  N5 P
    & M2 L. L! T" u  Q* {
      message output = false 7 T* V- _6 t3 B9 F5 W
# E' P/ M1 h/ W8 d
4、圆弧的输出格式:
- a( ^% m. @) U, r      
# z3 \6 W% N+ b2 ]0 R这个需要讲一下,输出R的就不讲了,专讲I、J、K的输出。大致有三大类: * w2 a5 o8 Q  ]& h# R6 @
   
" Q5 f% _9 J  E/ Y! q      a、I、J输出为圆心的绝对坐标值。   $ S  c3 P" A' q9 _- O8 B
      b、I、J输出为相对坐标值,具体值为:圆心坐标值-圆弧始点坐标(常用)     8 a: ^7 W3 ?, T2 B1 x3 n& C
      c、I、J输出为相对坐标值,具体值为:圆弧始点坐标-圆心坐标值
7 |2 Q% P( Z- S8 E4 T      
8 |1 L6 D7 y7 A% ^$ z- _      define format (I J K)   :定义I J K的矢量0 H  I, |% y! x7 s2 D, h! w( E
        scale factor = -1- i) t7 o& D4 f, J$ A
      end define
; b7 b1 b8 F$ U: G4 t3 H5.定义左右刀具补偿" s7 Z& |0 R6 O* X1 E
      define codes                 - C4 ]% {2 X) ^% Q% D1 v
      comp on left = G2 41- ?" B7 A9 a" I3 U+ i
      comp on right = G2 427 u9 h, V# x1 t8 z
      comp off     = G2 40   & n: {9 ]* P( `9 ~
      end define$ E0 p' i5 o7 R( Y. N1 m  I3 Q
      1 s- j* x" p3 o7 r& H, t& H
#14 :从#14~#41为定义旋转轴的写法,如小数点的位数,+/-的输出等等: T1 @, u# @1 t
      3 _; c# I/ l7 ^7 }( E% N
define format ( A )
+ @  j  t4 Q2 t; ~  address letter = "A"  A5 k4 l! K( |- c9 G# n7 t
  address width = 1$ M4 w+ u' G" e( }
  field width = 8
" T7 W; f+ G0 g; K0 a" y  metric formats* ?  r+ w7 Q2 p! S5 i1 o
  decimal places = 3
% y' ]% x0 c& [4 a. B& {  decimal point = true
' A  k6 d% T  x$ A6 z  sign = if negative
2 R* s7 u# Z1 q4 e$ l" D6 F: z7 ]2 ^  leading zeros = false 5 k) a9 u) `# M+ c( X5 v
  trailing zeros = true$ {" u0 J% T- v2 Y$ a8 X
end define  ?7 u. W+ @0 f# O# z9 o
#26
9 B: }$ ]5 M/ v+ r+ `  word order = (+ A )
) T) T. X8 ?; Z5 z  j1 b, C#284 s* {* m9 J2 h& C$ H
        units = metric
* G% G9 }4 X4 x# Y1 w/ i0 u  message output = false6 c# @2 r' k4 L/ z$ V  i, ]3 I5 T
  spindle output = (2 0 0 0 )
5 w5 M+ Y) u- `3 w" U& r, @  coolant output = ( 1 2 )/ |  _- i6 R: {- v$ a. U- h7 K
#32
# @9 x. b( c0 B6 }8 k' _define format ( C )
  P# w5 a& Z, X' z  address letter = "C"
: N$ O. |  L8 F% b) @$ @  address width = 1
: w; z2 S' r1 S$ G  field width = 8% B1 g% g2 I" Y9 K9 R1 o2 ~
  metric formats" N0 f+ v" v# t* O& p' H
  decimal places = 3
4 E+ P7 k) u% U% Y/ \$ N  decimal point = true' }$ u! A$ C/ k& ^
  sign = if negative
1 O/ D" w" K- j- A  leading zeros = false 0 O& r0 _. q* S9 C6 ~' p
  trailing zeros = true
6 d+ w' x% ^4 E' \" A) fend define/ P6 s, c8 o8 }7 y/ q
#394 F7 ~, M  Y2 O! C
  word order = (+ C ) ' A: m+ A) ?. i+ J3 C6 p
#415 K. t# j2 y; I. @+ J3 s- c
        units = metric2 V) W% O9 Y; m$ M" ?
  message output = false- J, W2 x" g" ^( k
  spindle output = (2 0 0 0 )
& _7 P$ _& F2 `1 R" H/ @, V  coolant output = ( 1 2 )
+ B9 Z. ]( l) ~7 e$ Q; P' L* v1 V/ w2 J3 g9 Z; w4 C
#33
" V4 J! {' c% z  define keys             :定义旋转轴名称
! Z1 I+ p( X* D8 U  azimuth axis   = C
# ~8 I2 C, l8 e# d4 N  elevation axis   = A7 R. X& j8 H  n& W4 N7 R  Z( X
  end define
- a0 Y) v# q$ M+ T6 c2 `) s" ~( A#38 $ I7 b9 g, v8 t2 U& [
  azimuth axis parameters = (0. 0. 0. 0. 0. 1. )+ r- G) h) r2 q0 w$ @
  elevation axis parameters = (0. 0. 0. 1. 0. 0. )( D. r# G: X5 v1 b6 D& g
#41 ' n3 H: _; C9 N% k: X0 K; L
    spindle azimuth rotation = true     :定义方位轴方式,true为主轴头式false为工作台式: R% w) N5 i$ m% q
  spindle elevation rotation = true     :定义俯仰轴方式,true为主轴头式false为工作台式
" c: g0 Q' c3 ~$ d1 ^) b#44
2 V$ [2 y7 j4 W5 v      azimuth axis direction = positive       :定义方位轴用法,相对还是绝对
  J/ f" S$ }) g9 Z" D# p8 I8 w1 _    elevation axis direction = positive       :定义俯仰轴用法,相对还是绝对
2 G1 L* e, K; ^' W6 Q+ _8 Z#477 w/ B. q; V7 i
    azimuth axis units = degrees         :定义方位轴单位" y, A( a/ t# Q4 n0 d
  elevation axis units = degrees         :定义俯仰轴单位
, g9 y( Z/ f' V1 K  o' W4 T#506 A, z7 D3 w% o: D. {
    azimuth axis parameters   = (     0     0     0     0     0     1 )     :定义方位轴参数0 O, ^3 B3 D' E5 u6 U
    azimuth centre         = (     0     0     0 )                   :定义方位轴圆心参数1 ?$ i$ o1 }: l# o* H( r0 [/ g
    elevation axis parameters = (     0     0     0     1     0     0 )     :定义俯仰轴参数4 G( X) N4 z, `7 ^
    elevation centre       = (     0     0     0 )                   :定义俯仰轴圆心参数( X" h  L- I# M, f2 U5 B9 F
    pcs origin           = (     0     0     0     0     0     0 )     :定义旋转轴圆心/ a) l! L. l' _( \2 j: F8 C6 I
    linear axis limits       = ( -99999 999999 -99999 999999 -99999 999999 )     :定义线性轴范围  P- m7 h: t$ P$ h  T  u) W
    rotary axis limits       = ( -99999 999999 -99999 999999   999     1 )     :定义旋转轴范围# j- F) u# `$ a8 n# e
    move safe angles       = (     0     0     0     0     0     0 )     :定义起始角度* [: o6 B$ {7 @$ H! [
    linearise multiaxis moves     = false     :定义机床是否支持线性多轴联动,false为支持true为不支持
1 ]8 l- {2 H  R+ N# j    multiaxis coordinate transform = false     :定义机床是否支持多轴联动,false为支持true为不支持  l' p3 f/ q& ?2 j& g
    integer 3   = 1       :定义是否进行多轴处理      
* Q* A; r, M: N1 j3 c# o% n# b" C    integer 9   = 50 S" m8 a7 ]  O2 q' J0 S+ `
    integer 22   = 1" n0 G1 s6 N- n2 ~4 [+ r
    integer 23   = 1
/ E5 ], [, c' ~: U7 l2 s4 z1 P    integer 24   = 0. Q9 m5 |% v. Y
    integer 25   = 0
6 ~) {( n, e6 p2 f" G* m1 y    integer 28   = 1       2 N, D  }( k, x6 U6 `
    integer 38   = 01 S" A& r0 X$ u' H7 l/ L+ f
    integer 40   = 10 . c( W+ ~& K- i' f+ x+ X
    block start   = 1
- \/ y! b1 q7 I/ e! c    block increment = 1     
- [7 _! \; O  ?. [maximum feedrate = 16000.0         :定义最大进给量
8 v8 F* o# @! t* T1 xcomp output   = (1 1 1 2)$ N9 K. ]3 Y. s! y$ ]
message output = false           :定义是否输出信息,false为不输出true为输出
5 R  N4 W0 K3 `! cblock order = true/ B; T0 g' x  h+ K  B: k
define block tape start
( B$ g+ D& a8 v/ nend define1 ?0 f7 V! s& x9 O
define block tool change first clear :定义程序头和换刀及换刀后的第一个动作
4 W7 e6 m9 }7 P8 C3 M! D"T1 M6 D1"
9 C  r; V" x9 d* |( s"TRAORI(1)"
& G0 ~/ I, J) [5 e"HSM"
) Z- f4 B) e4 E' i& x! k& fS ToolSpeed ; M1 3! E( t0 D  K% n1 j. O, v/ e9 n
G6 54
% o1 l! \( b6 A  @G5 90 ; G1 0 ; Z FromZ- u  J2 B9 U8 ^$ ]5 ~, l
G5 90 ; G1 0 ; X FromX ; Y FromY/ J- s3 i$ F* v& T, W
end define
: v9 ^1 w: x9 x$ q5 @6 E( ^4 wdefine block move rapid             :定义快速移动
& ?1 R5 J4 e6 Q. i8 FG1 ; X ; Y ; Z ; A ; C0 I2 X' i' T4 A
end define& O* k$ P. U6 @3 }+ S6 t; z
define block move circle, m& v2 r$ C* j  ]
G1 ; G2 ; X ; Y ; Z ; I ; J ; K ; D ; A ; C ; F ; M2   :定义线圆弧移动
1 g: @9 M! s5 }" [3 Vend define5 g8 L" @- K: v1 p
define block move linear7 D7 L% Z+ V$ g( j! Z3 N+ u7 Y/ ^2 W
G1 ; G2 ; X ; Y ; Z ; D ; A ; C ; F ; M2           :定义线性移动方式 9 F9 z; S6 c; y/ L- K* A
end define! O, ]% G' b" @' m
define block tape end                         :定义程序尾
$ b& n, s# w- D" X$ S, G6 J"M5 M9"
6 p+ \7 P+ V/ V* G7 x2 h"M30"
' i0 |2 i  _3 Cend define2 f) z" Z' X  w$ r2 e. R' v
end       ( v0 Y, x5 T: l2 p
      
. G$ {2 @+ Y- h" E* k  }所以这个就要看你机床格式来具体设置了,修改以下值为你所需:      
# {" _$ |* D. Q- X8 a7 L$ t      incremental centre = true (相对,反之false绝对)      
1 C3 W7 V5 u0 F5 p, S/ b( M' Y相对有两种,所以:      
; h! F/ K4 g. a' v) ~      scale factor = 1 或 -1     . b3 G: |; T! l3 `) v* {: v
另外有些机床不能输出360度的圆弧,这时需要将其分为几段输出: 8 J: Y- e" G7 N! d- {$ m
        full circle = false
2 W) G; {  i1 S2 a5、换刀的格式:
& a" T; E, t/ X6 q" d如:      
/ N  F) g- \% {0 ~: u$ U  T        define block tool change first
: J9 k9 v" D, D' s          N ; OP ; change tool ; T ToolNum
( W/ C$ m6 p" u5 B6 A; D          N ; "G48" 5 H/ Y# E  u8 f+ e5 G  x
          N ; G1 0 ; Z FromZ
0 I" [9 x- E: T6 q3 R( l        end define
5 L* y5 U. H1 g; `   
2 ]% q! P# m5 d; d! O      里面可自己添加你的机床换刀时所需的代码,如打开刀具长度补偿。
$ n9 S" r; h0 F1 T   
9 _/ ^. B& ~! _! a6、快速运动、直线运动、圆弧运动的代码:
& z0 [. [' K7 `$ H6 B2 U! I8 I$ L1 i9 \6 E- s- H- W4 i
  参见:
+ S/ V4 Q) T$ z3 C" Q      define block move circle
3 H% G5 x5 j0 c( f" c          N ; G1 ; G2 ; G3 ; X ; Y ; Z ; I ; J ; K ; F ; D
) _2 s* H: h: d1 J6 _      end define
  `4 p0 `# t) P- v* J* {+ u- ?4 p! m% G0 G: ]
      define block move linear
: G$ @* `. U4 Z8 c' C( [& V& h" ]          N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; ; T ; S ;
  E: `+ L/ O$ e- M& ^8 j' X7 h        M1 ; M2 3 k8 i9 U6 Y8 R6 t
      end define   o- p, s" u, G0 K) a5 j3 J
1 m+ P' x; [/ Z  z& {5 t/ c
      define block move rapid
; K  _+ V4 X- D. |7 V- R, w          N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; T ; S ;
" w5 ?0 x5 A$ o7 s! g* A3 [; G0 y3 x        M1 ; M2 9 Q& _: i  S3 j: i7 C
      end define 5 @. y3 t* g7 y3 g% h- x
3 d  B5 D4 D% S% q/ h/ N
        你也可在帮助文件的指引下,修改上面的代码,如:不想要每次输出G17之类,可以删掉G3。。。当然修改前要了解清楚该代码是做什么的,另外注意备份,随时恢复。 ; {8 D/ A- m0 m( h
  ; W: p5 t3 x/ t$ U2 i! n
7、多轴: % C* s6 J3 j( ~
         
3 m1 C7 Q& V# M      PM 这点做的非常好,如4轴的几种方式、5轴的几种方式都有代码可参考。如:在X轴加一个圆盘A,只需添加、修改以下几行:     
; e9 y, Q; w1 c' M$ D
0 r$ Q* {5 O6 p8 m, \  o; C        Fourth rotary table axis :- ( A. rotating about X. )
' l; I; e# f3 ^- E. H# a! g% E7 T2 S; d9 ?8 F
        define format ( A )
" }* f" a: E5 J9 O3 z- E          decimal point = true
& s9 x5 ]; S) g  Z          decimal places = 3
) q  O" Z! i% F0 R        end define : `% J$ v4 K4 O8 }* e0 ]# p9 B$ J$ p

& N* A$ X/ i% ~9 i& @" @3 Q        word order = ( + A )
2 l. v+ Z1 R, N# l8 A: T9 e1 c+ I, D0 B. C7 Z9 @
        define keys
' s( _2 H3 s1 c# g" u$ S' e0 M6 G            azimuth axis not used 0 K/ z/ `: x- C
            elevation axis = A
; ^8 c  Q" v9 M: R* L8 w( D        end define 1 u$ R! T4 P9 f- g9 `$ _; w
2 C% T6 |& `" F9 G" h
        spindle elevation rotation = false ## Default
) Y9 ]! l3 G: h" }        elevation units = degrees 4 A  h$ W, l9 o% O  j2 \, e
        elevation axis direction = positive $ |! L5 v( Y8 W: m* t" g+ B

/ P: j% c5 D" x4 ~  m! [/ W# n9 X        azimuth axis parameters = ( 0. 0. 0. 0. 0. 0. ) 7 n# A4 l/ v) _2 L8 P3 H( C: V
        elevation axis parameters = ( 0. 0. 0. 1. 0. 0. )
  k7 i& }% r, C% o
) X0 C- Z; s7 J/ M3 ]) x% {        define block move rapid 5 _3 K# c- u' U4 w0 J
            N ; G1 ; G2 ; G3 ; G6 ; X ; Y ; Z ; A ; H ; M1 ; M2
4 E2 h8 h' P: U! v$ M7 m        end define # K. |0 Q  C  K; d* e8 l0 |9 v% k
' Y7 F4 I) F# S. N1 U- a  s+ W
        define block move linear
% b4 ~+ t& V/ k( u4 S& w" L. `9 u            N ; G1 ; G2 ; X ; Y ; Z ; A ; F ; M1 ; M2
3 u+ F$ w8 w$ L5 u        end define + W% N- b4 x+ U

- Q% o& y7 i8 Q  W' o/ T4 j2 l5 y( |具体可参见ductpost/multex4.html页及5 轴的帮助页。。。
) L& d! Z; I" `( Z9 f( g/ d2 R        " T( g2 V' P* c, m% p" }
注:总结,多轴后处理的写法,如有错误遗漏处欢迎批评指教。/ L6 _( q- P* f7 b: A( D- B8 s- Y
  
7 Q' V: [; u+ n( X' h我还要强调一下五轴的后处理改写一定要小心再小心。希望大家多多交流,共同学习进步。1 {, h* m, I* N0 n' _8 z
发表于 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-7-26 21:38 , Processed in 0.203942 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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