Pro/ENGINEER是由美國(guó)PTC公司開發(fā)的三維CAD軟件,在工業(yè)造型設(shè)計(jì)和模具設(shè)計(jì)制造行業(yè)中得到廣泛應(yīng)用。運(yùn)用Pro/ENGINEER軟件,設(shè)計(jì)人員可以在計(jì)算機(jī)上實(shí)現(xiàn)虛擬現(xiàn)實(shí)設(shè)計(jì)和制造。 在Pro/ENGINEER軟件中,Program模塊是自動(dòng)化零件與組合件設(shè)計(jì)的一項(xiàng)重要工具,使用者可以經(jīng)由非常簡(jiǎn)易且高級(jí)的程序語(yǔ)言來控制特征的出現(xiàn)與否、尺寸的大小、零件的出現(xiàn)與否、零件的個(gè)數(shù)等。當(dāng)零件或組合件的Program設(shè)計(jì)完成后,往后讀取此零件或組合件時(shí),其各種變化情況即可利用問答式的方式得到不同的形狀,以實(shí)現(xiàn)產(chǎn)品設(shè)計(jì)的要求。
4 W; d4 Z% V# K6 e/ ?; [ 齒輪雖然在機(jī)械行業(yè)中有廣泛的使用,但Pro/ENGINEER軟件不能直接生成。通過復(fù)雜的造型設(shè)計(jì)雖可以生成齒輪,但變化齒數(shù)、模數(shù)和變位系數(shù)后,又需進(jìn)行復(fù)雜的設(shè)計(jì)計(jì)算和造型形狀判斷,工作量很大,齒輪的三維造型設(shè)計(jì)成為造型設(shè)計(jì)中望而卻步的工作。本文基于漸開線齒輪的生成原理,結(jié)合Program程序,研制出變位直齒圓柱齒輪實(shí)體造型的自動(dòng)化設(shè)計(jì)程序,用戶只要輸入齒輪的設(shè)計(jì)參數(shù)(齒數(shù)z1、z2,模數(shù)m,變位系數(shù)x1、x2,齒槽圓角半徑、齒寬、軸孔直徑、鍵槽高度和寬度)就可以快速地生成齒輪實(shí)體,使用簡(jiǎn)單方便,該設(shè)計(jì)軟件可以廣泛地應(yīng)用于網(wǎng)頁(yè)設(shè)計(jì)和機(jī)械產(chǎn)品造型設(shè)計(jì)中。' P; u4 ?) V0 Y+ w
2 齒輪齒槽形狀的精確確定
) r! p8 Z- O% T- N; |0 ~7 A 齒形的漸開線形狀可通過高級(jí)Sweep特征設(shè)計(jì)精確地設(shè)計(jì)出來,但齒輪齒槽的形狀與齒輪齒數(shù)、模數(shù)、變位系數(shù)和壓力角有關(guān)。具體地說,下列兩種情況決定齒槽的形狀:
1 u7 i s$ C* I# G1 a 3 Z2 t! \9 Y5 Q, ?& ]; j7 ^
( R J+ g6 z# N. F; @7 \! | L' J! j
圖1 第一種情況的齒槽形狀 圖2 第二種情況的齒槽形狀 即:齒根圓的半徑小于漸開線的基圓半徑時(shí)和齒根圓的半徑大于漸開線的基圓半徑時(shí)。為了敘述方便,下文中,分別稱前者為a情況,后者為b情況。因齒輪的嚙合只在漸開線部分,因此對(duì)于a情況,設(shè)計(jì)時(shí)可在基圓的以下部分加與漸開線相切的直線以連接齒根圓,如圖1所示。而對(duì)于b情況則無(wú)需加相切直線,僅截取漸開線的一部分即可,如圖2所示。
: N- F G" D9 j5 n8 v3 程序設(shè)計(jì)時(shí)需解決的幾個(gè)關(guān)鍵問題& {5 O- v0 k: R1 {- T2 D
3.1 嚙合角的計(jì)算- l& S+ [# [% E- i0 u1 c- x6 q7 z
變位齒輪的齒頂圓直徑和嚙合角有關(guān),因此設(shè)計(jì)時(shí)必須先由輸入的齒輪設(shè)計(jì)參數(shù)經(jīng)過復(fù)雜的數(shù)學(xué)計(jì)算得到嚙合角值。
) T( b/ n1 Z. }' K/ Z 我們知道,外齒合時(shí)的嚙合角計(jì)算公式為:
7 l! S/ _0 ^5 ], t* @ : U3 E7 t) h+ Z: V5 N* U
可見 無(wú)法由顯式直接表達(dá)出來,因此也就無(wú)法直接計(jì)算出來。雖然用C語(yǔ)言可以數(shù)值計(jì)算出 ,但Program自帶的程序不支持C語(yǔ)言,幸運(yùn)的是利用Program自帶的解方程程序可以解出 ,具體的設(shè)計(jì)程序是:
* C- |; @3 D1 q8 A: y2 D 5 u7 ]6 L+ @ c4 h4 J0 T
上式中 必須賦初值,否則數(shù)值解會(huì)不確定,考慮到嚙合角一般大于10度,所以初值設(shè)為10即可。由于Program程序中三角函數(shù)內(nèi)的角度是度,因此公式右邊最后的 應(yīng)處理成弧度,以便和tan 同量綱。3 l! C3 R1 K! ~( U9 s. }$ m
3.2 a種情況和b種情況齒輪的調(diào)用8 x: {7 y/ E& I4 ]& m& r
對(duì)于Pro/ENGINEER軟件,在零件設(shè)計(jì)模式下是無(wú)法實(shí)現(xiàn)兩種不同零件的調(diào)用的,但在裝配模式下可以實(shí)現(xiàn)這種調(diào)用功能,具體的方法是:在.asm下新建文件,坐標(biāo)系統(tǒng)為mmns,把a(bǔ)、b兩種情況的齒輪造型在基準(zhǔn)缺省方式下直接裝配在一起,這時(shí)的裝配件是a和b兩種情況齒輪的重疊,Program編程時(shí),通過判斷齒輪的齒根圓半徑是否大于漸開線的基圓半徑來決定采用a種情況還是b種情況的齒輪。若齒根圓半徑小于基圓半徑,則采用a種情況的齒輪 ;否則,則采用b種情況的齒輪。 H) }! D1 W5 `9 S. K/ f
4 齒輪的自動(dòng)化設(shè)計(jì)程序流程圖
1 t- o. b0 I; ?/ F3 }% \ 4.1 a、b兩種情況時(shí)的齒輪自動(dòng)化設(shè)計(jì)流程圖 o* p: h G0 ^5 H
圖3是a種情況時(shí)齒輪的自動(dòng)化設(shè)計(jì)流程圖。b種情況的齒輪自動(dòng)化設(shè)計(jì)流程和上圖類似,只是齒槽設(shè)計(jì)時(shí)改為b種情況即可。0 B) M) k% w9 e( V+ v
4.2 綜合a種和b種兩種情況時(shí)的齒輪自動(dòng)化設(shè)計(jì)流程圖2 G2 f/ g* ?+ D6 A
綜合a和b情況后的自動(dòng)化設(shè)計(jì)流程圖如圖4所示。
, ]" P) @# u) f1 B8 u7 s( Z圖3 a種情況的齒輪自動(dòng)化設(shè)計(jì)流程 圖4 綜合a、b兩種情況后的齒輪自動(dòng)化設(shè)計(jì)流程 5 源程序
7 g2 L' A# y& M: U, S) D9 | 5.1 a種情況的齒輪自動(dòng)化設(shè)計(jì)Program原程序
) O/ l; L$ g: j; _VERSION
1 P, x# k# E* e. @! i- K- i$ sREVNUM 23833
3 J/ I1 q# C; I; kLISTING FOR PART GEAR_A/ @# B% F/ Z3 Z1 ?6 b
INPUT+ O6 z7 x0 g6 O x: I+ }- A
Z1 NUMBER /*齒輪1齒數(shù)) C4 V/ m8 a" o/ U) |
"Enter Z1: "
% |/ |1 e! e$ g8 I$ MZ2 NUMBER /*齒輪2齒數(shù)
! U% c( _! [ w2 r$ P) B1 c' o" p( m"Enter Z2: "
: @' ^- j" I t9 z U9 i1 @M NUMBER /*模數(shù)
( X- ^ I$ X* e, t"Enter M: "
' J( P( L# J m E# MX1 NUMBER /*齒輪1變位系數(shù)" I( v# A" F9 C/ D0 b
"Enter x1:"
8 _$ p3 Q9 N0 ^- _. V3 I' [X2 NUMBER /*齒輪2變位系數(shù)
+ ]. V4 L7 L* _0 i# e) l"Enter x2:"% A1 S/ o2 i. i' t% U
ALPHA NUMBER /*壓力角2 b7 j& I ?; w7 O$ ]
"Enter the pressure angle: "; |; h; l" M2 }6 w/ P( c1 [
GEAR_WIDTH NUMBER /*齒輪寬度
1 p. J4 x8 R6 r# W$ N0 y+ o"Enter the gear width: "
% Z5 V- g8 m. X; F# d: I8 }$ ARAD_FILLET NUMBER /*齒槽圓角半徑
' T. _; |9 f; m- R9 L"Enter rad_fillet:"8 E3 M. |! g& ?6 M
SHAFT_DIA NUMBER /*軸孔直徑
& c+ Q. E7 ~. p8 F"Enter shaft_dia:"- n7 L5 N2 D4 z/ }/ \5 F) }, J9 [$ ^: c9 c
KEY_WIDTH NUMBER /*鍵槽寬度
" f5 z6 C3 b" {6 s"Enter key_width:"/ T: z' m0 b2 |* |9 \
KEY_HEIGHT NUMBER /*鍵槽高度
* U1 Y0 q0 D. L7 w"Enter key_height:"
! H% q4 O( h& D9 Y3 e- FEND INPUT
: q1 n4 r [/ W2 }+ iRELATIONS
! F% n8 f5 b) s5 a$ C( ?INVA=TAN(ALPHA)-ALPHA*PI/180
c& u5 S7 E* t4 \ @* h, a /*標(biāo)準(zhǔn)壓力角時(shí)的漸開線函數(shù)值
& V7 E" Y# S$ A3 n# {$ Y0 W1 _INVAP=2*(X1+X2)*TAN(ALPHA)/(Z1+Z2)
5 o i& R @: C; b: h +INVA 1 i7 T4 e% y5 x/ q3 R5 [
/*計(jì)算嚙合角時(shí)的漸開線函數(shù)值
- n" q# x" {2 a' G4 Q) }# KAP=10
* m9 w0 r7 }: N/ f3 uSOLVE /*解方程程序- M8 h3 z* b4 G1 D0 @# K( U5 @; D
INVAP=TAN(AP)-AP*PI/1800 i" D" ]$ a, D' m6 k
FOR AP
+ L; M, e* k# E7 LHA=1 /*齒頂高系數(shù)# u* g0 I- K1 z- E. [) H( i8 N
IF M<1 /*徑向間隙系數(shù)的確定
% Q$ z6 t5 `% K- `) T# J3 @ C=0.35# o8 o9 Q6 T' W5 F# F" h/ Q
ELSE# {, H) W( o* ~- U( \1 A- \2 j- b
C=0.25! k1 ~7 v2 J5 [ `* z6 q8 _$ p# Z
ENDIF ( j7 { s X. r2 l/ Y( q; L
R1 = 0.5*M*Z1 /*齒輪1分度圓半徑
. a$ @* p9 v6 UR2 = 0.5*M*Z2 /*齒輪1分度圓半徑
; l x# N+ N+ n6 }4 s D = R1+R2 /*標(biāo)準(zhǔn)中心距% c4 n j; A0 a% ^5 r% O, j" ]" Q9 Z4 s
RD = D*COS(ALPHA)/COS(AP)
) x( I, \ e) Q8 w /*實(shí)際中心距7 ]+ k8 w; ^5 [% C
RB1 = R1*COS(ALPHA) /*基圓半徑$ v+ }( B# A, M5 J9 I
RF1 = R1-M*(HA+C-X1) /*齒根圓半徑. b2 L1 w4 A+ t
RA1 = RD-R2+M*(HA-X2) /*齒頂圓半徑& k2 I4 r# e$ b+ Y) \
THICK1 = M*(0.5*PI+2*X1*TAN(ALPHA))
* m4 h. V4 w7 _* U) } /*分度圓上齒厚(弧長(zhǎng))7 \6 N# x1 q% W7 k* E9 D3 }1 _% f `
TOOTH_THICK1=THICK1*COS(ALPHA)
+ W1 Y ~- V5 [+ F+ K9 S +2*RB1*INVA /*基圓上齒厚(弧長(zhǎng))
9 L! F" j0 E a; ~& j5 tANG_TOOTH_THICK1=TOOTH_THICK1/RB1*180/PI /*基圓上齒厚角(度)
6 P5 X0 ]5 p) ~8 Q; g+ x3 ~ PD0=RA1 /*內(nèi)部參數(shù)賦值5 B- c) V# `. f# Q3 U
D1=GEAR_WIDTH( F6 N' W9 I% W; M0 p6 B9 H. A
D2=360/Z16 O3 p- J$ u# A. [; |8 {8 H
D3=ANG_TOOTH_THICK1) U \# z; N0 ^
D4=180/Z1
4 S3 G( c' U1 y2 @( pD5=RB1
7 j5 c) B! _$ M2 p# D9 I. u+ ?D13=RF1
" W: T1 o* y# rD14=RAD_FILLET7 d4 F1 w0 a: S' O. w) z
D15=360/Z1
1 F. P% a9 r' ]: K" S1 s/ ^) TP16=Z1, I0 V& E. q2 K+ C7 c R9 e
D36=SHAFT_DIA9 b" ~4 {! q8 t* H- ?5 R
D37=KEY_HEIGHT
: c+ e6 z0 Q/ aD38=KEY_WIDTH
/ d4 _5 T, I( z# X+ SEND RELATIONS: R% C9 Q% c U3 i* N# A/ k: K3 n
…………………………
) l* K y% V J- G5 p5.2 b種情況的齒輪自動(dòng)化設(shè)計(jì)Program原程序$ S1 x' Y3 |' p- \4 A! {
VERSION & \ f4 v- D, ?1 _* r
REVNUM 60662
4 I. w3 [ ?4 Q0 [ m" xLISTING FOR PART GEAR_B! T# }7 B7 m' e/ ^. N
INPUT, J: P- A6 e3 w0 Y' ]
Z1 NUMBER /*齒輪1齒數(shù)
4 c, Z4 f- F4 o! s2 @+ ] "Enter Z1: "
/ q; S$ g$ z+ Q: A& D Z2 NUMBER /*齒輪2齒數(shù)" L% J: l4 b. J6 N; C( Q. D( G
"Enter Z2: "% p+ P% O& `# f+ u) i8 z% V
M NUMBER /*模數(shù)* L2 [( x- v3 o4 p+ m: N
"Enter M: "
6 k# d# Q# R5 t% g1 p% y2 @/ V X1 NUMBER /*齒輪1變位系數(shù)1 V+ j8 F9 M! I
"Enter x1:"
2 V) t5 ~" [( V; ]9 C$ z X2 NUMBER /*齒輪2變位系數(shù)2 p" @ [( k8 d8 f$ s
"Enter x2:"
7 p) j& ~, p7 h& \ ALPHA NUMBER /*壓力角1 ^% [; _$ @ D5 ?3 e8 _
"Enter the pressure angle: "2 i& r% g8 T6 Y8 R# S" l! W
GEAR_WIDTH NUMBER /*齒輪寬度3 y6 A2 X- ~7 X# ~9 q9 I
"Enter the gear width: "
6 c. o5 p: o/ q/ t) k# ]& ~ RAD_FILLET NUMBER /*齒槽圓角半徑
- u) Q; ]; |$ c# X) e: o "Enter rad_fillet:"
( l7 w: Y9 ~# N SHAFT_DIA NUMBER /*軸孔直徑
7 R! u, H+ i- `5 q3 ` "Enter shaft_dia:"
0 z( B+ ?: b; ? KEY_WIDTH NUMBER /*鍵槽寬度
7 p3 J/ C" D! G, q/ g "Enter key_width:"
, P$ K" A- H$ r8 G, b2 f8 S KEY_HEIGHT NUMBER /*鍵槽高度2 Y7 a0 t4 ^4 [$ d1 c" M
"Enter key_height:"9 Z* @# z$ x* A/ E' R
END INPUT6 c, Z, c5 P) ?% j- R8 ^6 y
RELATIONS
' z# V ^* I; i# vINVA=TAN(ALPHA)-ALPHA*PI/180 0 a7 S; [& O/ t( C$ d( { a6 Y
/*標(biāo)準(zhǔn)壓力角時(shí)的漸開線函數(shù)值
2 k6 C3 S' e- n, T- X2 UINVAP=2*(X1+X2)*TAN(ALPHA)/(Z1+Z2)
# s% h9 i7 x" K+ A- M$ Y/ T +INVA
7 M! d+ q+ T! V- N /*計(jì)算嚙合角時(shí)的漸開線函數(shù)值
$ V; H# B* T8 p" U/ _, V$ kAP=107 C# m0 q& w& }& @3 U0 r5 ?
SOLVE /*解方程程序
4 n! e+ `' u3 @5 |2 m1 E INVAP=TAN(AP)-AP*PI/180
' C, {3 y# I8 G3 nFOR AP , F6 E$ c8 P, \2 W
HA=1 /*齒頂高系數(shù)8 m) v( o3 @& Z) j6 C: a/ u7 i
IF M<1 /*徑向間隙系數(shù)的確定' g: ?# S' T3 p% O& h3 K1 @, P- i
C=0.35
* C* S8 M8 v4 r$ V% ]6 BELSE
+ _5 F! d; w; J( C' n% w C=0.25
( R$ Z9 U5 f3 B& b* @6 ]2 M }# ^ENDIF
5 }. N" A# R/ Q9 w+ }, r. l0 M$ u5 k) CR1 = 0.5*M*Z1 /*齒輪1分度圓半徑! P1 w1 @9 z9 s! [& D
R2 = 0.5*M*Z2 /*齒輪1分度圓半徑
- r: g, q) ?9 N* @% Q$ q D = R1+R2 /*標(biāo)準(zhǔn)中心距, ?( M! I: j3 o' ^& C; ?1 R) ~
RD = D*COS(ALPHA)/COS(AP)
. w2 t4 U# U- Z5 {( Y2 I! q; o /*實(shí)際中心距8 m; {( D% |/ V9 w
RB1 = R1*COS(ALPHA) /*基圓半徑. z) B* ^! V: d6 R) R
RF1 = R1-M*(HA+C-X1) /*齒根圓半徑
, d) {, s6 S& N0 NRA1 = RD-R2+M*(HA-X2) /*齒頂圓半徑" K" \" n5 V b! z( \4 [+ \
THICK1 = M*(0.5*PI+2*X1*TAN(ALPHA))& ]6 ~( e u, b! Y2 D
/*分度圓上齒厚(弧長(zhǎng))6 ?8 P) j9 ^/ e8 [
TOOTH_THICK1=THICK1*COS(ALPHA)
. v6 D* Y) |/ Z! a +2*RB1*INVA /*基圓上齒厚(弧長(zhǎng))
, I! ?% Q+ c+ SANG_TOOTH_THICK1=TOOTH_THICK1/RB1*180/PI /*基圓上齒厚角(度)) n4 G2 h m7 t+ M$ A5 X, p: w
D0=RA1 /*內(nèi)部參數(shù)賦值/ ~: Z: T& V8 D9 I
D1=GEAR_WIDTH
/ P0 w+ m+ u Y* ?D2=360/Z1
Z9 E2 q/ ~; v1 x5 T$ ~+ HD3=ANG_TOOTH_THICK1
e3 r% P6 X" R# `( WD4=180/Z1
' o' a5 D& B8 d1 T3 [: ND5=RB1$ O+ H3 N; {6 l6 U4 A
D13=RF1
, V* f" G4 v* \7 g0 \9 {D14=RAD_FILLET5 y+ ~+ @- {# x) |
D15=360/Z1. s9 [3 U% i2 h5 k: a
P16=Z1 u3 Z9 \* @, T8 p
D116=SHAFT_DIA( F8 P6 T/ C, h8 d5 ?- \
D117=KEY_HEIGHT
5 N( `( @2 `5 Q7 JD118=KEY_WIDTH1 _- d7 k" s" C! A' ]) W% a
END RELATIONS
; ?7 u" n j' M# b…………………… |