Pro/ENGINEER是由美國(guó)PTC公司開(kāi)發(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ǔ)言來(lái)控制特征的出現(xiàn)與否、尺寸的大小、零件的出現(xiàn)與否、零件的個(gè)數(shù)等。當(dāng)零件或組合件的Program設(shè)計(jì)完成后,往后讀取此零件或組合件時(shí),其各種變化情況即可利用問(wèn)答式的方式得到不同的形狀,以實(shí)現(xiàn)產(chǎn)品設(shè)計(jì)的要求。
; o4 R$ R m$ _9 e2 _6 B. V% C 齒輪雖然在機(jī)械行業(yè)中有廣泛的使用,但Pro/ENGINEER軟件不能直接生成。通過(guò)復(fù)雜的造型設(shè)計(jì)雖可以生成齒輪,但變化齒數(shù)、模數(shù)和變位系數(shù)后,又需進(jìn)行復(fù)雜的設(shè)計(jì)計(jì)算和造型形狀判斷,工作量很大,齒輪的三維造型設(shè)計(jì)成為造型設(shè)計(jì)中望而卻步的工作。本文基于漸開(kāi)線齒輪的生成原理,結(jié)合Program程序,研制出變位直齒圓柱齒輪實(shí)體造型的自動(dòng)化設(shè)計(jì)程序,用戶(hù)只要輸入齒輪的設(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ì)中。' Z2 G5 Q+ T2 B5 [
2 齒輪齒槽形狀的精確確定+ |" H. H: N; X/ z
齒形的漸開(kāi)線形狀可通過(guò)高級(jí)Sweep特征設(shè)計(jì)精確地設(shè)計(jì)出來(lái),但齒輪齒槽的形狀與齒輪齒數(shù)、模數(shù)、變位系數(shù)和壓力角有關(guān)。具體地說(shuō),下列兩種情況決定齒槽的形狀:; R- R2 I; Y- [
2 V& W w, r9 e! s7 l* ^7 q9 ?8 X" g+ O9 W5 d) N3 |. U6 J( R
圖1 第一種情況的齒槽形狀 圖2 第二種情況的齒槽形狀 即:齒根圓的半徑小于漸開(kāi)線的基圓半徑時(shí)和齒根圓的半徑大于漸開(kāi)線的基圓半徑時(shí)。為了敘述方便,下文中,分別稱(chēng)前者為a情況,后者為b情況。因齒輪的嚙合只在漸開(kāi)線部分,因此對(duì)于a情況,設(shè)計(jì)時(shí)可在基圓的以下部分加與漸開(kāi)線相切的直線以連接齒根圓,如圖1所示。而對(duì)于b情況則無(wú)需加相切直線,僅截取漸開(kāi)線的一部分即可,如圖2所示。 , D; ?) E! o: Z+ s( T: j6 Q
3 程序設(shè)計(jì)時(shí)需解決的幾個(gè)關(guān)鍵問(wèn)題* t2 r- A, y; S
3.1 嚙合角的計(jì)算
4 q+ z1 x. U6 t5 u( Q: \ 變位齒輪的齒頂圓直徑和嚙合角有關(guān),因此設(shè)計(jì)時(shí)必須先由輸入的齒輪設(shè)計(jì)參數(shù)經(jīng)過(guò)復(fù)雜的數(shù)學(xué)計(jì)算得到嚙合角值。
7 p# \" p# B: z: ]0 s) m7 {+ Z. I 我們知道,外齒合時(shí)的嚙合角計(jì)算公式為:! p/ c f! k; T
, \* K2 ?+ Q" J& C% G' t$ J" O9 r
可見(jiàn) 無(wú)法由顯式直接表達(dá)出來(lái),因此也就無(wú)法直接計(jì)算出來(lái)。雖然用C語(yǔ)言可以數(shù)值計(jì)算出 ,但Program自帶的程序不支持C語(yǔ)言,幸運(yùn)的是利用Program自帶的解方程程序可以解出 ,具體的設(shè)計(jì)程序是:
$ T u- @( l, _+ ]6 W/ S![]()
, A \5 C7 Z* u5 j/ d 上式中 必須賦初值,否則數(shù)值解會(huì)不確定,考慮到嚙合角一般大于10度,所以初值設(shè)為10即可。由于Program程序中三角函數(shù)內(nèi)的角度是度,因此公式右邊最后的 應(yīng)處理成弧度,以便和tan 同量綱。. O% O+ {% o) s
3.2 a種情況和b種情況齒輪的調(diào)用
3 J. {* T+ U7 x' a 對(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í),通過(guò)判斷齒輪的齒根圓半徑是否大于漸開(kāi)線的基圓半徑來(lái)決定采用a種情況還是b種情況的齒輪。若齒根圓半徑小于基圓半徑,則采用a種情況的齒輪 ;否則,則采用b種情況的齒輪。
3 z8 F2 |& a$ p4 齒輪的自動(dòng)化設(shè)計(jì)程序流程圖
1 U) I" `# i E# o% q 4.1 a、b兩種情況時(shí)的齒輪自動(dòng)化設(shè)計(jì)流程圖; I0 c+ V: p6 M+ f/ {* U- n
圖3是a種情況時(shí)齒輪的自動(dòng)化設(shè)計(jì)流程圖。b種情況的齒輪自動(dòng)化設(shè)計(jì)流程和上圖類(lèi)似,只是齒槽設(shè)計(jì)時(shí)改為b種情況即可。
) z: @- R* Z6 @/ F1 v; D 4.2 綜合a種和b種兩種情況時(shí)的齒輪自動(dòng)化設(shè)計(jì)流程圖
% K% k+ U/ [: T2 r$ R. H 綜合a和b情況后的自動(dòng)化設(shè)計(jì)流程圖如圖4所示。
5 {5 d) }: L- Z2 J( P+ Y圖3 a種情況的齒輪自動(dòng)化設(shè)計(jì)流程 圖4 綜合a、b兩種情況后的齒輪自動(dòng)化設(shè)計(jì)流程 5 源程序
4 b# u9 d6 F4 [( ? R; v0 I 5.1 a種情況的齒輪自動(dòng)化設(shè)計(jì)Program原程序0 l; c& K% e6 J
VERSION - q3 H5 ?3 T& x
REVNUM 23833
, Y% @( k; A6 O/ ?LISTING FOR PART GEAR_A- V7 g& H. g N* ]9 K9 P. {9 T
INPUT: I% j' N" _. ]7 _ z9 @( x
Z1 NUMBER /*齒輪1齒數(shù)
B0 e5 F6 z. ?0 C"Enter Z1: "
& h, D$ `7 M0 _ VZ2 NUMBER /*齒輪2齒數(shù)
: k( ^/ O* H4 z f7 H"Enter Z2: ") y' N" \9 h! m
M NUMBER /*模數(shù)
0 f; f* X- o3 q: h"Enter M: "
: t \/ @% N' q5 p! aX1 NUMBER /*齒輪1變位系數(shù)) e) i1 p+ O" K% M7 x
"Enter x1:"
9 z5 B4 r+ q" ]7 E EX2 NUMBER /*齒輪2變位系數(shù)
& A% k* b/ m) b- v2 V" t, ]"Enter x2:"
! D' n, |% S+ {: @+ iALPHA NUMBER /*壓力角
' i8 [ \% g" N0 {1 E+ A- D"Enter the pressure angle: "
3 m6 i4 B' I9 [1 K: QGEAR_WIDTH NUMBER /*齒輪寬度6 T7 ?& S, l' [: E/ W1 I: T
"Enter the gear width: "
3 ^ U, @5 ^, zRAD_FILLET NUMBER /*齒槽圓角半徑
; M4 ?& A6 d$ ]/ r$ t"Enter rad_fillet:"! e; k' T6 N3 S6 m
SHAFT_DIA NUMBER /*軸孔直徑
- j7 s3 p) k) ~1 O0 X# c"Enter shaft_dia:"" q+ i3 }6 k/ |
KEY_WIDTH NUMBER /*鍵槽寬度
: d) v1 _& G; m+ a' K {1 }0 v0 U"Enter key_width:"
% ^1 N% A5 B; a; Q7 LKEY_HEIGHT NUMBER /*鍵槽高度2 |" ^! u D# x& T+ S2 Y% f% ^7 X
"Enter key_height:"
, y# A/ X8 o5 L9 J% VEND INPUT
, A5 y' F* p9 A, q2 b0 H6 CRELATIONS
7 |& q2 x7 B( p4 f# gINVA=TAN(ALPHA)-ALPHA*PI/180 + l5 i8 U# Y/ o6 A6 z
/*標(biāo)準(zhǔn)壓力角時(shí)的漸開(kāi)線函數(shù)值
) u! M1 u; `1 v) e l- OINVAP=2*(X1+X2)*TAN(ALPHA)/(Z1+Z2)$ O! r" H. `+ Q
+INVA 5 B$ e: j W6 o, h
/*計(jì)算嚙合角時(shí)的漸開(kāi)線函數(shù)值
Y Q4 @: N& |+ q+ S1 z2 kAP=10
) H0 I3 z5 X- i7 f- GSOLVE /*解方程程序) B" B6 R8 J( z- H" l
INVAP=TAN(AP)-AP*PI/180$ S( ]0 p$ O8 O; N$ [# L$ \9 x! Z
FOR AP 2 b0 I8 b W' U' ~
HA=1 /*齒頂高系數(shù)
9 v( h& d5 b, }+ t- y% tIF M<1 /*徑向間隙系數(shù)的確定
* l5 H( d1 s! R {0 @) n C=0.35
* Q1 i$ k V( I# [5 dELSE8 o( L1 X7 _. i5 Q
C=0.25 ]- j# j" U* A( O3 b' K5 h
ENDIF
" X2 f0 B' M( M9 y i; n( WR1 = 0.5*M*Z1 /*齒輪1分度圓半徑
1 [8 U, A `2 X- IR2 = 0.5*M*Z2 /*齒輪1分度圓半徑, s2 ]' L$ g e3 s. O3 `" h/ f! ?$ S# Q
D = R1+R2 /*標(biāo)準(zhǔn)中心距. c+ c1 S$ F" M( n+ D3 i$ i
RD = D*COS(ALPHA)/COS(AP)
3 ~5 q! h! n' u* v" ]0 F% n /*實(shí)際中心距- @9 Z4 X- m0 F! Q6 r
RB1 = R1*COS(ALPHA) /*基圓半徑
2 M$ A2 z7 _" v* Z/ LRF1 = R1-M*(HA+C-X1) /*齒根圓半徑
, `0 Y! a9 i) h8 gRA1 = RD-R2+M*(HA-X2) /*齒頂圓半徑
* s* z c8 E& r0 ]+ A, XTHICK1 = M*(0.5*PI+2*X1*TAN(ALPHA))% _/ i+ {, {# E1 h7 E, `
/*分度圓上齒厚(弧長(zhǎng))" m5 X' ~9 P4 ^& e" ?9 O1 }
TOOTH_THICK1=THICK1*COS(ALPHA)
4 g& y; h- ?% z ~* z$ K +2*RB1*INVA /*基圓上齒厚(弧長(zhǎng))
6 F- M+ N3 L" N* y" d( tANG_TOOTH_THICK1=TOOTH_THICK1/RB1*180/PI /*基圓上齒厚角(度)7 P/ [ A$ I8 g/ c0 c7 j
D0=RA1 /*內(nèi)部參數(shù)賦值/ l: ~1 Y$ ?% |( z9 I0 i+ i
D1=GEAR_WIDTH( o, T Z I+ T& c. I
D2=360/Z1- d7 s6 @5 ?7 i& [; F
D3=ANG_TOOTH_THICK1
6 N! |9 t* D1 r3 ?5 l# @5 TD4=180/Z1
: A3 W. S" c. t! s) V8 K; |5 B D1 RD5=RB1
3 _# E* ]4 D3 g2 U wD13=RF1
; O+ I; y* M# E6 ^# D0 x; c% [D14=RAD_FILLET6 D' i. ]: Y: F7 O" f5 u
D15=360/Z15 ~! O5 Z" J0 Q" l4 m
P16=Z17 D+ v+ a2 y4 E$ w0 c- t- i4 M
D36=SHAFT_DIA
0 D+ S7 O i. y0 lD37=KEY_HEIGHT$ k+ c* y( c: c) ?: J
D38=KEY_WIDTH 1 \4 {* ~5 X- j; Y3 [
END RELATIONS4 C4 E" V7 d6 E; i
…………………………
$ U x0 o' L* k3 b' j5.2 b種情況的齒輪自動(dòng)化設(shè)計(jì)Program原程序( K$ d$ J: U3 F4 w5 \" N9 x
VERSION ; Q1 G/ C( V8 |1 I' ?: @
REVNUM 60662
. H7 ` {7 [ @% v. _# @LISTING FOR PART GEAR_B1 E+ h2 `) @( f0 z& |, a
INPUT
& N3 r$ y* e: J7 w Z1 NUMBER /*齒輪1齒數(shù)
' R* o" E6 ?7 [) \$ W "Enter Z1: "# C' u2 Y, Y6 ?/ C1 b* M, z
Z2 NUMBER /*齒輪2齒數(shù)
8 K: Z% p/ V5 K+ O; _9 [! G "Enter Z2: "
% W2 X0 a2 W l5 h5 \! I% l# l M NUMBER /*模數(shù)5 |5 G- N6 s. ~+ v# Y
"Enter M: "
! w0 I8 K$ Y b/ G/ e X1 NUMBER /*齒輪1變位系數(shù)
. R, x: L& L& X, |; P "Enter x1:"7 a& {: P8 k! j( Y- N, |1 @8 p
X2 NUMBER /*齒輪2變位系數(shù) c( `6 D/ H( n" @1 S, {
"Enter x2:"/ p: P* C6 d7 Q
ALPHA NUMBER /*壓力角9 ~+ |# h( h( p: b: m
"Enter the pressure angle: "
5 l2 t5 |( M4 e5 t GEAR_WIDTH NUMBER /*齒輪寬度! o( M0 G1 Y; S' X
"Enter the gear width: "
( t. V" r! i, F! E% O/ F3 O9 ^/ y9 @ RAD_FILLET NUMBER /*齒槽圓角半徑
" {7 r3 @* L2 l+ C# _8 O" _ D "Enter rad_fillet:"7 G% c0 E% D7 b% C3 Y* i
SHAFT_DIA NUMBER /*軸孔直徑+ v; O' Y4 g: K! a( I
"Enter shaft_dia:"
1 _2 Q( [' J9 v! ~) C KEY_WIDTH NUMBER /*鍵槽寬度, F4 Z) X& h' u! _& j/ W0 B
"Enter key_width:"
7 C& m$ g" Z% j: p: W- i KEY_HEIGHT NUMBER /*鍵槽高度
( i- d, ^$ X! T, b% Y "Enter key_height:"/ l3 K8 j+ K% Z% `5 t
END INPUT
" g" q1 q& Y2 _8 x" ^6 |! {RELATIONS' d( I4 z3 e: b$ ~4 ?
INVA=TAN(ALPHA)-ALPHA*PI/180
2 u( F. }. C: h0 r /*標(biāo)準(zhǔn)壓力角時(shí)的漸開(kāi)線函數(shù)值
0 v6 o5 Q( d" |& R, P6 z+ ]INVAP=2*(X1+X2)*TAN(ALPHA)/(Z1+Z2)
8 [0 @8 `. _9 m& C* u3 {7 K- R +INVA & D9 h$ E4 y4 w { H
/*計(jì)算嚙合角時(shí)的漸開(kāi)線函數(shù)值# K3 Q0 a5 l. c$ c: f6 t' T
AP=10: o1 a3 W Q0 ?( W3 H" y5 ~" B
SOLVE /*解方程程序% `0 H, H8 c5 z& `1 `1 I
INVAP=TAN(AP)-AP*PI/180( `& T+ W3 \( q6 l
FOR AP
0 c" ], ~. X) V: m1 s3 Z4 ?4 KHA=1 /*齒頂高系數(shù): Z9 V; R& v/ G4 ?4 J2 T2 \8 C3 H
IF M<1 /*徑向間隙系數(shù)的確定8 F) D% D/ |' _) a6 k' q" e
C=0.35
: M2 Z( Y& v& L# ^! iELSE9 X- r+ R; B+ Q4 L6 Z: d
C=0.25
& G6 o! O p3 k, U. O* AENDIF 8 _6 Y. k, b% ?- I4 h/ K
R1 = 0.5*M*Z1 /*齒輪1分度圓半徑
; \1 @/ J$ \+ f9 q$ sR2 = 0.5*M*Z2 /*齒輪1分度圓半徑, x8 C2 f) U5 U* K) {
D = R1+R2 /*標(biāo)準(zhǔn)中心距
C& n8 K; |( F0 J+ d; URD = D*COS(ALPHA)/COS(AP)
1 }3 O4 J7 E5 y5 C' z /*實(shí)際中心距
A4 \4 g1 }# ^/ NRB1 = R1*COS(ALPHA) /*基圓半徑
( k5 U9 D9 ^6 j- u l o2 x1 wRF1 = R1-M*(HA+C-X1) /*齒根圓半徑1 V/ O* K/ w' O8 C' `0 K3 `; l+ W& N7 R
RA1 = RD-R2+M*(HA-X2) /*齒頂圓半徑( G. g r! r9 V' C; R, ^
THICK1 = M*(0.5*PI+2*X1*TAN(ALPHA))
q) X+ ~2 P! X2 I /*分度圓上齒厚(弧長(zhǎng))
$ }$ v( M6 {- v% R1 @- e8 Q, QTOOTH_THICK1=THICK1*COS(ALPHA)
& B# v2 R. r5 ?% Y( j( K +2*RB1*INVA /*基圓上齒厚(弧長(zhǎng))
7 T! c' T2 P# QANG_TOOTH_THICK1=TOOTH_THICK1/RB1*180/PI /*基圓上齒厚角(度)7 s0 l% i& j# v( H t+ o7 W2 ]" E
D0=RA1 /*內(nèi)部參數(shù)賦值
& L( K0 b. s/ D* q7 zD1=GEAR_WIDTH7 a) C* N( Y$ i& K
D2=360/Z1
0 q- E# T3 {% T8 \! {D3=ANG_TOOTH_THICK1! E% W/ D' P' o# J3 `+ L' R
D4=180/Z1, c& |& Q3 J. z9 ~& Q' M @0 ^' F
D5=RB1" X9 J/ H& X) ? ~! |
D13=RF1* a. \1 ]* x2 D2 V2 P$ m
D14=RAD_FILLET
6 O8 ~7 G) c3 s; ED15=360/Z1$ u( r1 \/ q# \- f' b( P, @
P16=Z1
6 e) p. Q% L, S( qD116=SHAFT_DIA& @, S( q$ I1 `$ `
D117=KEY_HEIGHT. c+ D- }+ O, D0 X+ r! h7 @
D118=KEY_WIDTH
# o0 U% \2 T+ }2 XEND RELATIONS
+ r6 l5 f, L$ Q…………………… |