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í)的程序語言來控制特征的出現(xiàn)與否,、尺寸的大小、零件的出現(xiàn)與否,、零件的個(gè)數(shù)等,。當(dāng)零件或組合件的Program設(shè)計(jì)完成后,往后讀取此零件或組合件時(shí),,其各種變化情況即可利用問答式的方式得到不同的形狀,,以實(shí)現(xiàn)產(chǎn)品設(shè)計(jì)的要求。
5 j' R1 d# `" O9 P# P 齒輪雖然在機(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)頁設(shè)計(jì)和機(jī)械產(chǎn)品造型設(shè)計(jì)中。
% `- s, e- {* A: H6 M2 齒輪齒槽形狀的精確確定
+ H5 x g5 `- ~% ^" e# n 齒形的漸開線形狀可通過高級(jí)Sweep特征設(shè)計(jì)精確地設(shè)計(jì)出來,,但齒輪齒槽的形狀與齒輪齒數(shù),、模數(shù)、變位系數(shù)和壓力角有關(guān),。具體地說,,下列兩種情況決定齒槽的形狀:
% w4 ^& n) J' ~! @
" W" M; H4 O+ v1 _1 A1 M/ D
# c* E; u5 C4 s- V; x+ m2 w/ K圖1 第一種情況的齒槽形狀 圖2 第二種情況的齒槽形狀 即:齒根圓的半徑小于漸開線的基圓半徑時(shí)和齒根圓的半徑大于漸開線的基圓半徑時(shí)。為了敘述方便,,下文中,,分別稱前者為a情況,后者為b情況,。因齒輪的嚙合只在漸開線部分,,因此對(duì)于a情況,設(shè)計(jì)時(shí)可在基圓的以下部分加與漸開線相切的直線以連接齒根圓,,如圖1所示,。而對(duì)于b情況則無需加相切直線,僅截取漸開線的一部分即可,,如圖2所示,。 , j0 d. {4 J0 k" y2 a
3 程序設(shè)計(jì)時(shí)需解決的幾個(gè)關(guān)鍵問題$ {/ ?! f$ }. o; j; I z
3.1 嚙合角的計(jì)算+ L! i( }! o, }& X7 u
變位齒輪的齒頂圓直徑和嚙合角有關(guān),因此設(shè)計(jì)時(shí)必須先由輸入的齒輪設(shè)計(jì)參數(shù)經(jīng)過復(fù)雜的數(shù)學(xué)計(jì)算得到嚙合角值,。
% ?! T! e! x/ c& B 我們知道,,外齒合時(shí)的嚙合角計(jì)算公式為:
) }" J6 J; r8 Y: a: ], P![]()
1 f. N1 i# }8 a/ e7 y, i 可見 無法由顯式直接表達(dá)出來,,因此也就無法直接計(jì)算出來,。雖然用C語言可以數(shù)值計(jì)算出 ,但Program自帶的程序不支持C語言,,幸運(yùn)的是利用Program自帶的解方程程序可以解出 ,,具體的設(shè)計(jì)程序是:* S2 _, a( ~) y( I' |8 ]
![]()
& B' `% F0 Z2 S- c. |+ e 上式中 必須賦初值,否則數(shù)值解會(huì)不確定,,考慮到嚙合角一般大于10度,,所以初值設(shè)為10即可。由于Program程序中三角函數(shù)內(nèi)的角度是度,,因此公式右邊最后的 應(yīng)處理成弧度,,以便和tan 同量綱。
/ \6 s/ f; z: q: S 3.2 a種情況和b種情況齒輪的調(diào)用4 ]# O0 Z) J2 p0 d- m- q) {0 a
對(duì)于Pro/ENGINEER軟件,,在零件設(shè)計(jì)模式下是無法實(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種情況的齒輪,。
* H9 p5 C, n$ H1 \: [4 齒輪的自動(dòng)化設(shè)計(jì)程序流程圖
" X0 v4 q6 }6 `9 f1 b0 S8 m 4.1 a,、b兩種情況時(shí)的齒輪自動(dòng)化設(shè)計(jì)流程圖$ @2 k) P& M/ u7 D
圖3是a種情況時(shí)齒輪的自動(dòng)化設(shè)計(jì)流程圖。b種情況的齒輪自動(dòng)化設(shè)計(jì)流程和上圖類似,,只是齒槽設(shè)計(jì)時(shí)改為b種情況即可,。
# M0 |/ I% n% z5 n/ j 4.2 綜合a種和b種兩種情況時(shí)的齒輪自動(dòng)化設(shè)計(jì)流程圖
% J* O. U' t8 n+ O9 D 綜合a和b情況后的自動(dòng)化設(shè)計(jì)流程圖如圖4所示。8 T# [' |( ?5 s a
圖3 a種情況的齒輪自動(dòng)化設(shè)計(jì)流程 圖4 綜合a,、b兩種情況后的齒輪自動(dòng)化設(shè)計(jì)流程 5 源程序+ }, w4 Z! [: a8 ?0 A) v
5.1 a種情況的齒輪自動(dòng)化設(shè)計(jì)Program原程序" M; g* |( n* C* S
VERSION 6 k! N" H/ A" u0 H1 g' T/ g
REVNUM 23833; p [& C8 k: X5 }1 y9 g, D; { Q4 v! F' y
LISTING FOR PART GEAR_A
' _+ b6 p* e& F" LINPUT
) K$ a+ }+ m' c5 m+ h. MZ1 NUMBER /*齒輪1齒數(shù)
. R3 \' |( H; }8 Y% h1 m' A"Enter Z1: "2 f: }# H" h5 U/ [/ B% Z% U4 E
Z2 NUMBER /*齒輪2齒數(shù): v0 a9 v3 O3 f; F& a
"Enter Z2: "
9 Q$ V0 N/ Y! r. @5 v. A( UM NUMBER /*模數(shù)" ]+ B; Q7 m$ _3 S6 j1 N$ \# r0 n
"Enter M: ": b% E6 E" F, Z7 \8 R
X1 NUMBER /*齒輪1變位系數(shù)- I. { R( X! H: I5 P
"Enter x1:": ~) [6 w6 S: m% ^# q
X2 NUMBER /*齒輪2變位系數(shù)
$ X( x3 `, e; M* F"Enter x2:"
% d, X. O. _4 B L9 yALPHA NUMBER /*壓力角
`) s1 e0 y7 r5 n"Enter the pressure angle: "
5 S& `5 C( \6 l! d9 @) IGEAR_WIDTH NUMBER /*齒輪寬度9 b# D, _3 W8 W8 s( X
"Enter the gear width: "' ~+ V% A9 a& I( j4 p
RAD_FILLET NUMBER /*齒槽圓角半徑
6 C7 g/ E8 D" O6 }+ d"Enter rad_fillet:"
% x& M" w2 x- g9 v' S& u6 }9 OSHAFT_DIA NUMBER /*軸孔直徑) u1 |; y7 x8 l- k
"Enter shaft_dia:"
* k1 ?. X5 E+ B2 XKEY_WIDTH NUMBER /*鍵槽寬度; E7 K4 ?$ w& _# k7 r+ D- V+ O
"Enter key_width:"
8 h+ y; B' X7 U# J: W3 t4 g mKEY_HEIGHT NUMBER /*鍵槽高度& Q4 f2 U: u* F! W& d' a2 g
"Enter key_height:"7 T. i7 b" n! z4 U6 X0 n% ^
END INPUT
% p' M+ L1 ]/ ORELATIONS
+ Y5 F+ M% X7 S. `7 Z& cINVA=TAN(ALPHA)-ALPHA*PI/180 - i4 U$ i5 i' C$ a- r5 \* Z. L
/*標(biāo)準(zhǔn)壓力角時(shí)的漸開線函數(shù)值; t2 ]; I0 K! }2 i
INVAP=2*(X1+X2)*TAN(ALPHA)/(Z1+Z2)
. {; U M) N) a) M1 t +INVA * V: R! P" `( E. E) U' f9 f
/*計(jì)算嚙合角時(shí)的漸開線函數(shù)值1 j- w( `2 c! k" O5 {
AP=10
' U4 r2 |$ N6 ~, XSOLVE /*解方程程序
% U1 j% l( l+ j8 N k0 K+ z INVAP=TAN(AP)-AP*PI/180 }: y" m/ T i( O3 o5 |4 t
FOR AP , J+ i! k/ m) }' R0 }2 l
HA=1 /*齒頂高系數(shù)8 V" C3 P/ Y& }$ h+ m& M
IF M<1 /*徑向間隙系數(shù)的確定. K6 z6 B( w0 m: d, n* M, c
C=0.35' o; d P; E9 ^8 k& S
ELSE7 J; X2 F$ J3 l+ `! P& g
C=0.25
6 }6 _% S, g; I5 ?) f! pENDIF 0 k7 \' R1 J- }3 |6 b
R1 = 0.5*M*Z1 /*齒輪1分度圓半徑
' o- c3 C! `$ k/ m% \R2 = 0.5*M*Z2 /*齒輪1分度圓半徑
9 z$ u4 V% T3 I2 R D = R1+R2 /*標(biāo)準(zhǔn)中心距5 t( |1 _, _$ o
RD = D*COS(ALPHA)/COS(AP)
+ b0 u Q6 }. l. f6 l" o /*實(shí)際中心距
' Z; r7 E+ o) Z7 o! B' hRB1 = R1*COS(ALPHA) /*基圓半徑
3 p( a. H) ^6 A( |7 DRF1 = R1-M*(HA+C-X1) /*齒根圓半徑
* V" u! l. H, ZRA1 = RD-R2+M*(HA-X2) /*齒頂圓半徑
) a% _/ H4 q5 s+ Y- }. xTHICK1 = M*(0.5*PI+2*X1*TAN(ALPHA))
1 e& J) H# M, J1 W/ E /*分度圓上齒厚(弧長(zhǎng))
8 @3 q4 U1 F+ Y* cTOOTH_THICK1=THICK1*COS(ALPHA)
' d. ^0 o& s" T! h4 Z2 i& I +2*RB1*INVA /*基圓上齒厚(弧長(zhǎng))
2 V& |$ G% Z& E- ~4 n& B0 A. YANG_TOOTH_THICK1=TOOTH_THICK1/RB1*180/PI /*基圓上齒厚角(度)
" ]4 l4 Y' Y8 R! a" MD0=RA1 /*內(nèi)部參數(shù)賦值
! q( V5 K6 W& r" |' [& vD1=GEAR_WIDTH
& \( z# w' E$ d5 |4 r& ?, P+ LD2=360/Z1
/ t8 [4 X0 S) H9 OD3=ANG_TOOTH_THICK1
( O) Z0 `5 Z* n4 F( E8 \& e, p QD4=180/Z1, Y2 r7 m4 L. G3 U* s: j
D5=RB18 u" {$ U' ]. k3 V: ]6 u
D13=RF1' @3 s; T; E! i5 ^
D14=RAD_FILLET
- ~" W( K; m9 CD15=360/Z1
* w) O3 p+ b( k8 V& u/ ZP16=Z1
$ \5 [! L7 `3 f) XD36=SHAFT_DIA# w! V5 ]1 @5 ~0 V# C% ?
D37=KEY_HEIGHT; J0 `/ ?" O* o$ ]7 u
D38=KEY_WIDTH
2 c! F4 }! W' Q( A! cEND RELATIONS
/ I* u y- [, g4 J…………………………
6 E; H9 T& j8 S! e- f H7 L( |7 L5.2 b種情況的齒輪自動(dòng)化設(shè)計(jì)Program原程序
6 g9 U1 A3 i1 y0 Z/ YVERSION
6 u$ e% K0 t5 m* g5 ]REVNUM 60662( J% E [3 I; `+ S1 l- n$ G9 u
LISTING FOR PART GEAR_B: X! J+ w' Y' \0 E2 X( j- M
INPUT
8 C$ k0 P6 c R Z1 NUMBER /*齒輪1齒數(shù)7 J% {2 T/ b# B! w& j9 ]
"Enter Z1: ", @; K/ w% b& T, W1 h7 P( n
Z2 NUMBER /*齒輪2齒數(shù)
% W- d( U0 [' G; X "Enter Z2: "
1 q1 U# ~# [& R+ u" y M NUMBER /*模數(shù)7 A, L$ C. T: o( \
"Enter M: "7 h1 K$ q2 g' g1 v/ f, n9 h M
X1 NUMBER /*齒輪1變位系數(shù)) t b' ^2 S. h6 ^
"Enter x1:"
( ?. n6 U! g8 w/ `' K& M X2 NUMBER /*齒輪2變位系數(shù)
7 V# x- G0 |& a' B7 _$ a1 S: | "Enter x2:"
8 y' D. N+ G7 _+ r& ]) z1 d ALPHA NUMBER /*壓力角
' b! k7 k1 d; G2 l3 Z1 l "Enter the pressure angle: ") i+ ~, [6 ?# P" g2 \
GEAR_WIDTH NUMBER /*齒輪寬度
- {+ i8 r2 t5 M5 u) l2 M "Enter the gear width: "
0 d# b4 Z% r) h) }; B RAD_FILLET NUMBER /*齒槽圓角半徑0 e. h5 l, I' [0 f5 p k6 P, R
"Enter rad_fillet:"
! R- ]4 I- N' ^7 r4 Y/ E SHAFT_DIA NUMBER /*軸孔直徑
2 q3 b) h* L7 r3 _ D- Q' Z "Enter shaft_dia:"" t4 I. x6 f: N4 g! E; \4 h2 Q$ ^
KEY_WIDTH NUMBER /*鍵槽寬度
3 C* e, n. E& S& T* ] "Enter key_width:"
! \! W" I0 N, o$ R) j KEY_HEIGHT NUMBER /*鍵槽高度. L9 w+ X( i, ^0 \) F8 c
"Enter key_height:"( {' H- C5 Z( e3 f1 I4 U
END INPUT. a* {( p2 s* {3 v: Y. o5 `
RELATIONS3 M v& C2 \7 c' _6 R
INVA=TAN(ALPHA)-ALPHA*PI/180 5 n: c. W7 d( s0 `4 A! @! \
/*標(biāo)準(zhǔn)壓力角時(shí)的漸開線函數(shù)值
4 e* g5 T6 y2 T' W. UINVAP=2*(X1+X2)*TAN(ALPHA)/(Z1+Z2)
+ A; W/ L% U7 J, |' c7 h +INVA
" V* n; J, W( ^7 j8 Z, @) W7 ~ /*計(jì)算嚙合角時(shí)的漸開線函數(shù)值! D H# i+ e$ ^; n4 w. ]
AP=10
% N; v) f) \* m3 jSOLVE /*解方程程序
/ H0 s4 ]. |! P6 {7 ~) R4 n' ~8 W INVAP=TAN(AP)-AP*PI/180
3 ~6 f1 h6 A C9 X8 a0 v: Y' wFOR AP , G3 Y6 l- i" H8 V. N
HA=1 /*齒頂高系數(shù)
P( A2 Z2 y) N4 z: h0 tIF M<1 /*徑向間隙系數(shù)的確定
. O- w* j9 T" S0 t0 I C=0.35) J5 Y& F$ ?. d( ~; E' P
ELSE
* X, ]8 ^. }/ x+ @$ p C=0.25# z% q1 h. G! s' ]. C* B5 e8 ?
ENDIF
9 ? d; c% `: Z4 _* X/ @R1 = 0.5*M*Z1 /*齒輪1分度圓半徑1 X' _# `* X% V9 u1 w; a
R2 = 0.5*M*Z2 /*齒輪1分度圓半徑( }& t. L) v( e* O/ P
D = R1+R2 /*標(biāo)準(zhǔn)中心距
/ R6 ^" n3 O# F- N [2 ^RD = D*COS(ALPHA)/COS(AP)
! c9 w1 ]0 H! o1 H /*實(shí)際中心距! e0 U7 m5 G6 J; C1 ?8 J0 C( q
RB1 = R1*COS(ALPHA) /*基圓半徑
: ?3 C# T/ }# }8 @ GRF1 = R1-M*(HA+C-X1) /*齒根圓半徑
9 X; ^7 G$ J: e) NRA1 = RD-R2+M*(HA-X2) /*齒頂圓半徑1 T& n+ h% H1 Q8 y
THICK1 = M*(0.5*PI+2*X1*TAN(ALPHA))9 B7 |. l! ~4 w1 r3 W4 \: {
/*分度圓上齒厚(弧長(zhǎng))
( p3 O7 m9 n, C1 qTOOTH_THICK1=THICK1*COS(ALPHA)- U$ P8 M2 z$ b! I
+2*RB1*INVA /*基圓上齒厚(弧長(zhǎng))0 Z- Z' p' \; \+ a
ANG_TOOTH_THICK1=TOOTH_THICK1/RB1*180/PI /*基圓上齒厚角(度)
L& T2 u% S F3 K3 U! FD0=RA1 /*內(nèi)部參數(shù)賦值
9 p3 P: e- C7 LD1=GEAR_WIDTH' Q5 w& _3 y+ H6 G! i
D2=360/Z1
A( w! k$ `$ C- RD3=ANG_TOOTH_THICK11 v. a7 @% u# D1 Q0 V. ?( w
D4=180/Z14 D7 S. O2 R0 n. I; Q3 _) m4 h
D5=RB1: u8 I/ N! v" t. j! X
D13=RF15 Y: U9 { u1 E
D14=RAD_FILLET/ R/ n/ f/ W# c5 u' H
D15=360/Z11 w: o9 V a* B& b4 D
P16=Z1
0 H; P m" g' pD116=SHAFT_DIA
) ^2 H" F7 r' J D" m, |; N ^& yD117=KEY_HEIGHT
& V* o* J* ]5 k) v; UD118=KEY_WIDTH- }7 H5 t4 B" u: G
END RELATIONS! `2 P. l* y: C" j) O) z
…………………… |