青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

后处理修改帮助

[复制链接]
发表于 2012-7-31 14:15 | 显示全部楼层 |阅读模式
后处理修改帮助' D+ ^+ x& ~. v
    一、PM 自带的后处理中有适合自己机床要求的,不过要修改、增删些代码。
7 h: P7 B5 N! g0 I6 C    二、没有适合的,需要改写后处理。 6 i' r1 C% |( k
    三、机床的代码格式完全与普通 G 代码格式不同,需建全新的后处理。
$ Y7 H( Q! {3 Q3 V' f
  H9 J# j0 v% `! k, |现在开始准备工作: ) ^. g( L0 b9 q+ I! q
  ( d. }5 M* V4 K3 i+ |
    1、以不同的控制器试着处理几个G代码文件出来,然后和自己机床的代码进行比较,选一个最接近自己的。   
: b) m' T4 s$ ^- l3 K    2、打开ductpost\dp-index.html,准备有问题就看帮助。       ( k  B* X% d" _, [  U- b2 D
    3、运行:ductpost -w [控制器类型] > [控制器类型].opt ,从而生成OPT文件,这个选最接近你机床的控制器。如:ductpost -w hurco > hurco.opt 。 这时就可以用文本编辑器来打开这个opt文件了:
( g! c) m) {3 e" x2 w- O! c
- D) y6 z, d9 b) x# P: d' n4 y/ z- Y1、程序头、程序尾的改写: 8 M$ q, [3 Q+ c& d
这个在以下的定义里面: 5 o6 {) ?" ^: j& }
          define block tape start 5 M! A) `$ y  [6 l
          ********************
9 |/ m7 J9 Y- d, w- k          end define " z: r; p0 X7 S! A
          define block tape end
7 C/ M; ]! N$ K6 @: r8 e% ^          ******************* 9 f1 C; N. y8 Q- d
          end define 3 I2 Y; F& k4 ]" ^5 a

" }- t" j4 J% s/ P你可以根据自己的需要添加,如: ) o  d* T! F: Z) A

) L+ Q( U' r/ W1 B0 B        define block tape start % S0 ]1 |  S  P# C
          "%"
8 c  b6 a( E$ v. r) d0 D, l          N ; "G17G90G80G40G49"
' C; K* P5 L/ ], {( M        end define / Q- W* H# P; x3 k5 B* T; w8 ]

/ R& u) T# X* I5 G4 G4 j        define block tape end - ~6 Z1 k9 U! z3 }
          N ; "M05" 9 T: q- ~3 o; a. R
          N ; "M30" - ?2 q* D4 ^9 D7 f
      end define ; Y# x$ b# A5 i! [$ _8 T
    : r. V+ @" ?/ d' y- G/ }
不过注意这种引号方法优点是简单明了,但控制器只是把它当字符处理,而不能以模态存在,具体可参见其它说明。 - Q9 P* D2 o6 e# y0 i; {

; \  ^3 X! K/ W' n2、是否需要N行号?
- Q) D& W& ?. p3 O- s        %
. t$ }5 c9 b1 A6 o6 Y; b        :0001 ) S4 S0 A* z" b1 k
        N10G28G91X0Y0Z0 . ^4 M+ P" Z9 d
        N30T1M6
% b0 F+ R0 R2 W$ f; v        N40G0G90X-25.Y-40.S800 M3
' t6 P! |' @' |7 s   
% z1 B2 Y3 q+ z7 C如这上面的N10、N30、N40,另外行号的起始、增量、最大都可以定义。如果不想要行号,可修改为以下值: . a4 {* Z: q! h9 n  Y  V& Z
                  define format ( N ) 7 Q5 B" F: [$ c7 ~" f) H
                      not permanent 3 N1 V) S# ?) I
                  end define & \9 D2 l; [0 Z* Y. G* [
2 C. B8 S7 B' g9 A4 m! b3 p  {2 u
3、是否需要Message?
. a% D# j8 c* @; q7 B$ p, `+ s* |& h: P7 b
      N60( MSG, Toolpath Name: ET)
2 ]  W$ L- W) ]8 S3 }  Y) r      N70( MSG, xyzxyz_cut_1 ET) * C7 q$ g; g& ~9 _- j
      N80( MSG, Output: ET)
2 `- a0 c& K+ Q) L% u      N90( MSG, UNITS: MILLIMETRES ET)
9 f! z6 Z: Q# a7 f' w9 D- ?4 d      N100( MSG, TOOL COORDINATES: TIP ET)
$ A/ f& P" M* H% p3 e9 G      N110( MSG, LOAD TOOL ET) 2 @$ _6 f8 }' N. d$ {8 X4 ^

: o% v6 R7 f- h$ A- E0 L' i上面的信息,可修改为你需要的,具体参见帮助。也可选择不输出,如:
  x' }2 k: C; j+ l$ U* J+ y   
- I4 @* p% s8 h+ y3 y& A      message output = false ) Z; Z. w4 s5 K5 r. a3 y

' h& D; F) U" E3 T4、圆弧的输出格式:   @: N6 b- U8 N- S
      9 s1 o. |) m/ a- ]0 |# K
这个需要讲一下,输出R的就不讲了,专讲I、J、K的输出。大致有三大类: " @4 ^3 Y8 B4 H0 o: ]: E4 f+ t
    0 J: k- p! g8 C/ B3 Y- [
      a、I、J输出为圆心的绝对坐标值。     Q- k, R  X& t( o9 s" V
      b、I、J输出为相对坐标值,具体值为:圆心坐标值-圆弧始点坐标(常用)     0 e# P1 Z! j# g9 Z) `* C1 _0 m) ]
      c、I、J输出为相对坐标值,具体值为:圆弧始点坐标-圆心坐标值 ) B) U2 ^9 g9 }' ^$ N
      
/ E) O, u1 f6 [) x# x1 h" Y      define format (I J K)   :定义I J K的矢量
# T" C, |6 n( h) \& z  @- i        scale factor = -1
8 T  x: S. b% Y  d/ n7 {      end define
9 I2 r1 C, T5 `  [) M5.定义左右刀具补偿
# g# \6 ]6 Z# K6 d) P) d, m      define codes                 # R# o: Y0 Z6 i% L
      comp on left = G2 41# J" |; p; p' E7 f- `4 w/ J
      comp on right = G2 42
+ w, b$ T2 p5 M5 x4 V2 S      comp off     = G2 40   
; V3 x. S, r% v. x* l9 K      end define
3 |% r5 h& R1 v2 w      , n9 Z  D0 B4 y/ T3 p& V4 z
#14 :从#14~#41为定义旋转轴的写法,如小数点的位数,+/-的输出等等
3 w* x; I! x" t$ z$ T1 m4 _+ F* }      
! ~6 B$ i$ c9 V- C& V1 Z% Adefine format ( A )" w4 T3 w" }+ M/ B" U
  address letter = "A"
9 o1 D' P4 D  S& y7 R$ L* j6 w  address width = 1: t9 q1 d6 T1 \- }
  field width = 82 m6 S2 G; @$ X" m  t
  metric formats# u) U( u6 E+ x3 L2 M1 L& w) |9 b
  decimal places = 3
1 ]" S" Y" |  r4 Y" w+ ]  decimal point = true
7 l% Y& p: a) B3 Y  sign = if negative% C# Z; I% C% w
  leading zeros = false 2 j# y, ]6 W7 [" ^
  trailing zeros = true
$ _0 D/ B0 f3 E& H2 N# }* d! \end define
% I) L0 D% Z  z#26
/ S$ |- Z. o: N/ M: P7 Y  word order = (+ A )
  D* @: Y, v! o4 S* g: w#285 q4 `5 L3 }8 j1 T3 ~
        units = metric' D+ n, e5 D8 ?3 s% D8 f
  message output = false9 }. x1 _  K' m3 ]! w  x
  spindle output = (2 0 0 0 ): L  Z+ }) V! n/ n
  coolant output = ( 1 2 )
/ ^( \& |6 m% _4 o3 Z#32
1 f; Q; D3 B' @& @/ h5 edefine format ( C ). H" r7 l* t; d  v3 E
  address letter = "C"
+ Q/ s( G# `: U* R3 X  address width = 1
  u0 w  t3 j, E- F  field width = 84 E4 B/ u( Q5 a% z2 W
  metric formats
% L6 Q# y6 X$ d) g6 Y& L8 l, m+ y  decimal places = 3
# p! e6 P( j& o( a: h4 \* k3 w  decimal point = true& f( [2 S! Q0 D6 t; R
  sign = if negative
" m5 M/ m- L  r# d  leading zeros = false
0 |# _1 u1 |" }  trailing zeros = true6 j+ a2 D" v7 R
end define/ @% ?: \2 f9 I# Q
#39. d+ r1 k/ v. j8 C1 n
  word order = (+ C ) ' Q8 P$ j) _/ b0 O$ G; Q6 B
#41
0 s, [. L( W- n7 R! o        units = metric
) b9 {$ @( A: Z. j  message output = false
5 x8 `7 }. _: i/ j9 t: w/ o6 j' L8 u  spindle output = (2 0 0 0 )$ p) |! R2 P+ |# V
  coolant output = ( 1 2 ): q2 t1 z; N& [5 v6 V, F. x/ p
" f; t2 O# z. X# |7 A: r
#33
: O: H: D  v! l: m% `  define keys             :定义旋转轴名称" h$ ?8 r/ @% q) n% w
  azimuth axis   = C
/ O0 U  ]& J, w2 p  elevation axis   = A
/ [8 {. P9 ~0 @2 J' D  end define 5 ^# \' j) G4 d; [
#38 9 T. }* A) d/ ]" }
  azimuth axis parameters = (0. 0. 0. 0. 0. 1. )
6 G$ j2 a; u5 ~( M# z, l  v  elevation axis parameters = (0. 0. 0. 1. 0. 0. )+ E: z% d! s# O7 Y: c
#41
8 a3 t6 U# l& T' E    spindle azimuth rotation = true     :定义方位轴方式,true为主轴头式false为工作台式0 K& e# G. _) {
  spindle elevation rotation = true     :定义俯仰轴方式,true为主轴头式false为工作台式
) ~& g$ I8 J0 h" r, ^#44
2 u5 m, K3 H9 V      azimuth axis direction = positive       :定义方位轴用法,相对还是绝对! d* g9 T- R( \  K
    elevation axis direction = positive       :定义俯仰轴用法,相对还是绝对
0 t# ^% m8 t; `0 s2 m2 @#47
" @, W3 _+ ^+ g/ g    azimuth axis units = degrees         :定义方位轴单位
. |' ]( z) p7 S  elevation axis units = degrees         :定义俯仰轴单位
" y' F0 ]: P" o% D4 L: i1 b#50
+ {+ w% B7 D# W0 C4 C: j; ~    azimuth axis parameters   = (     0     0     0     0     0     1 )     :定义方位轴参数
# `' B6 r- L" i: b6 l) X0 {7 |/ e    azimuth centre         = (     0     0     0 )                   :定义方位轴圆心参数9 K) ?$ W7 ~6 H
    elevation axis parameters = (     0     0     0     1     0     0 )     :定义俯仰轴参数  l" t4 Q# g( N& W. L" F
    elevation centre       = (     0     0     0 )                   :定义俯仰轴圆心参数$ B+ B( b1 ?* W. i
    pcs origin           = (     0     0     0     0     0     0 )     :定义旋转轴圆心2 Y& E9 i1 ~- ^* D
    linear axis limits       = ( -99999 999999 -99999 999999 -99999 999999 )     :定义线性轴范围! p/ p4 w2 J; E& [
    rotary axis limits       = ( -99999 999999 -99999 999999   999     1 )     :定义旋转轴范围
+ Z% W% V7 q5 c* ^7 y6 O5 O    move safe angles       = (     0     0     0     0     0     0 )     :定义起始角度9 t% d% x$ n' B  D' B
    linearise multiaxis moves     = false     :定义机床是否支持线性多轴联动,false为支持true为不支持3 n; c) V1 ~; h4 ^! R
    multiaxis coordinate transform = false     :定义机床是否支持多轴联动,false为支持true为不支持" S, T: U  E5 C* v" x% U' X
    integer 3   = 1       :定义是否进行多轴处理       ( b* p* |$ b" n8 S. y
    integer 9   = 5
( t6 N% g! S4 O) _    integer 22   = 1. y. g- D6 n1 X
    integer 23   = 1% Z. Y1 C) Q% W4 |( b: y( j/ U+ z
    integer 24   = 0
1 n- v, q7 M2 W, g    integer 25   = 0: U# a" @4 q8 L
    integer 28   = 1      
$ x$ q! v8 `/ a* w1 [    integer 38   = 0
4 f" `& q9 ]" P& Q& n8 ~2 d/ i) s, w) Q; H    integer 40   = 10
" Z$ w8 U3 z, J+ E    block start   = 1
$ ?5 b0 V  b( Y' ~    block increment = 1     7 r  v& I- I5 W3 `  y( c* w
maximum feedrate = 16000.0         :定义最大进给量
4 {2 }; a7 F2 I; xcomp output   = (1 1 1 2)
$ }" `1 M0 z( I3 `0 v+ gmessage output = false           :定义是否输出信息,false为不输出true为输出
$ l1 [/ d( X3 _( Z, f! Zblock order = true$ u- l: s8 k7 ]$ a& l$ |4 b
define block tape start
2 o5 G* V/ C5 d2 t9 m0 o: ^3 lend define" N4 ]0 B+ t+ b+ ~' a0 z5 P
define block tool change first clear :定义程序头和换刀及换刀后的第一个动作
( D/ Q' e. _9 p7 E"T1 M6 D1"# Y; [+ F3 b1 G- I5 G) G3 q
"TRAORI(1)"7 d# }% @5 Y0 q: X/ {
"HSM"
' a% l" }9 E- H$ ]S ToolSpeed ; M1 34 y5 L* Q9 f$ b+ O8 @# ~4 {4 r
G6 54
/ J1 K+ q6 Z. Z) B+ UG5 90 ; G1 0 ; Z FromZ: i* ?, i6 f( x
G5 90 ; G1 0 ; X FromX ; Y FromY
  {; s& G5 v/ yend define. H& c5 p0 k6 G  T% V  v
define block move rapid             :定义快速移动5 d- F) a! q. {9 b
G1 ; X ; Y ; Z ; A ; C
, `. B' h, |3 D# e/ a# p. _) Dend define7 v. z; i0 U) K! W  g
define block move circle
- V/ s- e1 o6 v$ }! K9 ~; B% p0 ^G1 ; G2 ; X ; Y ; Z ; I ; J ; K ; D ; A ; C ; F ; M2   :定义线圆弧移动! }5 P4 a+ R/ k: ]
end define/ b% e3 f3 X( D7 }) V" _% C% N
define block move linear! l* x) j; @' B- s1 m: S& u, Z4 J
G1 ; G2 ; X ; Y ; Z ; D ; A ; C ; F ; M2           :定义线性移动方式
2 A7 a* t: _# ^- aend define
0 v! d8 I/ e2 b4 Hdefine block tape end                         :定义程序尾
0 ^$ d8 t- H* {, U"M5 M9"6 t) _0 i  f0 B4 [
"M30"
& w( [7 H" q  R2 l/ uend define: q# A) ^3 d2 F3 |- X
end      
) {* U4 F; U& g      
) [- W2 ?" M( c# }! U8 _所以这个就要看你机床格式来具体设置了,修改以下值为你所需:       & f* V1 L2 u5 G: d: a8 N
      incremental centre = true (相对,反之false绝对)      
; x& G. _3 ]; E0 D$ X相对有两种,所以:      
* M6 X6 L$ G2 n) C5 X& v      scale factor = 1 或 -1     - a: I# s' a1 ]+ |6 m- @2 m
另外有些机床不能输出360度的圆弧,这时需要将其分为几段输出: 9 z, @" ?" c  T: {- Y/ B
        full circle = false
0 [3 g8 c7 E' J5 N5、换刀的格式:
! k6 O! X% `' @- F% `2 o7 Y如:      
# m, c7 H8 U2 O; ?' b2 U, U# H. z& Y+ }        define block tool change first
9 }& n9 W$ k2 ?          N ; OP ; change tool ; T ToolNum
/ q+ ~: b: s' Z  a          N ; "G48" + h0 ^5 q9 b  Y3 N' S& |
          N ; G1 0 ; Z FromZ
) M" A) m8 P  z4 ^3 v1 Y5 t        end define
/ l0 G& f/ @5 H5 ], R& O# I5 E1 c9 [    " E6 s1 ^) j% r! }
      里面可自己添加你的机床换刀时所需的代码,如打开刀具长度补偿。
7 q% F6 k1 T) B4 x% v   
% A2 y' J8 L# w, |6 f+ X6、快速运动、直线运动、圆弧运动的代码: / T# [3 a1 u1 y2 h# X( N7 H! f
+ t# P( K' E) F3 Y
  参见: 7 c' D! R7 X- f2 C8 P) E* M: d  A
      define block move circle
" a% P+ h5 Y% B8 d          N ; G1 ; G2 ; G3 ; X ; Y ; Z ; I ; J ; K ; F ; D
5 \2 b* Y7 `5 F8 M" N# B' X5 A      end define # J: D+ F* C! N& @
- v' r0 |: u$ Y) W3 ]
      define block move linear
& F9 Y2 x: j+ e, d/ c          N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; ; T ; S ; , [' P5 k! B5 l' L: l' P  z3 P' x
        M1 ; M2
' S" x; T9 Y4 }8 }/ a      end define
: \- X7 Y, g6 v& \( e
$ F4 K$ I2 T$ t. ]; x+ _      define block move rapid
0 ~3 {3 C( s0 A          N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; T ; S ;
1 N+ w0 I- [' r0 d( t        M1 ; M2
4 a0 p+ G4 J( K0 |8 E5 Q      end define " \. [9 w) F7 ~; H' T8 g3 A

4 ]- N) e* W  z! u        你也可在帮助文件的指引下,修改上面的代码,如:不想要每次输出G17之类,可以删掉G3。。。当然修改前要了解清楚该代码是做什么的,另外注意备份,随时恢复。
1 h; y7 k) e, }, p; u3 A: h) \  - a8 A7 b6 p  z' K* {' o3 V
7、多轴: 6 o8 I! U( h6 r1 r( I. Z1 @/ r
         
9 C7 }+ ~) U6 h+ Y# Z6 R8 c3 G      PM 这点做的非常好,如4轴的几种方式、5轴的几种方式都有代码可参考。如:在X轴加一个圆盘A,只需添加、修改以下几行:     
  e4 q1 c7 y; u0 H
: o% }/ A- Q3 h' q! }        Fourth rotary table axis :- ( A. rotating about X. ) 2 s) o, y( P# k7 a+ \" h
5 H( H0 n7 K( Q' ?$ ^9 q
        define format ( A )
" R5 e( M( [& |7 l2 K4 \: v3 u          decimal point = true
9 m) Q* Y, ^8 [          decimal places = 3 * r5 k' h1 i+ S) q' H
        end define 6 v$ ]9 w7 @  j- ]; Q7 `! h

6 a! J/ ~  R0 w+ E        word order = ( + A ) * Y/ @2 Z1 ~4 p5 o

& M; x9 d9 y* v        define keys 4 A1 x9 s5 B/ M& ~2 Q5 F
            azimuth axis not used & ^3 A  L8 @# M3 }  l6 m! Z  u
            elevation axis = A
5 ]) }) u9 Z' w* q6 o2 Y, r- e        end define
# W  `) [! L! W  T; J! B& X( S$ }; @* v/ n- Z& b9 M; y
        spindle elevation rotation = false ## Default ; S3 U% l% f- Q0 |* N" y
        elevation units = degrees
0 U& {: w: A3 O1 X$ _: i        elevation axis direction = positive 1 I# c7 ?5 @+ k" p

: Y" _1 f" w8 |" O        azimuth axis parameters = ( 0. 0. 0. 0. 0. 0. )
: K+ I4 ?# [1 b) L$ s2 ]. |& {* U, S        elevation axis parameters = ( 0. 0. 0. 1. 0. 0. )
: I2 m7 z! @" b- ^1 K; }% {* r0 X: A/ W" k$ `* X
        define block move rapid ' R9 t. {  v7 p
            N ; G1 ; G2 ; G3 ; G6 ; X ; Y ; Z ; A ; H ; M1 ; M2
0 j9 u) [" _3 h1 L- H        end define
5 a6 z0 S3 k/ z; I
# b( w) A+ C; t6 i$ c8 `- k        define block move linear
/ R/ o' A9 O: d) h* w5 V5 ~" n/ ~2 q            N ; G1 ; G2 ; X ; Y ; Z ; A ; F ; M1 ; M2
( B4 l$ V, `1 c) C        end define
" _7 {* ?( e* [2 I4 D
0 K: Y- S' B$ J" H9 L; E% y/ J具体可参见ductpost/multex4.html页及5 轴的帮助页。。。& J8 t9 T0 }: h" p
        
5 l5 l* V* @: K' W$ c注:总结,多轴后处理的写法,如有错误遗漏处欢迎批评指教。3 L9 d5 l4 }+ _6 E9 u' h
  7 `5 {6 E: }7 Y* S- T
我还要强调一下五轴的后处理改写一定要小心再小心。希望大家多多交流,共同学习进步。
4 T$ A8 F' u- p9 o# r4 k9 C
发表于 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, 2024-9-20 14:31 , Processed in 0.056896 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

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