|
Pro/ENGINEER是由美國PTC公司開發的三維CAD軟件,在工業造型設計和模具設計制造行業中得到廣泛應用。運用Pro/ENGINEER軟件,設計人員可以在計算機上實現虛擬現實設計和制造。 在Pro/ENGINEER軟件中,Program模塊是自動化零件與組合件設計的一項重要工具,使用者可以經由非常簡易且高級的程序語言來控制特征的出現與否、尺寸的大小、零件的出現與否、零件的個數等。當零件或組合件的Program設計完成后,往后讀取此零件或組合件時,其各種變化情況即可利用問答式的方式得到不同的形狀,以實現產品設計的要求。+ K9 x* d* t9 V% w- c7 B1 b
齒輪雖然在機械行業中有廣泛的使用,但Pro/ENGINEER軟件不能直接生成。通過復雜的造型設計雖可以生成齒輪,但變化齒數、模數和變位系數后,又需進行復雜的設計計算和造型形狀判斷,工作量很大,齒輪的三維造型設計成為造型設計中望而卻步的工作。本文基于漸開線齒輪的生成原理,結合Program程序,研制出變位直齒圓柱齒輪實體造型的自動化設計程序,用戶只要輸入齒輪的設計參數(齒數z1、z2,模數m,變位系數x1、x2,齒槽圓角半徑、齒寬、軸孔直徑、鍵槽高度和寬度)就可以快速地生成齒輪實體,使用簡單方便,該設計軟件可以廣泛地應用于網頁設計和機械產品造型設計中。; E* |" Y' J+ _1 P' z ]: W
2 齒輪齒槽形狀的精確確定
1 N9 A2 _7 Z' Z$ ~6 s* l/ A ^! J 齒形的漸開線形狀可通過高級Sweep特征設計精確地設計出來,但齒輪齒槽的形狀與齒輪齒數、模數、變位系數和壓力角有關。具體地說,下列兩種情況決定齒槽的形狀:
) m+ x' t. F+ N- ^# ^ ! t# Y3 t, g( t# ?. T% `
. s0 V% M+ k) e0 Z5 ?圖1 第一種情況的齒槽形狀 圖2 第二種情況的齒槽形狀 即:齒根圓的半徑小于漸開線的基圓半徑時和齒根圓的半徑大于漸開線的基圓半徑時。為了敘述方便,下文中,分別稱前者為a情況,后者為b情況。因齒輪的嚙合只在漸開線部分,因此對于a情況,設計時可在基圓的以下部分加與漸開線相切的直線以連接齒根圓,如圖1所示。而對于b情況則無需加相切直線,僅截取漸開線的一部分即可,如圖2所示。
$ Y, O0 P+ L5 Q) ]3 程序設計時需解決的幾個關鍵問題" y4 Z- s9 G5 I7 g: ~" }
3.1 嚙合角的計算3 {9 }0 K7 _+ Y3 T2 V1 ~
變位齒輪的齒頂圓直徑和嚙合角有關,因此設計時必須先由輸入的齒輪設計參數經過復雜的數學計算得到嚙合角值。
. W$ ]0 e% F, W9 I 我們知道,外齒合時的嚙合角計算公式為:
* t3 z2 \- E/ t+ E5 H. i ) X! v' q7 M# P
可見 無法由顯式直接表達出來,因此也就無法直接計算出來。雖然用C語言可以數值計算出 ,但Program自帶的程序不支持C語言,幸運的是利用Program自帶的解方程程序可以解出 ,具體的設計程序是:( C% }* ~( w. E' H9 J+ ]
% e! F* r- M: A3 u
上式中 必須賦初值,否則數值解會不確定,考慮到嚙合角一般大于10度,所以初值設為10即可。由于Program程序中三角函數內的角度是度,因此公式右邊最后的 應處理成弧度,以便和tan 同量綱。
" y4 |# ?) W2 Q7 U 3.2 a種情況和b種情況齒輪的調用0 ^) _7 X. y! d M( z8 t4 ~
對于Pro/ENGINEER軟件,在零件設計模式下是無法實現兩種不同零件的調用的,但在裝配模式下可以實現這種調用功能,具體的方法是:在.asm下新建文件,坐標系統為mmns,把a、b兩種情況的齒輪造型在基準缺省方式下直接裝配在一起,這時的裝配件是a和b兩種情況齒輪的重疊,Program編程時,通過判斷齒輪的齒根圓半徑是否大于漸開線的基圓半徑來決定采用a種情況還是b種情況的齒輪。若齒根圓半徑小于基圓半徑,則采用a種情況的齒輪 ;否則,則采用b種情況的齒輪。" X& Y( \& w! ~- T" k: _
4 齒輪的自動化設計程序流程圖
0 k4 W( _0 o# c6 ~' a- h 4.1 a、b兩種情況時的齒輪自動化設計流程圖
* M" p8 h' V' J5 y 圖3是a種情況時齒輪的自動化設計流程圖。b種情況的齒輪自動化設計流程和上圖類似,只是齒槽設計時改為b種情況即可。
) Y5 F$ ^: [$ f1 O 4.2 綜合a種和b種兩種情況時的齒輪自動化設計流程圖
. \) |1 A9 F3 V" l0 D6 V: @" Q 綜合a和b情況后的自動化設計流程圖如圖4所示。
8 }: f6 L. W1 D0 O$ C圖3 a種情況的齒輪自動化設計流程 圖4 綜合a、b兩種情況后的齒輪自動化設計流程 5 源程序% g& d5 U5 ~* B7 }; E7 T$ D
5.1 a種情況的齒輪自動化設計Program原程序
/ d2 H/ j- l, yVERSION 2 q* z8 F7 D! G
REVNUM 23833
9 m' }6 X& f: R! K0 @' Y, nLISTING FOR PART GEAR_A
* G2 E B* I7 k' RINPUT% u, Q+ x9 p3 s8 x4 W
Z1 NUMBER /*齒輪1齒數9 }: m5 F8 q' U/ g; a. P0 I U( V
"Enter Z1: "
4 p0 m7 V; T+ cZ2 NUMBER /*齒輪2齒數0 y' M; e8 Y% f# w" S# }7 P# G
"Enter Z2: "
8 V7 C% d1 M) u9 [8 @& e; i' fM NUMBER /*模數$ i; A3 ^& a$ b/ R/ _* }
"Enter M: "; v+ ~' P; t7 {5 k! r2 b: N
X1 NUMBER /*齒輪1變位系數' F0 o N9 p+ W8 N0 v
"Enter x1:", W3 _. m, n. h
X2 NUMBER /*齒輪2變位系數+ L* _3 l, d7 o5 |' Q6 z8 W3 j
"Enter x2:"# o5 H/ D6 v! q1 ~6 E
ALPHA NUMBER /*壓力角* f6 C6 ^+ L6 [, \& J
"Enter the pressure angle: ") q/ r) ?/ g" c- K; v
GEAR_WIDTH NUMBER /*齒輪寬度
0 q |% B Y5 [4 @; J"Enter the gear width: "
- ?1 W2 m3 `$ r% T' O9 E1 E/ rRAD_FILLET NUMBER /*齒槽圓角半徑" w# Z8 Q0 N/ y, y: B( \: [
"Enter rad_fillet:"
7 W2 {% Y, z2 y/ K- pSHAFT_DIA NUMBER /*軸孔直徑
' B, Q% B/ q( M5 J9 ^"Enter shaft_dia:"7 M4 `! D% W6 a5 M' l s7 d% m
KEY_WIDTH NUMBER /*鍵槽寬度* i( v c* v* p, m- u1 ]4 M; C8 ]
"Enter key_width:"
0 Q9 k! |5 W. a1 b5 x3 ~KEY_HEIGHT NUMBER /*鍵槽高度0 o* q! D7 r. J0 ]& |, n" F3 d
"Enter key_height:"
8 R% ~9 ], E5 b7 v3 FEND INPUT% b- L( d4 S/ u0 x
RELATIONS* l' C1 M2 O/ a- Q" N9 Q$ ~
INVA=TAN(ALPHA)-ALPHA*PI/180
& p' e! T( l7 r/ V8 I /*標準壓力角時的漸開線函數值& ?! F" A8 P& n
INVAP=2*(X1+X2)*TAN(ALPHA)/(Z1+Z2)
! e3 p" B7 ^ s; Q% t9 ?9 d +INVA 9 C9 v7 Q# J: {
/*計算嚙合角時的漸開線函數值
- }5 r% \* {! s% z, dAP=101 ~4 u4 f, H* N( j/ h% B1 n
SOLVE /*解方程程序
" `' {# p, O1 Y) J( y INVAP=TAN(AP)-AP*PI/180% g8 J% Q% b3 F& v! i
FOR AP ! m* }7 h0 X* Q
HA=1 /*齒頂高系數
( r/ U( P4 |' c. i6 [, P) g7 GIF M<1 /*徑向間隙系數的確定
& B6 C F: C. X* L- G) s3 ?% F! u C=0.352 R+ z9 Y! Y4 X+ u/ ^3 c$ d
ELSE
9 r) {- A' K- J C=0.25
, X y5 G! f5 X$ n6 XENDIF
7 L$ R+ Q* W7 p% u. QR1 = 0.5*M*Z1 /*齒輪1分度圓半徑8 {% E) s+ e: n+ u. Q
R2 = 0.5*M*Z2 /*齒輪1分度圓半徑/ B6 T' I+ y: r. g- ]
D = R1+R2 /*標準中心距
" s- f' ?0 R8 z% @% d9 e" yRD = D*COS(ALPHA)/COS(AP)
* g4 z+ ~8 g7 ^3 E: m2 g /*實際中心距: M! J2 F3 s& \5 c! f3 r
RB1 = R1*COS(ALPHA) /*基圓半徑2 O3 O5 G4 U: }; g
RF1 = R1-M*(HA+C-X1) /*齒根圓半徑9 g4 q2 _1 |6 O) \, t8 l& j/ n
RA1 = RD-R2+M*(HA-X2) /*齒頂圓半徑- T+ Y7 X2 V+ x! Y
THICK1 = M*(0.5*PI+2*X1*TAN(ALPHA))" P7 p' q; [5 O; a. D$ e) R. H4 X
/*分度圓上齒厚(弧長)
# ? b* k) b& A1 d' }TOOTH_THICK1=THICK1*COS(ALPHA)$ Q4 U9 }; Q Z2 j
+2*RB1*INVA /*基圓上齒厚(弧長), ]. `( ]8 f: K1 p
ANG_TOOTH_THICK1=TOOTH_THICK1/RB1*180/PI /*基圓上齒厚角(度). L/ D* g* ~ e/ t3 f6 I( ~' G
D0=RA1 /*內部參數賦值) {# T0 O2 X3 J4 R, E
D1=GEAR_WIDTH
2 U4 @3 x/ K. C8 K7 K' m( B+ T3 `- pD2=360/Z1! m- y: w5 B' `* M3 t2 R& \
D3=ANG_TOOTH_THICK1% _: w' l3 w ]- Y) S- p7 j
D4=180/Z1
* T$ D9 q( ?2 r( O" dD5=RB1$ a, e1 r% n7 K8 b' a: Z3 D
D13=RF1
& M7 t6 M+ L# H; SD14=RAD_FILLET
& k5 W# B; V' ^& E" J/ C5 QD15=360/Z1
2 H* ?3 z8 }7 p$ XP16=Z1
( e; O: _: f( a% P' n6 ]7 DD36=SHAFT_DIA/ y9 i2 F i. ~5 a
D37=KEY_HEIGHT
, B8 E- H$ N+ k2 C4 O% ^D38=KEY_WIDTH 9 J( O" D( L( B: L
END RELATIONS
" |. I; h: d. L+ d4 O3 T…………………………4 z4 `/ u/ q( c0 r+ R: `
5.2 b種情況的齒輪自動化設計Program原程序3 I# m* ?6 w: D) E( g
VERSION % C! |/ h( A O7 }7 T2 v4 _
REVNUM 60662
- S( ?+ m/ s, O9 X; F) I* OLISTING FOR PART GEAR_B9 H1 x* p# q [# `, o7 W. z
INPUT2 J# M7 V- V" Q/ m1 X
Z1 NUMBER /*齒輪1齒數
+ t; _, @ ^/ l) {- ?, \0 @ "Enter Z1: "! b+ `, c2 h o, x) U
Z2 NUMBER /*齒輪2齒數! W9 \. k% }' @- U/ O" }6 f
"Enter Z2: "
3 T+ v) G- r3 e8 s M NUMBER /*模數( B( g4 ^5 Q& }1 u" e& d
"Enter M: "
) s3 e9 o% b1 H" h0 ` X1 NUMBER /*齒輪1變位系數& t- ^. O2 r3 y/ Z6 t# N9 }
"Enter x1:"" h: G& c' r5 ?' w
X2 NUMBER /*齒輪2變位系數
$ O) n W8 G0 [( K5 o "Enter x2:"
# l$ Z! X! O9 P ALPHA NUMBER /*壓力角: C1 p% s. G0 w5 W: ?- m4 r! `
"Enter the pressure angle: "
5 ~5 j& V+ w7 l9 d9 }: y; n( d GEAR_WIDTH NUMBER /*齒輪寬度
, V# ` {5 B5 y0 J w0 [4 g' z1 m, F "Enter the gear width: "
. N' l; c& q$ D1 Q) I5 d RAD_FILLET NUMBER /*齒槽圓角半徑
, X1 w' t4 ]7 V( I7 D: b! L6 M "Enter rad_fillet:"' M8 a& ~+ X5 V2 D4 y
SHAFT_DIA NUMBER /*軸孔直徑$ z2 H2 H+ X! K0 }$ {
"Enter shaft_dia:"
3 z; k# J$ d' f' I; H KEY_WIDTH NUMBER /*鍵槽寬度
8 d; F: A7 |, D2 @ "Enter key_width:"0 X5 T! s- N+ ~ t* t2 m( Y* B
KEY_HEIGHT NUMBER /*鍵槽高度, l/ L1 t0 E# s1 h# t* [
"Enter key_height:"
3 D+ c* F! ]# E3 c+ R" `4 h# {END INPUT' d3 w4 d; `2 C5 r; U- j" m5 C
RELATIONS5 ^" s; ?) o- ]& W# g) _
INVA=TAN(ALPHA)-ALPHA*PI/180
( g8 a# J) y( w1 t /*標準壓力角時的漸開線函數值
/ V. M/ k( U5 x7 pINVAP=2*(X1+X2)*TAN(ALPHA)/(Z1+Z2)
, \) J$ l6 ]9 t' ?. S& o5 } +INVA
, {, \, O- s$ [' |" E1 x/ T /*計算嚙合角時的漸開線函數值. J9 g; {. u' E ]0 ]3 G
AP=107 y4 R! z7 v$ Y u+ r
SOLVE /*解方程程序
. @9 v+ M; _/ [8 M INVAP=TAN(AP)-AP*PI/180
; ^9 L1 K$ v% r4 nFOR AP
, F. M; b+ | r2 _* eHA=1 /*齒頂高系數8 ?9 ^. L8 w6 \- q& ^$ v' E- d
IF M<1 /*徑向間隙系數的確定$ b" ?2 X. j$ e+ A
C=0.35
. Y3 u$ D6 P3 G2 N' L; HELSE/ `* y, X2 U! i- g. t7 y1 e5 P
C=0.25
: E$ m- L+ F8 {& Z* j* l0 r( aENDIF 7 z7 V, y0 k: X. P* B3 ~, \
R1 = 0.5*M*Z1 /*齒輪1分度圓半徑! x; N2 s t2 f J, v9 D/ f
R2 = 0.5*M*Z2 /*齒輪1分度圓半徑. H3 b# m& y9 v3 O! `
D = R1+R2 /*標準中心距& R# u* _. u; O' ~( o! E
RD = D*COS(ALPHA)/COS(AP)
0 a# ^# g% ]8 s! Y1 ~ /*實際中心距
7 ?/ C$ U7 C) G( iRB1 = R1*COS(ALPHA) /*基圓半徑$ R6 s2 B# h% A$ t. w
RF1 = R1-M*(HA+C-X1) /*齒根圓半徑8 V$ ^1 _2 w4 a% i9 y8 i; S
RA1 = RD-R2+M*(HA-X2) /*齒頂圓半徑
. `$ e |# I& ^THICK1 = M*(0.5*PI+2*X1*TAN(ALPHA))5 L0 d }6 E* P- y" ^0 M+ K% f
/*分度圓上齒厚(弧長)
v4 O$ R0 L1 w( C* {+ ?5 oTOOTH_THICK1=THICK1*COS(ALPHA)' ~, n1 M5 j; D% }, K0 n& A
+2*RB1*INVA /*基圓上齒厚(弧長)8 i. B/ J' i9 r* R
ANG_TOOTH_THICK1=TOOTH_THICK1/RB1*180/PI /*基圓上齒厚角(度); y' u- [1 E2 O: g/ F/ m i; H0 j
D0=RA1 /*內部參數賦值
7 y, k. ]0 w3 `! P0 W# V* JD1=GEAR_WIDTH4 `3 T9 S) a4 h# ?5 l
D2=360/Z1
- U7 H* n! k! Y8 tD3=ANG_TOOTH_THICK1
[7 D% z8 u( y kD4=180/Z1
% |* Z. R* U5 t/ z6 ^& ?D5=RB1
+ l0 \, r9 }2 n4 ?3 U6 P6 h( c mD13=RF1+ r: o7 s# z7 ~9 m2 G
D14=RAD_FILLET
+ {1 J# s" d9 _& Q; L( wD15=360/Z12 M" X7 g/ R; p% x
P16=Z1
% l/ _$ J/ Q+ }: ~# k+ B- ED116=SHAFT_DIA
" }4 t5 k s$ u, E7 g# W3 J. |D117=KEY_HEIGHT
+ f8 \/ s" F2 b( OD118=KEY_WIDTH5 Y% L( F! S- |5 t
END RELATIONS7 e3 v: w( B/ n$ n `/ S! W
…………………… |
|