青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

后处理修改帮助

[复制链接]
发表于 2012-7-31 14:15 | 显示全部楼层 |阅读模式
后处理修改帮助
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+ |
发表于 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-3-7 00:27 , Processed in 0.056217 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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