青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

后处理修改帮助

[复制链接]
发表于 2012-7-31 14:15 | 显示全部楼层 |阅读模式
后处理修改帮助
1 u) c- Q' V# U$ S4 l6 Z+ k7 R, g8 x    一、PM 自带的后处理中有适合自己机床要求的,不过要修改、增删些代码。 ; N6 ^. |  q! A$ \
    二、没有适合的,需要改写后处理。 0 d8 U$ `6 {* F+ a
    三、机床的代码格式完全与普通 G 代码格式不同,需建全新的后处理。 $ t. ?& {: \: n; A; |. q
- \5 g& ]1 o0 u( B
现在开始准备工作: ; p! j3 H2 N9 N0 y
  
3 H" r( Z- Y% I. h* K+ D; E( ?    1、以不同的控制器试着处理几个G代码文件出来,然后和自己机床的代码进行比较,选一个最接近自己的。   
6 \/ r; o2 z# e; `0 Z" s    2、打开ductpost\dp-index.html,准备有问题就看帮助。       . a6 T5 j; `* |
    3、运行:ductpost -w [控制器类型] > [控制器类型].opt ,从而生成OPT文件,这个选最接近你机床的控制器。如:ductpost -w hurco > hurco.opt 。 这时就可以用文本编辑器来打开这个opt文件了: ) @/ U9 U: M. D3 N, Q7 ?

5 ^; p3 t. L; H1 S( U1、程序头、程序尾的改写:
' y/ {8 f: q* e6 J+ U- Y这个在以下的定义里面:
1 U/ x" D( U( ~2 ]          define block tape start ( E; b4 F3 \% x. Y
          ******************** 3 d- ~8 U6 ]# ]% r$ w
          end define
8 g2 Q+ v" c4 r* _          define block tape end - u2 x: e0 t0 i) D/ i# C
          ******************* : ~& b) ^5 L' t6 ~* T/ P
          end define : j' b+ K/ U- s/ T- L3 b5 R: N' s4 x8 L3 q
" Q: L, Z" u& m: Z' a2 J. h/ T4 ]
你可以根据自己的需要添加,如: ! c% G$ p% F0 x0 a, b" P$ v+ a

; H' J" n. u  e6 D& B& J        define block tape start / v+ }# r1 f! P% M2 c/ }
          "%"
( ^* k0 y6 c0 `" B          N ; "G17G90G80G40G49"
! W2 Y3 _6 X% I* p/ d8 _        end define + T) A4 M( H5 r( {4 k! F

1 u1 z+ J# ~$ a2 N: m        define block tape end
: b. b% d; r1 O: Q5 K* E& S          N ; "M05"
$ w- Z( c* L/ A# v          N ; "M30" 0 [- J6 n! s- u
      end define ! z9 V# }) b3 O1 e& h" E  c
    6 a0 w  u# N2 b: K# m3 |/ @+ f
不过注意这种引号方法优点是简单明了,但控制器只是把它当字符处理,而不能以模态存在,具体可参见其它说明。
9 \! U" B2 a$ M; V
/ a  @% M! k0 R/ ?8 v2、是否需要N行号? $ P/ k4 `/ R4 d- H" _( c( A
        % / u  Z! i$ M1 S
        :0001
0 u1 a9 B/ O7 p* o        N10G28G91X0Y0Z0
7 [5 F1 }/ w+ R& v* X, }5 m        N30T1M6
& J/ a0 m$ \7 X, Z7 k' V        N40G0G90X-25.Y-40.S800 M3
! e  _! P/ s3 S4 S7 q    ; }# o( t( i7 G4 T+ W/ \
如这上面的N10、N30、N40,另外行号的起始、增量、最大都可以定义。如果不想要行号,可修改为以下值: 2 b* C6 c6 t+ X6 w- W; z. l
                  define format ( N ) 7 m6 i1 k; A$ b1 K8 {2 |0 e( q
                      not permanent
- ~5 g% }/ N8 \) R; i1 I, W                  end define
7 @0 e# `2 g  M* M+ c
9 f+ g: q+ _- I# y  c( D% Q3、是否需要Message?
" s' B; y0 b4 a1 X6 H# {3 x! ~2 @4 x5 {0 k& y: J
      N60( MSG, Toolpath Name: ET)
  z* V8 R& U7 ?# f" ?      N70( MSG, xyzxyz_cut_1 ET)
# p. e8 v+ e3 S  y8 {  Y      N80( MSG, Output: ET)   t3 k  O5 K! G/ p% j8 D
      N90( MSG, UNITS: MILLIMETRES ET) 0 ^2 c% m( q0 r6 X8 D8 T6 V3 o
      N100( MSG, TOOL COORDINATES: TIP ET)
7 |, \5 I+ ^. ?3 t# T      N110( MSG, LOAD TOOL ET) ( E, A8 |: u( F
/ `0 q6 Y0 x9 Q% \& w, u$ y7 {
上面的信息,可修改为你需要的,具体参见帮助。也可选择不输出,如:
, r' X! A1 q4 H; n   
& }1 M* V9 Q9 m: T) p, T9 |$ U" a6 q      message output = false 7 j3 g: N8 ^& g( J

2 m4 z! E  n8 P$ z" f- [; R4 b4、圆弧的输出格式:
5 E# X: W4 P' s* d" G" M6 S8 A$ x      ' D0 j2 E$ O) @. P! R% S+ S
这个需要讲一下,输出R的就不讲了,专讲I、J、K的输出。大致有三大类: # O% i9 N9 D) L' n7 v
    7 o" n8 `' z' |+ d
      a、I、J输出为圆心的绝对坐标值。   
/ C6 g" X  ^2 e5 U6 J  }  |      b、I、J输出为相对坐标值,具体值为:圆心坐标值-圆弧始点坐标(常用)     & d1 d  H4 N' r7 ~, m
      c、I、J输出为相对坐标值,具体值为:圆弧始点坐标-圆心坐标值 8 i$ A) c: c( W4 d5 O, q0 k
      4 a9 ]/ {( D3 a5 I: z
      define format (I J K)   :定义I J K的矢量
5 K, P, f# ~2 ~* @" M: P        scale factor = -1
5 i8 g! U( s8 c9 C, U; a4 ?      end define
; R# `8 t% t8 z2 I0 V; ]/ R5.定义左右刀具补偿5 b3 q3 p) N& c% v
      define codes                 ) u7 t9 m5 R( \. h: `: t- w6 m# z
      comp on left = G2 41
, b2 J! o4 q* O! v      comp on right = G2 42
4 T9 W: V7 E6 Q) i( k: U' k  T      comp off     = G2 40   / E1 I& n) s' P% W& Z0 `
      end define2 ^7 s, V/ x0 O& Y
      - k. l, _# j0 T- Z) O
#14 :从#14~#41为定义旋转轴的写法,如小数点的位数,+/-的输出等等" n' R9 s# l/ Q7 `( h3 ~
      , l! O# M" X- T) P! N9 \0 \8 r
define format ( A )9 h# {4 R% W1 W0 g
  address letter = "A"
. A' w1 l' T* B" V0 I, K6 s  address width = 1
7 w+ z( J1 U6 @0 o- Y2 \  field width = 8" i  _3 Z8 _) z4 Q7 l8 P
  metric formats
# i+ A! R% C0 p$ y4 n; @5 P  decimal places = 3, B6 t0 i8 W8 h+ r
  decimal point = true
3 `9 O3 L* {, W: m; O$ d  sign = if negative& G- Z- {9 h. `3 q8 f7 m0 C
  leading zeros = false
4 E* U1 ]! u3 J5 f2 O) d- x  trailing zeros = true
9 ^% P1 E- E6 p+ cend define( p4 |9 F; ]8 Q5 D' l" V' |
#26
% [! \! C* [1 r7 T- g# u9 `  word order = (+ A ) % [" |# S) U7 D2 a
#28& Z  c  f$ z; ]+ P- r2 _  a
        units = metric( N0 ^! c- E2 k! q. C5 u  Q
  message output = false8 }$ R! e! c4 c
  spindle output = (2 0 0 0 )
/ e: P3 y/ d7 r, a+ ]  coolant output = ( 1 2 )$ ]5 h8 a) X* @0 Z% j4 r. E1 Y3 I5 Q+ S
#32
5 K6 _; `: R& A9 [define format ( C )8 z! S8 B# H8 D" W$ M! u/ u
  address letter = "C") c$ z  v1 n0 i+ |) C3 R
  address width = 1
# t6 T6 c' s: o) J7 O1 r4 [2 V6 Y  field width = 88 C! w$ e! I: ?/ M2 I- `- d
  metric formats
+ i( A. d2 u4 N2 p3 G' N  decimal places = 3
, o: z  M0 K, [4 Z( Z% ~1 L9 _! y  decimal point = true8 p0 E( |8 @4 j) r  b' x9 }
  sign = if negative
8 k1 ^$ a; ]! j+ R  leading zeros = false
  ?/ ?5 j7 s" E# N- u8 Y9 @1 ]  trailing zeros = true
" X/ W7 x) v( o6 a5 i0 Rend define8 b8 s& q- m4 r/ E
#39
: c! G6 d1 b2 Y  word order = (+ C ) . p5 t9 @0 _. f) z  F
#41' s% L2 \# _: E6 D9 Y# g
        units = metric1 K8 d% m. i; j% a  U. d; I
  message output = false
1 z+ M+ u; m/ U. v- n  F2 `  spindle output = (2 0 0 0 )5 _/ o6 ^; c2 q' A% U8 ~
  coolant output = ( 1 2 )1 z3 {* @+ C. _" T7 q+ ?

3 j. f6 X7 C8 {  M3 d#33
7 V' F" @. A  p  define keys             :定义旋转轴名称9 R9 ]3 N9 L& g9 g0 D* o6 z4 o
  azimuth axis   = C
- l+ Q- i" V9 Z4 g: E  elevation axis   = A1 r3 k# \) }+ R
  end define
# f' d( [6 S/ u+ m8 W#38
5 ~# f: }# k0 @. F  azimuth axis parameters = (0. 0. 0. 0. 0. 1. )4 L* |# v! {, o( W( t
  elevation axis parameters = (0. 0. 0. 1. 0. 0. )
0 N6 d7 g' q. M' F2 B#41
9 B6 }/ e6 J9 k3 V3 L1 }    spindle azimuth rotation = true     :定义方位轴方式,true为主轴头式false为工作台式0 R, b* x% P2 Z6 @! |% H- |
  spindle elevation rotation = true     :定义俯仰轴方式,true为主轴头式false为工作台式; b9 Y0 Y4 j9 s$ B
#44
  v  U2 F& X4 y      azimuth axis direction = positive       :定义方位轴用法,相对还是绝对
8 V$ H/ P) |1 U% u& o    elevation axis direction = positive       :定义俯仰轴用法,相对还是绝对5 k. R% l  T8 J
#47; a8 T6 u+ G( O4 i' C! s8 T
    azimuth axis units = degrees         :定义方位轴单位0 \" H9 R* {" I6 U- A
  elevation axis units = degrees         :定义俯仰轴单位2 W9 d; e9 ]' B  l# ?, D, A/ z
#50$ O* h6 @6 s, L; t$ [* Y
    azimuth axis parameters   = (     0     0     0     0     0     1 )     :定义方位轴参数7 A( Q1 S1 u+ v7 K6 a% w' L- p5 ~
    azimuth centre         = (     0     0     0 )                   :定义方位轴圆心参数# r2 G2 r$ a( ~; y6 ~
    elevation axis parameters = (     0     0     0     1     0     0 )     :定义俯仰轴参数$ X6 x0 Q9 G* h# E
    elevation centre       = (     0     0     0 )                   :定义俯仰轴圆心参数
6 V+ w5 U6 [$ @9 x$ u, y3 N    pcs origin           = (     0     0     0     0     0     0 )     :定义旋转轴圆心  k* ?& |. |/ c$ J7 G
    linear axis limits       = ( -99999 999999 -99999 999999 -99999 999999 )     :定义线性轴范围
5 g# L% a  k( r6 [% w0 L    rotary axis limits       = ( -99999 999999 -99999 999999   999     1 )     :定义旋转轴范围; W4 }: E& C. H# d
    move safe angles       = (     0     0     0     0     0     0 )     :定义起始角度
7 w; U( x0 {$ `7 N/ a7 P& z1 k; G    linearise multiaxis moves     = false     :定义机床是否支持线性多轴联动,false为支持true为不支持" Q" E; Q8 R$ O( ]- o/ |: g
    multiaxis coordinate transform = false     :定义机床是否支持多轴联动,false为支持true为不支持
7 y4 B% a% c( @4 _* ~' i    integer 3   = 1       :定义是否进行多轴处理      
$ g% o5 I6 S5 c! ]- s  e# y, ~/ P    integer 9   = 5
$ _6 N! B6 j% P- H    integer 22   = 1
9 T: V' t7 Z" J& ~$ V    integer 23   = 1
; f9 p" J: |5 y& b, C+ l    integer 24   = 0
3 |+ a- Y) s7 c9 W, L    integer 25   = 0/ ^, Q% S% m. j" M9 Z. D/ `
    integer 28   = 1       - M' E+ A! g& `: s, ]8 s( \
    integer 38   = 0
3 Z* |3 y6 B% q0 |/ S9 a: K- u0 r    integer 40   = 10
" Y7 w4 ?: r# W+ ~! l& y    block start   = 1
  @# U: k; u, H    block increment = 1     
: @* O* x0 Y& k/ {maximum feedrate = 16000.0         :定义最大进给量6 {+ {* R$ h: F/ J( k# k8 K) q
comp output   = (1 1 1 2). m1 n$ g% Y, h8 c* S2 O
message output = false           :定义是否输出信息,false为不输出true为输出
  s0 e5 s: \+ X% V9 dblock order = true# v$ s/ e/ W! Z* i$ {4 o7 c; }
define block tape start
1 ?  q1 s" t7 z% Kend define
/ d) i$ h. n  n! Q5 N. Mdefine block tool change first clear :定义程序头和换刀及换刀后的第一个动作
& w$ Y; C/ b4 E, v4 W8 C' Z- G' T"T1 M6 D1"
( [* O# a# B; I- p5 b, G2 B6 v"TRAORI(1)"" a* ?# o3 Z7 i8 _0 p0 ~
"HSM"
6 \2 R& E) G% s  Z5 pS ToolSpeed ; M1 3. c5 M; i  j: B9 c# S( Y7 \: c
G6 54
  q6 A+ g0 H6 @G5 90 ; G1 0 ; Z FromZ
2 T" F6 w4 N) r" v$ pG5 90 ; G1 0 ; X FromX ; Y FromY4 f; t: i* J2 j" D
end define* e/ @' R. i; O! w1 V
define block move rapid             :定义快速移动& P/ @2 v( U" o1 `# j- v
G1 ; X ; Y ; Z ; A ; C4 ]5 |: S" O1 o5 D) ]
end define
2 C/ {+ [2 M$ l( C# Fdefine block move circle
9 _' f, F3 ~, F! `- s- kG1 ; G2 ; X ; Y ; Z ; I ; J ; K ; D ; A ; C ; F ; M2   :定义线圆弧移动
4 K0 D) y7 G0 ]: T' Gend define6 @. ~& p0 V( [: L9 q# _
define block move linear9 i4 M9 C$ N9 U; Z6 v1 X- q' q
G1 ; G2 ; X ; Y ; Z ; D ; A ; C ; F ; M2           :定义线性移动方式 - A+ R% L- A# |1 U
end define! l; g6 M4 f. `( J7 V- z. P
define block tape end                         :定义程序尾
5 Z- }  P+ d, L+ Y"M5 M9"( }- T& Y% P6 H, ^
"M30"- ^" _% H$ I/ w& X2 S$ z& v+ N/ F
end define3 X2 ]( X# Y  w/ x& ?0 j
end      
5 n( ~4 W5 H6 d      
3 I. Z6 x# B2 b' s! ~8 `+ b0 o所以这个就要看你机床格式来具体设置了,修改以下值为你所需:      
  p5 Q! A* }, \      incremental centre = true (相对,反之false绝对)       ( ^* u0 U! q* y0 Y
相对有两种,所以:       ; P0 ^( e- b& i- G" c; h  g
      scale factor = 1 或 -1     
+ C( v$ U1 _: X1 Y/ ^/ k( p7 \另外有些机床不能输出360度的圆弧,这时需要将其分为几段输出: 4 {# r; m. x* M6 b( c
        full circle = false
& \$ Q% p/ _* ?9 x3 ~- F5、换刀的格式:
1 y& `2 i. ?) S$ v, V, B如:       . C: W8 X7 J4 b1 T4 B) L! k
        define block tool change first
" B6 @5 V& u6 O6 c* D% f+ A, v          N ; OP ; change tool ; T ToolNum : f# ^8 @9 u4 f( y2 l
          N ; "G48"
3 x: b, @+ K( e3 n7 V5 u          N ; G1 0 ; Z FromZ
$ L9 c- k3 }  V. m7 f# X' E2 T        end define
' T& i5 a0 Z. D6 W/ G8 t' K! ^4 O) d0 q      [: H5 d+ H$ B$ n
      里面可自己添加你的机床换刀时所需的代码,如打开刀具长度补偿。
% a) {/ i* N; d2 q   
+ a: h7 f+ x0 ^) @$ M. h1 |6、快速运动、直线运动、圆弧运动的代码: $ o' G& ]7 G# M3 A& J% G9 _2 u9 n

% b) U  g* R/ z8 Y  参见: 9 C9 @7 c  [/ p1 n
      define block move circle % Q$ M# j) x% m* J6 Q1 G
          N ; G1 ; G2 ; G3 ; X ; Y ; Z ; I ; J ; K ; F ; D , P7 k. {* {* V% G" r5 m2 b0 g+ H
      end define
0 \+ _. _/ K' y# ^. O/ j1 [
# W0 S, `: \  q$ u! h      define block move linear
# n) Y7 i# G" L+ p/ n) M          N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; ; T ; S ;
+ ~( E6 u1 S* _% N' c0 C5 C        M1 ; M2
. \7 j: F8 Q- {) R      end define
. R$ U9 }7 y* ?- v( Z0 g, r( i
9 q) s( ~7 A! E0 t3 z      define block move rapid
- m$ l$ w; R, K7 w& ~5 ?# [; }/ y          N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; T ; S ; 1 ]$ H# s" Z# X, j4 a
        M1 ; M2 ; k7 N8 [3 i* P' k; |7 O
      end define
" O! Y4 F& {8 F3 H) k9 U0 `
7 X+ S3 f! U+ }  [4 z        你也可在帮助文件的指引下,修改上面的代码,如:不想要每次输出G17之类,可以删掉G3。。。当然修改前要了解清楚该代码是做什么的,另外注意备份,随时恢复。 + |* B8 t1 j, M' u, M' l/ [& P+ p
  
( P& `, U1 B: G# X$ u* H* \* K7、多轴: * i, S% K+ S% q5 x
          2 F$ k) |% v% F! `4 D
      PM 这点做的非常好,如4轴的几种方式、5轴的几种方式都有代码可参考。如:在X轴加一个圆盘A,只需添加、修改以下几行:     
6 V( N* L: z: e' ^9 A6 M
$ F% v- m* L. K3 S: f, F8 D5 @        Fourth rotary table axis :- ( A. rotating about X. ) + F5 P1 L1 u. N; k: {" P5 }
9 G* v. v$ b- L3 R( ~' S$ C
        define format ( A ) ) u2 S4 W. w( h3 n1 s4 A
          decimal point = true
$ w  J% G- o& l5 Q& i; M; w+ E, _! a, Q          decimal places = 3 # m! A+ `) p+ q* V' I8 E8 I0 J
        end define 1 C6 a( ?) S( @5 J" p7 n# U
! P9 n& @* r2 n8 L6 v
        word order = ( + A ) 0 [/ `$ ~# L8 h0 k+ e# q+ z

2 q, a( ^: ^" D. u        define keys + a+ C; G$ c7 \  w0 \3 w& a
            azimuth axis not used / ?9 F8 q6 m( N0 J( d+ p
            elevation axis = A ' x+ L! M$ s, v0 }0 Z0 U
        end define ( }, E" j1 I- k* O

2 |$ O; k% I: j% J        spindle elevation rotation = false ## Default
& _8 c/ s( p5 F, ~( }        elevation units = degrees
( j/ O8 \. N6 P" R! F* }        elevation axis direction = positive
: }" c3 q8 ]4 M/ K' v- W" q- ~& s; l. D
        azimuth axis parameters = ( 0. 0. 0. 0. 0. 0. )
# X, K0 B3 g6 S2 h& f0 q1 `  E9 `        elevation axis parameters = ( 0. 0. 0. 1. 0. 0. )
. c! T+ ]; `* K& i! \1 P  ?
& ?. h4 }6 W7 `" C) F! b        define block move rapid
% c* [& O. ?( l! ~# n* }& i            N ; G1 ; G2 ; G3 ; G6 ; X ; Y ; Z ; A ; H ; M1 ; M2 ' S' O. e4 D: D% ]
        end define
! ~2 X+ U4 R" J8 T. N, P* C, Q5 `8 T4 c1 U' H! {
        define block move linear 7 @2 @/ q- U$ @4 o  a3 d6 C
            N ; G1 ; G2 ; X ; Y ; Z ; A ; F ; M1 ; M2 + l( X: {! E+ h" m
        end define
9 }4 X' W2 x, W/ Q* R& |9 S, Z2 b' H/ ^/ H
具体可参见ductpost/multex4.html页及5 轴的帮助页。。。) e) d6 X" l+ H' i+ M$ o* t
        
2 Y: M( c5 q- Y2 q; [6 ^注:总结,多轴后处理的写法,如有错误遗漏处欢迎批评指教。
/ a& l% M. y! P* O% ]  
+ u, O+ \7 s5 x9 i' e我还要强调一下五轴的后处理改写一定要小心再小心。希望大家多多交流,共同学习进步。3 V% A7 X0 f+ v
发表于 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 00:51 , Processed in 0.115459 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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