謝立新,張亮有,史萬青,符敢為
(1.太原科技大學,山西 太原 030024;2.陜西特種設備質量安全檢測中心,陜西 西安 710048)
起升機構是起重機最重要的基本機構之一,其好壞將直接影響到整臺起重機的工作性能。卷筒是起重機的承載部件,主要用來卷繞并儲存起升繩,因此卷筒是起升機構設計的關鍵環(huán)節(jié)。一般卷筒多為單層卷繞,為了使鋼絲繩整齊排列,卷筒表面通常被做成螺旋槽形狀,這樣還可以增大鋼絲繩與筒體的接觸面積,并使鋼絲繩在卷筒上的位置相對固定,以避免鋼絲繩相互摩擦而減少壽命。
參數(shù)化設計是將系列化、通用化和標準化的定型產(chǎn)品隨產(chǎn)品規(guī)格不同而變化的參數(shù)用相應的變量代替,通過對變量的修改,從而實現(xiàn)同類結構機械零件設計的方法。參數(shù)化設計極大地改善了圖形修改手段,提高了設計的柔性,使設計更加靈活方便。在計算機上進行CAD參數(shù)化設計一般只需在界面上輸入產(chǎn)品的相關參數(shù)就可以準確地重新生成三維模型、工程圖或文檔。參數(shù)化設計的一般過程是:①創(chuàng)建原始模型或圖形;②確定相關參數(shù);③手工輸入?yún)?shù)或調用數(shù)據(jù)庫中的參數(shù);③重生模型、圖紙或文檔。當然,在整個過程中要用到數(shù)據(jù)庫或數(shù)據(jù)庫管理系統(tǒng)對各種數(shù)據(jù)、圖形進行存儲與管理。參數(shù)化設計整體流程如圖1所示。
圖1 參數(shù)化設計整體流程
本例主要采用Pro/E 2.0經(jīng)典野火版和VC++6.0聯(lián)合對Pro/TOOLKIT進行二次開發(fā),并采用Access2000進行數(shù)據(jù)庫訪問來獲取參數(shù)。
Pro/TOOLKIT應用程序有同步和異步兩種工作模式。同步模式包含動態(tài)連接庫模式(DLL模式)和多進程模式。動態(tài)連接庫模式是把Pro/TOOLKIT應用程序集成到Pro/E系統(tǒng)中的標準方法,它是通過編譯用戶編寫的C程序來生成一個DLL文件,這樣Pro/TOOLKIT應用程序和Pro/E系統(tǒng)運行在同一進程中,其二者之間的信息交換是直接通過函數(shù)調用來實現(xiàn)的。異步模式無需啟動Pro/E就能單獨運行Pro/TOOLKIT應用程序,實現(xiàn)了Pro/TOOLKIT應用程序與Pro/E系統(tǒng)的并行運行。本例采用同步模式,通過VC++6.0生成DLL文件。
Pro/TOOLKIT二次開發(fā)應用開發(fā)程序主要有3個步驟:①編寫源文件,包括資源文件和程序文件,其中資源文件主要包括菜單、窗口、對話框等資源文件;②生成可執(zhí)行文件;③可執(zhí)行文件在Pro/E中進行注冊,首先要做一個后綴為.dat的注冊文件,然后進行注冊。Pro/TOOLKIT程序的核心是user_initialize()和user_terminate()。user_initialize()是初始化函數(shù),是函數(shù)的入口點,基本菜單和動作函數(shù)都在這里添加;user_terminate()是結束中斷函數(shù),是函數(shù)的結束點。Pro/TOOLKIT二次開發(fā)程序流程如圖2所示。
建立一個 MFC AppWizard(dll)工程,選擇Regullar Dll using shared MFC DLL選項,工程命名為JG。然后進行如下設置:
(1)選擇工具欄Tool→Options→Directorise在Show directories for下拉列表中選擇Includes,然后添加Pro/TOOLKIT頭文件所在的3個文件夾位置(其中~表示Pro/E的安裝路徑):
~\PROTOOLKIT\INCLUDES
~\PROTOOLKIT\PROTK_APPLS\INCLUDES
~\PROTOOLKIT\INCLUDES
在Show directories for下拉列表中選擇 Library files,然后添加Pro/TOOLKIT庫文件所在的兩個位置:
~\PRODEVELOP\I486_NT\OBJ
~\PROTOOLKIT\I486_NT\OBJ
圖2 Pro/TOOLKIT二次開發(fā)程序流程
(2)進行項目屬性設置:Build→SetActive→Configuration→JG-Win32Release;選擇Project→settings→C/C++屬性頁,在Preprocessor definitions欄添加:PRO_USE_VAR_ARGS;然后選擇Link屬性頁,并在Category列表框中選擇General,在Object/Library modules欄中添加3個庫文件:Protk_dll.lib、wsock32.lib、mpr.lib;再在 Link屬性頁的Category列表框中選擇Input,然后在Ingore libraries中輸入忽略文件libcmtd;最后在Link屬性頁的Category列表框中選擇Customize,然后點選中Force file output完成設置。
3.2.1 定義菜單和動作函數(shù)[2]
在JG..cpp源程序添加頭文件(此處略寫),初始化程序和自定義函數(shù):
int JGMenuActFn();
static uiCmdAccessState AccessAvailable(uiCmdAccessMode);extern"C"int user_initialize()
//初始化函數(shù)添加菜單創(chuàng)建和菜單動作函數(shù)
{ ProError status;
ProFileName MsgFile;
uiCmdCmdId PushButton_cmd_id2;
ProStringToWstring(MsgFile,"JGMessage.txt");//設置菜單信息文件名
......return status;}
extern"C"void user_terminate()//終止函數(shù)
{ AFX_MANAGE_STATE(AfxGetStaticModuleState());}static uiCmdAccessState AccessAvailable (uiCmdAccessMode access_mode)
{ return(ACCESS_AVAILABLE);}
3.2.2 三維模型尺寸驅動
在DLG.cpp文件下添加頭文件(此處略寫),響應函數(shù)及主要代碼如下:
BOOL CDlg::OnInitDialog()
{ CDialog::OnInitDialog();
……
if(status==PRO_TK_NO_ERROR)
{ ProMdlToModelitem(model,&modelitem);
//根據(jù)指定的參數(shù)名獲得參數(shù)對象指針ProStringToWstring(&ParamName,"JB");
……
status=ProParameterInit(&modelitem,&ParamName,&param);//獲得參數(shù)值
ProParameterValueGet(&param,&value);
m_b=value.value.d_val;
……}
return TRUE;}
3.2.3 數(shù)據(jù)庫訪問技術[3]
本文采用ADO數(shù)據(jù)庫。首先在Pro/E的啟動目錄下建立一個Access2000的.mdb數(shù)據(jù)庫文件且命名為ANGLE,然后在 VC++6.0平臺上選擇Inert→NewClass→Generic Class并命名為 myado,再在myado.h和myado.cpp添加自定義函數(shù)及相關代碼,并在DLG.cpp文件下調用myado中的函數(shù)進行數(shù)據(jù)庫技術訪問。
以起重機卷筒設計為例,實現(xiàn)過程如下:
(1)編寫的資源信息文件、菜單文件和注冊文件要放在指定的路徑目錄下;建立的Access2000要放在Pro/E啟動目錄下。
(2)在Pro/E2.0中,對建好的三維模型添加關系,首先選擇菜單工具→關系,然后定義尺寸關系。
(3)對在VC++6.0平臺上編寫好的程序進行手工注冊,首先選擇菜單工具→輔助應用程序→注冊→注冊文件→啟動,完成注冊生成卷筒參數(shù)化設計菜單。
(4)點擊“卷筒參數(shù)化設計”菜單,彈出對話框界面;點擊“打開”可以打開Pro/E文件,也可以在Pro/E中先打開文件再進行程序注冊;點擊“調用數(shù)據(jù)庫”進行參數(shù)選擇;點擊“重生模型”完成三維模型的更新,如圖3所示。
圖3 參數(shù)化建模
對話框是人機交互的重要通道,MFC與UI對話框相比,前者界面布局更容易,設計、修改和調試更方便。非模態(tài)對話框中的Edit Control控件不易接收中文信息。
本文以起重機卷筒的參數(shù)化設計為例,闡述了二次開發(fā)理論方法和過程。以VC++6.0為開發(fā)平臺,結合數(shù)據(jù)庫技術,利用Pro/E中的Pro/TOOLKIT工具包和Access2000進行參數(shù)化建模,能方便地訪問數(shù)據(jù)庫,建立標準件庫。從而大大提高了設計效率和零部件的通用性,實現(xiàn)了設計的系列化。
[1] 吳立波.Pro/ENGINEER二次開發(fā)技術基礎[M].北京:電子工業(yè)出版社,2006.
[2] 李世國.Pro/TOOLKIT程序設計[M].北京:機械工業(yè)出版社,2003.
[3] 陶元芳.機械工程軟件技術基礎[M].北京:機械工業(yè)出版社,2010.