久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

機械社區(qū)

標題: 基于Pro/ENGINEER的炮用發(fā)射藥筒的快速設(shè)計 [打印本頁]

作者: sunshine1026    時間: 2008-8-6 11:29
標題: 基于Pro/ENGINEER的炮用發(fā)射藥筒的快速設(shè)計
1 引言" ^  c+ H! J; N3 N; E9 `, `0 }: q
    傳統(tǒng)的藥筒設(shè)計是一個相當煩瑣的過程,設(shè)計人員被動地往返于公式和手冊之間,借助計算器一點一點地計算。這當中有任何失誤都必須從頭再來,即使計算過程中沒有任何失誤,當計算結(jié)果不合適時,一切也必須從頭再來。一個熟練的設(shè)計人員,在藥筒設(shè)計過程中,簡單的計算一遍就需要一個星期以上時間。如何使這一設(shè)計過程變的簡單、直觀,對設(shè)計人員來說十分迫切。針對這一問題,本文給出了基于Pro/ENGINEER快速建模并結(jié)合炮用發(fā)射藥筒理論設(shè)計的約束條件,給出了快速設(shè)計的方法及實例。
: r& E% R- D: n8 a4 Y$ x2 炮用發(fā)射藥筒結(jié)構(gòu)分析及建模的約束方程( P9 P# P' t# ~. @* ]- F8 t) d5 N
+ j* c  u0 C5 H9 z2 b+ p6 ?
    藥筒的設(shè)計與火炮、彈丸及裝藥設(shè)計密切相關(guān)。本文以配制式火炮為例。藥筒的設(shè)計主要受藥室形狀及彈丸結(jié)構(gòu)限制[1]。
& I# K7 T: S3 F7 M+ }) v/ x7 ?# L
             圖 1 火炮藥室結(jié)構(gòu)示意圖              
主要結(jié)構(gòu)尺寸計算公式如下: $ {" o2 r9 v. w+ Y1 h+ a
f1 :  Dk=Dd-2U0k     f2 :  Lk=(0.20 ~ 0.30)d     f3 :  d k=Dk-2tk 2 p  ]: P- X* s6 K2 n
f4 :  Dy=Dj          f7 :  Dj=Da-2U0j            f8 :  Ly=La
9 J0 O! j( Z$ e# [' ef9 :  td=(0.06 ~ 0.15)Dj                         f10 : ty=Sp-x0
+ W( _1 L. h3 s8 d式中:
6 A% ?1 i9 \3 T* r. ]# j5 hDk—筒口部外徑;                   U0k—口部初始間隙;" @$ @6 d2 N8 z% ~& G# B' F
dk—口部內(nèi)徑;            la —接際部初始間隙;            4 A% i7 R; y2 c
Dj—接際部直徑;                   Lk—口部長度. y  F4 s9 B8 T8 g: i
U0j—接際部初始間隙;              Ly—筒體外部長度
0 G3 s( x. p0 T3 j0 o  ~, t* ]: dtd—底部厚度;                    ty.—底緣厚度;3 C* n" H- R- i" Y
Sp—炮栓鏡面至藥室尾端面距離;    x0—藥筒地平面與栓體鏡面的初始間隙; * ]6 A$ w7 F/ w. k  r
    這些方程中共有12個已知參數(shù)(Dd、U0k、d、Dj、U0x、lb、la、Da 、U0j  、La、Sp、x0)和8個未知參數(shù)(Dk、dk、Dy、Dj、Ly、td、ty、Lk),已知參數(shù)由設(shè)計者給定。當改變了已知參數(shù)時未知參數(shù)也隨之改變。                     
4 x% ^9 ]% H# y) {! X/ w    可以通過約束圖利用圖解法解出未知變量[2]。藥筒的結(jié)構(gòu)尺寸示意圖如圖3所示。4 S& l* J) F- D

  ]% g6 {( C9 r; `4 _0 p0 o圖2 方程約束網(wǎng)絡(luò)圖

( m% t; w0 L, C- w圖3 藥筒的結(jié)構(gòu)尺寸示意圖
3 快速建模實現(xiàn)方法3 U# d) c  g2 K' ~- |( X! Q! o
    快速建模就是通過輸入?yún)?shù),由Pro/ENGINEER系統(tǒng)快速產(chǎn)生模型的過程,模型的相關(guān)屬性也可自動給出。Pro/ENGINEER提供了強大的用戶二次開發(fā)程序包Pro/Toolkit,通過它可以直接對Pro/ENGINEER的數(shù)據(jù)庫進行操作。本文即以Pro/Toolkit為開發(fā)工具,實現(xiàn)了藥筒的快速設(shè)計與建模。Pro/ENGINEER的快速建模二次開發(fā)包括以下幾部分[3]。4 u. q( q. ?. V7 y8 L* F& x: d
3.1  用戶接口" F+ x$ n" `$ O  a1 {- t
    用戶接口是人機交互的界面,它包括菜單及菜單文件兩部分。菜單文件擴展名為*.mnu或*.aux。*.mnu菜單完全獨立于已有菜單,*.aux則附加于已有菜單。菜單文件有固定格式,每組數(shù)據(jù)分三行,每一個菜單按鈕對應(yīng)一組數(shù)據(jù)。菜單文件為純文本文件。
" u/ {* u4 H. ]$ b. l( V  b* \0 W- Y1 ~3.2  信息文件4 z' g; L- A# X
    信息文件包括了類型無關(guān)菜單以及數(shù)據(jù)輸入提示等所有文本信息,它和菜單文件一樣,也是使用表單的形式,每四行為一組。使用表結(jié)構(gòu)的好處是當需要改動程序顯示時,可以只改動信息文件,而不必改動原程序。1 B; U1 Z! |; l  P- m
3.3  程序接口% O5 N- h7 a, b: R. N4 P
在Pro/Toolkit中,其函數(shù)結(jié)構(gòu)一般如下:
: X& L$ J* S8 r& Y3 c8 `7 k) PUser_Appone()        {              }            用戶功能函數(shù)6 w7 q/ @' j" H9 `' Z9 R+ E1 z
User_Apptwo()        {              }
' R1 j$ m5 \2 k  S: P......
+ p- z2 s* k! t, R/ OUser_initialize()       {   ......       }           程序入口0 L3 U9 j  O) }2 |* H. j. Z
User_terminate()       {     ......     }            程序出口- u) U) a9 [& W* m  z  g
    其中,入口函數(shù)和出口函數(shù)是必須的,其他函數(shù)則是用戶定義函數(shù),用以實現(xiàn)一定的功能。
7 [% }! f* l6 ~0 J: D3.4  注冊文件' m6 z9 B, C- w2 J9 m1 T
    注冊文件用以指明程序運行模式、資源位置以及程序運行版本等。其中,運行方式包括多線程和動態(tài)連接庫兩種。第一種方法的好處是調(diào)試比較容易。第二種方法的優(yōu)點是運行速度較快,生成的文件比較小。
3 [+ Z3 O. {- g3.5  編譯平臺2 ^4 e2 ?2 ]$ }/ I9 L7 n
    程序的編譯需要第三方編譯平臺,如TC、Mircosoft C等。選用了Mircosoft公司的Visual C++ 6.0作為編譯平臺。利用Visual C++ 6.0的強大功能使得數(shù)據(jù)管理方便,調(diào)試輕松直觀[4]。2 O% x" p1 {# l
4 藥筒的快速建模2 x$ q- _. N# `
    (1)在參數(shù)輸入方面,使用了菜單結(jié)合對話框的方式,參數(shù)輸入方便直觀。菜單結(jié)構(gòu)如圖4所示。Yaotong Design是在Pro/ENGINEER的Part菜單上添加的系統(tǒng)菜單,這樣既可以實現(xiàn)用戶特定功能,又可以利用Pro/ENGINEER平臺的強大功能,方便用戶設(shè)計。在模型的實現(xiàn)方面,采用了基于UDF的二次開發(fā)技術(shù),可以顯著地降低開發(fā)的工作量,提高開發(fā)靈活性。
" s  Y. `" F$ P- B

- z. j' o: w: _圖4 藥筒設(shè)計菜單系統(tǒng)
    (2)模型的接口程序和實現(xiàn)程序。以下為藥筒快速建模程序入口和出口,它注冊了菜單文件以及響應(yīng)函數(shù)。
7 Y2 f7 A7 Y0 i* z2 i6 w; ]/ kuser_initialize()" r+ |8 d- m% j# V0 t4 p
{ int menu_id ,err;
6 l* _. X  J6 O' J7 gProMenuFileRegister("PART","part.       mnu",&menu_id);        
; ]8 h1 q% A7 u" F4 N! A% L( dProMenuAuxfileRegister("PART","part.aux",&menu_id);                         $ u7 ~2 @' f8 R6 A* S
err=ProMenubuttonActionSet("part","_YaotongDesign",(ProMenubuttonAction)UserYaotongSystem,NULL,0);                 
9 |7 q3 n% l. m+ |/ `" Y, C0 P- k4 areturn(0); }
5 {0 t# `! M2 B  ]void user_terminate(){} ;  
+ Z& x& `1 M/ @以下為藥筒建模實現(xiàn)程序,它定義了UDF文件及驅(qū)動參數(shù)等。
, g, B2 A6 D2 dUserYaotongCreate(){  ......
; R  \9 v) G/ }5 d- a9 E- iProStringToWstring(data.name,"yaotongudf.gph");         指定UDF文件
. J0 Y$ [) G; y( ?: R data.n_var_dims=15;
5 l, {5 o% U2 l  u9 C7 ` data.var_dims=(Pro_udf_var_dim*)calloc(15,sizeof(Pro_udf_var_dim));
6 P( h9 m! M9 ]% g: u* o ProStringToWstring(data.var_dims[0].name,"YTJ_zg");   變量賦值 & i8 x2 D" b4 d% }# @: M
data.var_dims[0].type=PROUDFVAR_DIM;' F& n6 B8 ~/ c" j% ^9 Q' A
data.var_dims[0].value=_YTJ_zg;   
* Z1 H( \9 ]; _" F4 Q' q    ......
! R3 G+ m9 @6 ?# h. X data.n_references=0;        指定參考基準     4 B* n7 ^. B% Q1 a
data.dependency=PROUDFDEP_INDEPENDENT;    指定模型獨立性) S; z8 g, D4 J8 l" D
prodb_create_group(p_model,&data,NULL,NULL,0);   創(chuàng)建模型
0 A3 o: n) d% { ProWindowRepaint(PRO_VALUE_UNUSED);    顯示模型
1 C4 }! k+ Y: L+ R, K/ F; @ free(data.var_dims);! L/ _0 \+ f: }/ ^$ i
return(0);  }
" C2 z- P7 M- N" u通過以上方法產(chǎn)生的模型如圖5所示。3 ^/ ]) g% z) `' l7 ]; H- ]6 ^8 J( I
6 Y/ W" L, n& i- y5 H& U1 I
圖5 藥筒實體模型
7 c4 j5 I- R6 U/ h! d
圖6 藥筒幾何參數(shù)輸入界面
    在藥筒模型生成以后,可以通過以下兩種方法修改編輯藥筒的尺寸:(1)可以直接用鼠標雙擊需要修改的特征,選中需要修改的尺寸即可進行交互式尺寸修改和編輯。修改后的效果可以迅速從模型上反映出來。(2)通過幾何參數(shù)輸入對話框輸入要修改結(jié)構(gòu)的尺寸數(shù)值來完成對尺寸的修改。參數(shù)輸入對話框如圖6所示,直接輸入需要修改參數(shù)的新數(shù)值即可。                                                
4 n  M, h& \3 c8 y! s5 結(jié)束語
5 L  B; O5 F  X# @7 b& Z2 I& Q& H    利用快速建模技術(shù),可以大幅度提高設(shè)計效率,減輕設(shè)計人員的勞動強度,縮短產(chǎn)品設(shè)計周期,可使產(chǎn)品的設(shè)計變的直觀、輕松,可在產(chǎn)品設(shè)計的初期易于發(fā)現(xiàn)設(shè)計缺陷。產(chǎn)品可以方便地通過PDM系統(tǒng)進行管理




歡迎光臨 機械社區(qū) (http://www.ytsybjq.com/) Powered by Discuz! X3.5