基於ProENGINEER的炮用發射葯筒的快速設計

tags:    時間:2014-03-06 22:57:17
基於ProENGINEER的炮用發射葯筒的快速設計簡介
【摘 要】本文介紹了以C,C++語言為工具,在Pro/ENGINEER上利用Pro/TOOLKIT進行葯筒快速建模二次開發的方法,並給出了葯筒快速建模快速設計應用實例。 【關鍵詞】 註冊……
基於ProENGINEER的炮用發射葯筒的快速設計正文

【摘 要】本文介紹了以C,C++語言為工具,在Pro/ENGINEER上利用Pro/TOOLKIT進行葯筒快速建模二次開發的方法,並給出了葯筒快速建模快速設計應用實例。

【關鍵詞】 註冊文件 葯筒 特徵 快速建模

1 引言

傳統的葯筒設計是一個相當煩瑣的過程,設計人員被動地往返於公式和手冊之間,藉助計算器一點一點地計算。這當中有任何失誤都必須從頭再來,即使計算過程中沒有任何失誤,當計算結果不合適時,一切也必須從頭再來。一個熟練的設計人員,在葯筒設計過程中,簡單的計算一遍就需要一個星期以上時間。如何使這一設計過程變的簡單、直觀,對設計人員來說十分迫切。針對這一問題,本文給出了基於Pro/ENGINEER快速建模並結合炮用發射葯筒理論設計的約束條件,給出了快速設計的方法及實例。

2 炮用發射葯筒結構分析及建模的約束方程

葯筒的設計與火炮、彈丸及裝葯設計密切相關。本文以配製式火炮為例。葯筒的設計主要受葯室形狀及彈丸結構限制[1]。

圖 1 火炮葯室結構示意圖

主要結構尺寸計算公式如下:

f1 : Dk=Dd-2U0k f2 : Lk=(0.20 ~ 0.30)d f3 : d k=Dk-2tk

f4 : Dy=Dj f7 : Dj=Da-2U0j f8 : Ly=La

f9 : td=(0.06 ~ 0.15)Dj f10 : ty=Sp-x0

式中:

Dk—筒口部外徑; U0k—口部初始間隙;

dk—口部內徑; la —接際部初始間隙;

Dj—接際部直徑; Lk—口部長度

U0j—接際部初始間隙; Ly—筒體外部長度

td—底部厚度; ty.—底緣厚度;

Sp—炮栓鏡面至葯室尾端面距離; x0—葯筒地平面與栓體鏡面的初始間隙;

這些方程中共有12個已知參數(Dd、U0k、d、Dj、U0x、lb、la、Da 、U0j 、La、Sp、x0)和8個未知參數(Dk、dk、Dy、Dj、Ly、td、ty、Lk),已知參數由設計者給定。當改變了已知參數時未知參數也隨之改變。

可以通過約束圖利用圖解法解出未知變數[2]。葯筒的結構尺寸示意圖如圖3所示。

圖2 方程約束網路圖

圖3 葯筒的結構尺寸示意圖

3 快速建模實現方法

快速建模就是通過輸入參數,由Pro/ENGINEER系統快速產生模型的過程,模型的相關屬性也可自動給出。Pro/ENGINEER提供了強大的用戶二次開發程序包Pro/Toolkit,通過它可以直接對Pro/ENGINEER的資料庫進行操作。本文即以Pro/Toolkit為開發工具,實現了葯筒的快速設計與建模。Pro/ENGINEER的快速建模二次開發包括以下幾部分[3]。

3.1 用戶介面

用戶介面是人機交互的界面,它包括菜單及菜單文件兩部分。菜單文件擴展名為*.mnu或*.aux。*.mnu菜單完全獨立於已有菜單,*.aux則附加於已有菜單。菜單文件有固定格式,每組數據分三行,每一個菜單按鈕對應一組數據。菜單文件為純文本文件。

3.2 信息文件

信息文件包括了類型無關菜單以及數據輸入提示等所有文本信息,它和菜單文件一樣,也是使用表單的形式,每四行為一組。使用表結構的好處是當需要改動程序顯示時,可以只改動信息文件,而不必改動原程序。

3.3 程序介面

在Pro/Toolkit中,其函數結構一般如下:

User_Appone() { } 用戶功能函數

User_Apptwo() { }

......

User_initializ

 

e() { ...... } 程序入口

User_terminate() { ...... } 程序出口

其中,入口函數和出口函數是必須的,其他函數則是用戶定義函數,用以實現一定的功能。

3.4 註冊文件

註冊文件用以指明程序運行模式、資源位置以及程序運行版本等。其中,運行方式包括多線程和動態連接庫兩種。第一種方法的好處是調試比較容易。第二種方法的優點是運行速度較快,生成的文件比較小。

3.5 編譯平台

程序的編譯需要第三方編譯平台,如TC、Mircosoft C等。選用了Mircosoft公司的Visual C++ 6.0作為編譯平台。利用Visual C++ 6.0的強大功能使得數據管理方便,調試輕鬆直觀[4]。

4 葯筒的快速建模

(1)在參數輸入方面,使用了菜單結合對話框的方式,參數輸入方便直觀。菜單結構如圖4所示。Yaotong Design是在Pro/ENGINEER的Part菜單上添加的系統菜單,這樣既可以實現用戶特定功能,又可以利用Pro/ENGINEER平台的強大功能,方便用戶設計。在模型的實現方面,採用了基於UDF的二次開發技術,可以顯著地降低開發的工作量,提高開發靈活性。

圖4 葯筒設計菜單系統

(2)模型的介面程序和實現程序。以下為葯筒快速建模程序入口和出口,它註冊了菜單文件以及響應函數。

user_initialize()

{int menu_id ,err;

ProMenuFileRegister("PART","part. mnu",&menu_id);

ProMenuAuxfileRegister("PART","part.aux",&menu_id);

err=ProMenubuttonActionSet("part","_YaotongDesign",(ProMenubuttonAction)UserYaotongSystem,NULL,0);

return(0); }

void user_terminate(){} ;

以下為葯筒建模實現程序,它定義了UDF文件及驅動參數等。

UserYaotongCreate(){ ......

ProStringToWstring(data.name,"yaotongudf.gph"); 指定UDF文件

data.n_var_dims=15;

data.var_dims=(Pro_udf_var_dim*)calloc(15,sizeof(Pro_udf_var_dim));

ProStringToWstring(data.var_dims[0].name,"YTJ_zg");變數賦值

data.var_dims[0].type=PROUDFVAR_DIM;

data.var_dims[0].value=_YTJ_zg;

......

data.n_references=0; 指定參考基準

data.dependency=PROUDFDEP_INDEPENDENT;指定模型獨立性

prodb_create_group(p_model,&data,NULL,NULL,0);創建模型

ProWindowRepaint(PRO_VALUE_UNUSED);顯示模型

free(data.var_dims);

return(0); }

通過以上方法產生的模型如圖5所示。

圖5 葯筒實體模型

圖6 葯筒幾何參數輸入界面

在葯筒模型生成以後,可以通過以下兩種方法修改編輯葯筒的尺寸:(1)可以直接用滑鼠雙擊需要修改的特徵,選中需要修改的尺寸即可進行互動式尺寸修改和編輯。修改後的效果可以迅速從模型上反映出來。(2)通過幾何參數輸入對話框輸入要修改結構的尺寸數值來完成對尺寸的修改。參數輸入對話框如圖6所示,直接輸入需要修改參數的新數值即可。

5 結束語

利用快速建模技術,可以大幅度提高設計效率,減輕設計人員的勞動強度,縮短產品設計周期,可使產品的設計變的直觀、輕鬆,可在

 

產品設計的初期易於發現設計缺陷。產品可以方便地通過PDM系統進行管理。

 

Bookmark the permalink ,來源:
One thought on “基於ProENGINEER的炮用發射葯筒的快速設計