|
尽管不同类型的数控机床(主要指数控系统)的指令和程序段格式不尽相同,彼此之间有一定的差异,但仍然可以找出它们之间的共同性,主要体现在以下几方面。
8 E/ Q! e1 c* z) G( T2 ]( |% j+ F(1)
* _& p# \; @. o2 Z数控程序都是由字符组成;6 j0 H' c3 s1 B/ m: R |
(2)4 z. F( c0 ~/ ]9 c1 P& e- l
址字符的意义基本相同;% A) K% b7 {6 Y
(3)
8 U( s7 r# [) w5 g6 [备功能G代码和辅助功能M代码功能的标准化;4 Y$ |# G+ K* S; Y7 ?, Y
(4)# O( A7 y7 K" K% }$ J2 K" o
字地址加数字的指令结合方式基本相同,如G01,M03,X100.0,Y25.1等;
2 N5 L" b/ m; s- y(5)
( {) X( i2 }4 _: u( X6 v+ U7 l数控机床的运动方式种类有限。
# |$ ^; ?1 `1 G" J数控机床的这些共同特性是后置处理实现的基本条件[11]。
1 I% v2 S& s& `' d在本机床中需要用到数控机床的一些基本指令,由于数控机床的指令很多,现在只列出一些需要用到的指令及意义如表2.1.2所示。
8 G- }0 V* M' [% v- r在Pro/E生成的刀位原文件中,对于GOTO以外的文件代码需按照本机床特定认可的代码进行转换,如(图2.1.1)将第2、3两行转换为非执行语句即注释为加工工件名
$ g5 e) z3 Y* S- L% F; g2 f称(MSG“01”)。第4行转换为G55。第5行将转换为注释机床类别为铣床(MILL)及机床号(1#)。第6行转换成注释程序坐标值的单位为(mm)。第7行转换为转换调用刀具号T10。第8行转换为注释本段程序所使用刀具的直径(25mm)。第9、10、11行为注释座标系的方向可略去不管。第12行表示多轴加工开此处转换为FGGROUP(X、Y、Z、A、B、)。第13行为主轴转速转换为S2300。第14行表示冷却液的开或关状态,ON表示开,对应转换成M08,OFF表示关,对应转换成M09。第15行RAPID表示以G00的速度进给。对于注释语句在加工程序中可有可无,有注释则使加工程序一目了然,别人更易看懂,没有注释亦不影响程序的执行情况。这几个程序段可根据实际机床把先后次序调整并加入机床规定必需的代码。另外在转换为*.NCL文件时,对于本机床由于B轴的摆动原点在刀具长度为150mm的位置,因此需将刀具长度显示出,并记载以备X、Z平面的坐标变换用。针对本机床前15段可文件代码处理成如下NC程序: `2 F7 M# T# S( P
MSG(“01”)――――――――――程序号为01
1 D |: T4 a# K! e' j+ H" E" N" ST1-----------------------------选择1号刀具! s3 T1 B! Z; e3 d& a
MO6----------------------------执行交换刀具+ {+ z9 b+ W& R+ `; j! \$ ~
! J) H! H2 L1 F$ c% K5 E1
" u. j4 E0 q8 v6 O5 k; W' m$$* C6 `! Z: @+ B
Pro/CLfile9 n2 h, w$ \4 ]7 W) z/ o, ^$ d
Version Wildfire - 2003250
5 v! u0 j& k+ e22 ]! u' i3 n' ^% M
$$-> MFGNO / MFG0001
. O4 k! S0 q' d! O* E9 k; S2 e2 l+ D3* T+ N( n- ]( S' B
PARTNO / MFG0001
: `1 h; `4 p! `8 l$ m4
6 L* [& y4 N/ u& x& W/ E$$-> FEATNO / 558 F+ S( X; K+ d, e9 m, J
5
& x* v* p0 E! \% C sMACHIN / MILL, 01% T5 o6 G6 S M- b% M
6: z& C# T+ \( p1 H7 D6 N
UNITS / MM5 t* s+ \* ?& v& o" r: J( G
75 n1 l+ W% I' O4 [
LOADTL / 1
0 |& u5 o' k; M4 A4 i. R4 ?% U6 p8
5 m7 Z& n. V4 T c" v% y. {( P$$-> CUTTER / 20.000000* g& D* K g7 b' }" c% W- R
9' Z- v5 b6 c9 r$ i1 w) }+ t+ s2 Y
$$-> CSYS / 1.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,. w9 ~/ G0 v& j- n
$
i9 h" }7 {% j2 s1 L! Y1 v3 F; N* M' v$ x
0.0000000000, 1.0000000000, 0.0000000000, 0.0000000000,1 c. M$ q. k- B& T
$
) r7 [ p* p4 G9 M" K& v( q: S) e
0.0000000000, 0.0000000000, 1.0000000000, 0.0000000000- @9 y1 ~) s9 D$ J% M9 r
10
4 p) c& F+ B, y) BMULTAX / ON
3 B6 }) o5 N- z. P, { M11
7 o& ]( z$ S) r5 k E7 cSPINDL / RPM, 2500.000000,$ @ n; |; m' A6 l5 B
CLW# ]9 M: x8 S; y* d8 T$ c# f7 m
12 V7 n3 R) }$ l& R2 B
COOLNT/ON/ ~* X/ \ ]' Q; h* Z6 E
13
8 q7 Z2 ~0 [( j- V- tRAPID - D' R6 I) ]/ ~" a' l, L
14
; l& o4 L% Q0 }0 ]2 e0 sGOTO / -34.9393112431, 132.8255903728, 69.6947813119,5 s1 u$ R# v8 @. b$ p/ z
$5 v8 E) T3 V V
15: n. d5 @6 ?- m9 u
-0.1092338887, 0.9905530802, 0.0829008618
& U6 R! v. q& c% K' ]2 K16: s- m# R/ e" K9 X
RAPID ; v- K/ H! _* o/ q
178 g( ]4 j0 g, B, H. j O
GOTO / -26.3629244580, 55.0533308250, 63.1859051404,
Q' {6 a1 ?8 @7 b1 U' k( E: p/ ]$& o; p! O% R1 m5 P/ Z! ^5 W7 h& C
18; k/ s+ r; A& \: ^+ \
-0.1092338887, 0.9905530802, 0.08290086184 d6 O. B7 t: H9 l6 L
--------------------------------------------------------
7 v5 h/ G+ B& e4781
8 ~2 e7 o& F0 ^6 D( v-0.2060865430, 0.5037723452, 0.8388931761+ K M5 i4 ^0 d9 e4 |5 ~
4782' D3 A1 h$ W& N% a4 A# V/ S
GOTO / -33.1021022840, 71.5860499488, 131.8159226070,
X6 S6 D: V5 D: o, a: @$
3 ^5 g& h4 d- J/ w4 h% ^7 @+ v% c4783
: Z' V) `1 J n) |- w5 l-0.2060865430, 0.5037723452, 0.8388931761" W, `) J& W- ?8 W
4784
# P! ?$ M+ t& gCOOLNT/OFF7 [& k: k% z% p+ ~2 I
4785! @* _! n- I; W, ~% ^) D4 r
SPINDL / OFF
% M$ J6 I* D \1 N+ P4786; u1 t& l# |$ F0 S f' u2 O- O( P
$$-> END / 9 h: i; t) Q1 l
4787' x8 K* k1 J; o! t6 }4 }
FINI
5 i# o p9 K( } |
8 p! w, f: p) b- C7 x 图2.1.17 T& [0 l Z" S9 L3 _' u6 W
刀位原文件*.NCL
3 p A6 n0 j3 d' Z/ OG00G90G94G55―――――――――选择工作坐标系; I7 A# e; N. z3 M4 k% b
FGROUP(X、Y、Z、A、B)―――――多轴开
8 @' o) C, g7 P3 k1 r) G/ m8 vG90――――――――――――――绝对编程
* S+ B( |7 {, F7 vM03S2300――――――――――――主轴正转、转速为2300# _6 b- T- N" K/ y
G00M08--------------------------冷却液的开
2 `7 d/ `, ?9 k0 ?0 V% |# U7 [6 z1 ?将最后4行转化为:
- P, }+ K, v9 ]0 LM09-----------------------------冷却液的关) l/ a* ^, U# Y+ T1 Y! C
M05-----------------------------主轴停; i$ T! G3 e+ S7 n/ N
G00-----------------------------快动
7 Z+ _2 r v7 L* X$ ~G90-----------------------------绝对编程
# K9 T+ R( |- T! J8 x5 H* f( fM17―――――――――――――――回主程序# r0 f& M* O4 ]/ H' ^. a" ^
M02----------------------------程序结束1 R# B& ]0 L0 i# c7 L
1.3 坐标变换) S2 K1 w% N# V0 `, B* h3 [
对于五座标数控加工,刀位原文件中刀位的给出形式为刀心坐标和刀轴矢量,分别为GOTO后面的两行,刀心坐标表示的是刀具中心线与刀具最外缘交点处相对于加工坐标系的值,以绝对值的形式给出的,如图2.1.1的第16段GOTO/849.63,-152.268,113.64,$。刀轴矢量表示的是刀心坐标点处刀具中心线的矢量方向,是以单位向量的形式给出。如(图2.1.1)的第17段 0.2715,-0.6830,0.67804。刀心坐标和刀轴矢量在二维平面上可用图2.1.2(刀心坐标和刀轴矢量图)表示,三维空间上只不过表示的是三个方向而已。图所示为加工叶身背弧时,使用的刀具直径为28,圆角为5,刀具主轴与曲面法向方向成25°的倾角铣削。由于此种机床为为旋转摇摆式五座标数控机床,机床坐标分别是X、Y、Z、A、B,对于三维空间的坐标变换本应分三次完成,但由于此机床只有绕X轴的旋转和Z轴的摆动,因此坐标变换只需分两次在二维下进行计算,并分别计算出A、B的值和X、Y、Z的值,以下分别进行讲解。; P8 ?: Y5 g# v4 a' p* i
1.4/ I+ k/ z0 d& p; i
Y、Z平面内坐标变换及A值的计算9 @+ @, B. m3 r9 p
由Pro/E生成的刀位文件(*.Ncl)设刀心C在工件坐标系中的坐标为(x,y,z),刀轴矢量A(为单位矢量)在工件坐标系中为: (ax,ay,az),由于是
' v. x! {. f+ q& [( N0 s0 o/ M图2.1.2
7 M8 J: Z& G, ~, o刀心坐标和刀轴矢量图6 f. {, H) @9 ~
在Y、Z平面内的坐标变换,因此X值和ax在此处暂时不用。因为实际机床加工时,刀具是不会相对于X轴旋转的,刀具中心线是始终与XOZ平面平行的,只是工件在相对于X轴旋转,为此我们首先必需将工件坐标系旋转一定的角度A使XOZ平面与刀具中心线平行。为方便A值的计算先将刀轴矢量的起点移到工件坐标系的原点,如图2.1.3(A值计算),A值的计算是从Z轴开始的,为方便刀心坐标值的计算取A值为正,则工件坐标系的旋转始终为逆时针转动。(A值亦可取负值,只不过工件在机床上第一次旋转是顺时针转动而已)A值的计算如(式2.1.1):
. r7 w6 D b3 u8 P) j6 \# e
3 W3 K# N* G, v1 L图2.1.3
8 t+ M" P1 ~7 ?: Z# ~刀轴矢量A值计算 J) \. C* m+ t
A=arctan|ay/az|
) @5 Q& J; u% J0 i& _. s* h1 T(ay≤0且az>0)
, B3 n& P0 \6 x# j s7 h3 dA=180°- arctan|ay/az|, ^4 Y; x' l- L5 X
(ay≤0且az<0)3 b7 @8 D2 d/ T- \' \
A=270°- arctan|ay/az|
; ^! ]% w* m& C7 @: N/ v' O(ay≥0且az<0)
' N) c+ `! ?# h; u5 q% r式(2.1.1)
q3 j" j" p* H; u, i0 g4 p* Q" A8 a+ k- S6 W- V+ k
| A=360°- arctan|ay/az|/ Q. _$ C0 V R& ]9 w
(ay≥0且az>0)1 ^% P. ~ B0 l: ?! c
当az=0时,A值分别为以下两种情况:
3 E2 F/ g$ X" d- z; dA=90°
$ n0 f# J* F% b7 \6 @(ay < 0且az =0)
; I: O9 d* i. ]& Q+ i, J+ mA=270°! t' R9 Z0 @" e2 E! `% i$ o( O
(ay >0且az = 0)
% r" K" e1 I& m& I4 S9 N
2 E7 k' {: N" E. \此时计算出的A值为相对工件坐标系的绝对坐标值,为使处理出的程序为相对坐标编程,除G91前的角度A值就是NC程序的角度A值之外,G91后的NC程序中的角度A值均为后一个角度A值相对前一个角度A值的值,即相对值△A,而相对值有可能超过±180°,实际叶片加工的程序除选择工件坐标系后的第一个A值是任意值(当然不会超出±360°),其余的A值根据叶片曲率的变化最大也只有几度,因此根据不同的相对值△A应作不同的处理。例如有一个A值是1°,紧跟下一个A值是359°,此时△A=358°,而实际上我们要求工件转动-2°,而不是358°。设处理出的NC程序中的相对转动角用A'来表示,则A'的计算如(式2.1.2)。
. n* W0 r/ V5 r! e$ @9 T( ^ ! w2 g, M% k9 A
△A=An- An-1
- P0 ]8 e6 a0 o! T7 p4 n式(2.1.2)
! F) G9 X" D% R
, I4 D; H! a+ x; q, |/ l/ p; { | A′=△A;
2 }- T& U, _2 [7 q- ?- q/ E0 c(|△A|≤180°)
/ {; M; W( ]' A. r; yA′=-360°+△A) q, U& `( Z, }1 J: O# N8 \- Z
(且△A>180°)0 q7 t Q- p6 P/ b6 y
A′=360°+△A! y6 b) Q& N! j9 W" p
(且△A>180°)5 w8 J2 S) U# }; |) M+ N
按(式2.1.2)计算出工件相对工件坐标系需转动的A值后,由于坐标系的旋转使得刀心点的坐标值发生改变,因而现在必需计算坐标系旋转一个A后刀心点的坐标值,旋转后刀心点的Y坐标值才是NC程序中所需的绝对坐标编程时的Y值,而旋转后的Z值还需在后面做依一次摆动计算。在平面中工件绕X轴旋转一个A值的变换矩阵为(式2.1.3),式中的A值是按(式2.1.2)计算出的A值。
0 J. k. p6 H& X& Q/ L8 A" W x& c cosA. U5 Z [8 t1 g! Y1 p
sinA T=; s5 c; [1 ` [+ ?
$ i! U* d6 i1 `- ?- y/ K g(式 2.1.3)
' t! \' C0 g8 {/ ]; q' O# [5 o7 o! G4 i: [* v
-sinA1 r0 s8 |6 H. {' {/ F+ ?! Y+ z" p
cosA3 Z0 n7 G0 K y! Q
. ?' c! Y$ t" T; V则按变换矩阵变换后的坐标值(Y',Z')为:8 ~$ O/ n, \4 d! M* F- z
# t' M; Q2 m& l4 V# \* `- b/ OcosA( y8 G# i% q8 e- b* J ^) x/ g8 o
sinA
& i& y) v7 |) X, d(Y',Z')=(Y,Z)T=(Y,Z) 3 x4 X4 T5 X% Q; ^7 l! o/ ~
8 r/ _0 p+ C3 B3 H( g0 i( d% A sinA
1 ]+ N, K0 i% S) c( McosA
: V9 L* ]6 u) L7 u0 h) ~8 K# B' f& l6 x
' x. X% v9 O( P$ G1 {将其展开就得(式2.1.4):" [: w, d) G0 `% p) S- }, Y
Y'=YcosA-ZsinA ! O2 o3 L2 s# Y( x, o3 @
Z'=YsinA+ZcosA
6 c7 b1 }% g3 w: ? C在(图2.1.3)刀轴矢量方向与Z轴的夹角为A,当工件坐标系旋转一个角度A值后,此时刀具中心线与YOZ平面平行,刀心坐标从(Y,Z)旋转到了(Y',Z')如(图2.1.4)所示。完成上述旋转计算后刀位点的坐标在三维空间下就由(X、Y、Z)变成了(X、Y'、Z')
; F; J# X. r+ l
6 P, d% t5 y1 ^1 C1.5" t" G' b- G6 x1 T& X1 u/ W
X、Z平面内坐标变换及B值的计算# V, }" B3 _2 H7 a+ x: G; J7 a
9 t, {/ y% Z2 R在进行了旋转运算后,由于机床是旋转摇摆式机床,因此还需要一次摆动计算。要进行摆动计算得先计算摆动角,由于刀轴矢量当YOZ平面内旋转时并不影响刀轴矢量方向与YOZ平面的夹角即B值,因此B值的计算任然按*.NCL中给出的刀轴矢量分量进行计算。为计算方便,把刀轴矢量的起点移到坐标原点,摆动值B是指刀轴矢量与YOZ平面所夹的锐角,因为机床的摆动角度值在-40°~40°的范围,当然叶片的加工中B值的摆动不会超过±30°的范围。当把刀轴矢量的起点移到坐标原点后,摆动角B的方向规定刀轴矢量在X轴的负半轴内角度值为负,刀轴矢量在X轴的正半轴内角度值为正,由图2.1.5(B值图)则B值可按下述(式2.1.5)计算:设*.NCL文
P" c6 n1 o+ I( G6 _' ^1 J% ~0 t O4 w) A4 k, p) y; l5 i
图2.1.5
# J* }: P3 J3 B+ B5 }B值图 件得到的刀轴矢量方向为(ax,ay,az),则
8 d* ?$ r8 S/ q& N( d saz′=(az2+ ay2)1/2" P; q" f6 f' H2 m( I
(式2.1.5)
% t( k0 m6 a- v5 ]" K) `+ u* r8 S; p( ?; p7 \
| B=-arctan| ax/az′| - B `: k# E# q; p
(ax≤0)
2 c! z$ m+ J0 JB=arctan| ax/az′|9 z, A0 J/ }! G4 @, F( p
(ax>0) m5 k) B5 {# Q* O( A2 s
本机床的摆动是XOZ平面内的摆动,而摆动原点在刀具长度为150mm的位置,刀具长度在大于150mm与小于150mm的位置计算方式会有所不同,由于摆动半径R=|△L|=|150-L|的存在,使得摆动原点不在刀位点上,刀具摆动后则刀位点发生变化,事实上我们要加工的是没有发生摆动时的刀位点,因此我们需要计算出摆动量,然后将摆动后的刀位点补偿到摆动前的刀位点。刀具长度刚好等150mm时归入那一类均可以或者跳过此次摆动计算,实际加工中刀具长度一般不可能刚好等于150mm。刀位点的摆动补偿计算时,按刀具长度的不同分成两种情况进行。
1 g1 ?% V; z; y9 Q/ d* r3 X Y设刀具长度为L,当L≤150mm时,此时的摆动点在刀位点的下方,它的计算可按图2.1.6(L≤150mm时的摆动)进行。摆动半径R=△L=150-L。刀位点是(X、Z'),其计算为(式2.1.6)。
' P1 }$ L. q- o( \X'=X-△X=X-RsinB=X-△LsinB
* m' ^( [9 \) w% g, G 3 L, \ \( \" J, q& W
式(2.1.6): Z" L# V$ p+ s \0 R' P7 A
Z''=Z'+△Z=Z'-RcosB=Z'-△LcosB
- r, H5 L- v' h 图2.1.6 L≤150mm时的刀摆动
, q5 e( W5 z9 Z7 Q" ^/ d当L>150mm时,此时的摆动点在刀位点的上方,它的计算可按图2.1.7(L>150mm时的摆动)进行计算。摆动半径R=△L=L-150。刀位点是(X、Z'),其计算为(式2.1.7)。% I: c3 v N& ?- F
X'=X+△X=X+RsinB=X+△LsinB ' [* Q" Z+ A/ R" t: i0 Z
5 o% [+ m2 Z; t0 I: N( t2 r
式(2.1.7): W! } @& G& Q" B. ?
Z''=Z'+△Z=Z'+RcosB=Z'-△LcosB - _4 G8 P3 N% ~! s
按YOZ平面的旋转计算和XOZ的平面摆动补偿计算完成后,得到的刀位点为(X′,Y′,Z″),旋转角A和摆动角B,如果是绝对坐标编程,此时的刀位点的坐标值就是NC程序中的坐标点的值,旋转角A和摆动角B亦为NC程序中的旋转角A和摆动角B。当采用相对坐标编程时,G91后面的所有坐标点和角度值都是相对前一点的坐标值和角度值,因此需要进行后一点坐标值减前一点坐标值的计算,计算时按X、; w4 E& @) \" y% A z
1 Z: }+ d7 q* |, O0 ]7 J4 h6 G k! R
图2.1.7 L>150mm时的刀摆动
& G7 l5 p$ ?1 T+ }' k* w7 n4 RY、Z分别进行,后一角度值减前一角度值的计算,计算时按A、B分别进行。计算相对A值时按(式2.1.2)进行处理,其余的相对值则直接相减就得结果。) Y# G. ? q m* w- @0 P
完成上述计算后,理论上是完成了程序的后置处理,可以上机床进行加工了,但针对叶片加工的特点,本后置处理还作了进一步的处理。
5 T U1 G: i7 f0 i4 p7 x6 m" O1.6 计算动态速度
% O! u) f' l' n' q' d9 T$ d% [选择合理的切削深度ap、进给量F和切削速度vc对于保证加工质量、降低加工成本和提高劳动生产率,都具有重要的意义。在机床、刀具和工件等条件一定的情况下,切削用量的选择具有灵活性和能动性。应充分发挥机床和刀具的功能,以取得生产的最大效益。如切削用量选择得当,就可最大限度地挖掘出生产潜力;倘若选择不当,则会造成很大的浪费或导致生产事故[14]。/ k' t p( A% b4 b% F+ Q% k
叶片的五座标加工主要是加工叶片的叶身和叶根、叶冠平台,叶身部分为复杂不规则曲面,叶身型面是由多个截面混合而成的,根据截面图可以分析出叶身整个曲率变化规律——内背弧处型面较平坦,此处的曲率变化较为缓慢;进出汽边处型面变化剧烈,此处的曲率变化较大,如图2.1.8(叶身曲率变化)所示。在进出汽边处0 X8 ]9 V* Y0 ?4 E- \; P& f! N
: u" O$ M0 ?8 k* t
图2.1.8 叶身曲率变化
1 R6 V2 d- K; b& H+ {角度变化大,内背弧处角度变化小。如果在整个截面的加工过程中采用同一速度,由于曲面的加工是按照曲面精度给出的坐标点的值和翻转角度的值,叶身部分要保证相同的精度,则进出汽边翻转角度大,坐标点之间的距离短,内背弧处翻转角度小,坐标点之间的距离大,这样按同一进给速度既不能很好的发挥加工效率,而且在加工进出汽边时翻转角度大则整个进给速度慢,使得刀具在进出汽边因停留时间长而变成刀口状。在东汽厂叶片分厂的国外五座标机床后置处理软件有Liechti公司的Turbsoft后置处理程序和Rigid公司的Rcs后值处理程序,它们的处理是人为地将叶片截面分成进汽边、内弧、背弧和出汽边四部分,分别可以给予四个不同的进给速度,在进出汽边处给的切削速度相对较大,在内背弧处给的切削速度较小。
% m+ u# j0 n- Y& g在Pro/E的后值处理中,为了改变这种切削速度受曲率的影响而带来的问题,我们可以在曲率变化大而坐标点间距小的进出汽边加大进给速度,角度变化小而坐标点间距大的内背弧处适当的降低进给速度,为了达到这种目的,为此给出(式2.1.8)走刀进给速度F的计算式。
9 `+ b% f0 s, y: C( v9 jF′=|△A/△D|Fδ
) C0 ]/ p a" {- v* w5 U(式2.1.8)[15]/ m) M5 z! R# ]/ O0 G) X! W o: C
F′:NC程序中的进给速度
" w, z. b5 m5 m5 x& x3 s( r△A:程序中相邻两点之间的转动角。(就是相对坐标编程的A值)2 a# P0 a L, m: W0 e) x
△D:相邻两点之间的空间距离
- S6 y. o+ j* v* U. l△D=(△X2+△Y2+△Z2)1/2# t, }" L( o/ J6 j! e
△X、 △Y、△Z分别表示两相邻两点在X、Y、Z三个分向量之间的距离1 k6 E' T% M4 O9 _ C7 x- M M; R4 U
F:*.NCL中给出的标准进给速度。, M' a; Z7 |' O! ?
δ:调整系数。) b' `! Z" Z" }+ K- S" Y/ k) [
此时算出的F′不是直接可用的,因为进给速度值有一个范围,这个范围取为800mm/min~4000mm/min,当算出的F′小于800mm/min时取800mm/min,当算出的F′大于4000mm/min时取4000mm/min。调整系数δ的给出主要是为了让计算出的进给速度能尽量在800mm/min~4000mm/min的范围内均匀分布,而不是密集在某一处,如有可能算出的F′都小于800mm/min时,则进给速度都取800mm/min,这样动态变速计算也就失意义了,这时就应该加大调整系数,同理如果计算出的F′的都为4000mm/min,这时就应该减小调整系数。F是机床的合成进给速度,它主要由机床工艺系统的负荷能力确定。此外还需考虑机床的伺服驱动能力,由于各轴伺服特性不同,有时合成速度不是很大,但却能超出有些轴的驱动能力,产生报警或形成较大的加工误差,因此需要对其进行调整[16]。7 c( d, G5 Z$ ~7 K1 L- F, G+ n3 O3 Z
1.7程序的偏移及旋转
' p% Y4 q- l. C, k' O叶片型面的加工,理论上需按产品图加工到位。但根据生产的实际情况,常常需要将实际加工出的型线相对理论型线进行偏移或旋转。实际加工中需要将加工程序旋转或偏移的理由有以下几点:" i- a8 N( y- o7 N2 {4 Z$ }
(1)在加工型线的前工序中,由于操作者的失误或工艺流程的错误,导致整批料未按产品图加工,为了挽救该批料而又不影响产品的最终性能,因此需要将实际加工出的叶身型面相对理论叶身型面进行旋转或偏移。
5 P/ |8 W; B# N8 _; m(2)在五座标机床加工叶身型面时,叶根是由基准面定位装夹,叶顶采用顶针顶紧的方式,由于顶针孔的加工简单,定位牢靠,但顶针孔相对基准面位置的检测困难,因此通常顶针孔通常相对基准面会出现偏移,在加工叶身型线时,为了补偿这种偏移,就需要将程序进行偏移。
1 `! o, N4 _/ Q(3)在隔板或转子的加工过程中,由于转子或隔板的加工错误,常常需要照配叶片,这时加工叶身型线时也需要将加工程序进行旋转或偏移。( ?" i" ^$ G( R0 _: Q
实现加工程序的偏移或旋转的方式主要有两种,一种方式是重新建造加工模型,建立加工坐标系,生成刀位原文件,然后通过后置处理程序生成机床能够识别的NC程序,这种方式就显得太繁琐了,工作量大,而且也容易出错。另一种方式是直接在后置处理程序中通过参数的设置,将正常加工的刀位原文件生成需要将叶身型线进行旋转或偏移的NC程序。这种方式简洁易行,也不容易出错。下面就讲解通过后置处理程序中参数的设置来实现程序的偏移或旋转。
+ H; ~3 j% ?4 c! _以二维图简要的说明需要偏移或旋转的情况,如图2.1.19(旋转偏移图)实线表示叶身的理论型线位置,虚线表示需要旋转和偏移到的位置,图中所示相对A轴的需要旋转的值为Ф,相对Y和Z方向需要偏移的值为M和N。
# e3 M0 j+ J, _- p; GNC程序的旋转主要通过A轴的旋转来实现,设NC程序相对A的旋转值为Ф,A为NCL文件中的值,A′为旋转后的值,则旋转一个Ф值后A值的计算如(式2.1.9)NC程序旋转计算旋转式:
2 B/ P }: C2 q/ t1 D% r' e; eA′=A+Ф6 u; k. P* l5 ^7 i: K! Z, ]
(2.1.9)
' Q- N, A' S; s4 z 图2.1.10 旋转偏移图8 z+ `8 ^0 }6 v. x
设NC程序在X、Y、Z三个方向需要偏移的值为L、M、N。将需要偏移的值L、M、N填入4X4阶变换方阵的第四行,就得到三维偏移变换矩阵:- Y4 g3 E* `" E
# y6 L/ Q8 i& j) _: d% g
13 c* f4 H) {* _+ L, g
0
0 m) `7 t4 L' ~4 r. |: a1 \0- r- Z4 J# c5 f# M9 S. J
0
7 `' A+ `# ^5 W7 M! e# J(X Y Z 1): P5 c5 L/ z) t1 `6 m1 j8 k
09 r8 C" h0 L- a/ q" ]
1
! Z- i+ Y1 ~+ N0
+ {! |5 G! M8 j) x0- D* t5 E# {) Z6 G9 s
= X+L Y+M Z+N 12 A5 W) |8 R) h" g" D; s# W
=8 C3 u, S6 F+ _' N' ?
X′ Y′ Z′ 1
3 Z( O8 B* u" W1 e- @. q5 C' U! L3 A
0
5 R! @% c+ L( i! ]. y' r+ a0( U4 [) o7 j6 N0 Q3 y: k) ?" g
1
' ~- z1 V8 c5 G/ d2 \0
% |7 Y* _% @# m I+ p% {& p' }5 h, o2 N8 b
L
" e, s5 b P* h! t$ AM
3 t* X- \4 w" yN; u5 q6 u8 V" h& O& `! \/ [6 v' O9 I
1# F$ l) \% `) ?! y
将其展开得(式2.1.10)NC程序的偏移计算式:8 Y$ S6 X0 |. C7 K
X′= X+L6 {4 K4 y5 W! ^9 ~
7 A0 S3 M, o' q3 M, g1 f" bY′= Y+M
; U8 J0 ^: W! P, X. `+ W(式2.1.10)
4 Y3 G" _0 k- M8 e: T/ }4 O- q: L3 G- F8 O
Z′= Z+N# y) T) b& [8 Q6 N
/ f3 P. m% X5 K2 p
5 r* o; G8 ~$ W K; Y7 s) ~当然偏移旋转计算并不是每一次都有L、 M 、N、和Ф值的计算,通常只有其中的一个或几个需要计算。当某一参数不需要变动时就将其值设为零。: K" P- R9 o' p
, b9 C: M3 a) ?/ ?* U* i至此就将本次Pro/E叶片旋转摇摆式五座标机床加工后置处理开发的计算原理推导完毕。3 z% ]( V; G7 E$ M Y
2.后置处理程序的实现6 o- Y6 e) K3 x" ~
9 a: ~- c: w6 n) @' L. n3 j原理计算完成以后,后置处理程序的具体实现主要有两种方式。一种是在后置处理的加工软件中,通过Pro/E软件自己的宏指令来实现。具体作法是:打开Pro/E软件(野火版),点击菜单“应用程序(P)--NC后处理程序(N)”,进入Option File Generator的窗口,通过选取相类似的机床进行修改一系列参数即可完成特定机床的设置。对具体的运动算法通过菜单选项Advanced—FIL Editor则进入宏指令FIL语句的编辑窗口。运用这种方式进行编辑后置处理程序,首先要对机床的参数非常熟习方能完成机床参数的设置,其次要对特定的FIL指令运用自如才能完成前面后置处理程序的计算原理的实现,因此对一般的非专业人士很少用这种方式来实现后置处理程序的编辑。
5 G2 I- O O7 S1 \0 d8 K* B: C另一种方式是采用通用计算机语言如:VC、VB等语言来实现,采用这种方式的好处是在掌握一门计算机语言的基础上,只需有刀位原文件(NCL文件)和知道实现机床运动算法的原理即可。本论文采用的是第二种方式,用VB语言来实现。在读取如图2.1.1(刀位原文件)的时候,在读取的是字符的时候就一直往下读,直到出现GOTO时就停止,然后就将读到的字符进行字符转换。转换完后就读GOTO后的数据,在读到GOTO字符的时候,必需把一个完整的数据读完,在*.NCL文件中是两行,读完两行后就按照前面的计算原理进行相应数据转换。接着再往下读取数据或字符,如此往复,直到出现FINI是就完成了一个完整的*.NCL文件转换。用这种方式一般只需几秒钟就完成一个原文件的转换。特别需要注意的是不要将整个*.NCL文件读完了再进行转换,如果是这样,则转换一个一般大小的*.NCL文件(如50KBD大的文件)都需要几十分钟。7 z& _# G) P- b' Z
用VB语言来实现后置处理程序,最后生成一个如(图2.2)后置处理程序操作界
+ @6 v" C- m: |! h$ h0 S , I+ y. B4 `; O3 {, K
|
|