李全超,李志恒
(中國(guó)艦船研究設(shè)計(jì)中心,武漢 430064)
軸系是船舶推進(jìn)系統(tǒng)的重要組成部分,用于將主機(jī)發(fā)出的功率傳遞給推進(jìn)器,并將推進(jìn)器產(chǎn)生的推力傳給船體,使船舶獲得前進(jìn)、后退的動(dòng)力[1]。船舶軸系傳動(dòng)部件主要包括艉軸、聯(lián)軸節(jié)、中間軸、推力軸、齒輪軸等,軸段結(jié)構(gòu)形狀規(guī)則,各軸段之間具有很大的相似性,軸系結(jié)構(gòu)特征明顯。因此,船舶軸系易于以特征建模的方式進(jìn)行參數(shù)化設(shè)計(jì)。
Pro/E是一套大型三維參數(shù)化軟件,在目前的三維造型軟件領(lǐng)域中占有著重要地位,并作為當(dāng)今世界機(jī)械CAD/CAE/CAM 領(lǐng)域的新標(biāo)準(zhǔn)而得到業(yè)界的認(rèn)可和推廣[2]。Pro/E具有較強(qiáng)的模型參數(shù)化能力,通過(guò)對(duì)Pro/E 進(jìn)行二次開發(fā),采用參數(shù)驅(qū)動(dòng)的方式可達(dá)到快速設(shè)計(jì)的目的。
為提高軸系的設(shè)計(jì)質(zhì)量和設(shè)計(jì)效率,本文研究以特征創(chuàng)建的方式進(jìn)行船舶軸系的參數(shù)化設(shè)計(jì),并在此基礎(chǔ)上以Pro/E 為開發(fā)平臺(tái),通過(guò)MFC和Pro/Toolkit 開發(fā)工具相結(jié)合的方法,構(gòu)建船舶軸系零件的特征數(shù)據(jù)庫(kù),實(shí)現(xiàn)船舶軸系的參數(shù)化設(shè)計(jì)。
特征是一種具有特定形狀、特定功能和特定工藝屬性的基本信息單元,用于系統(tǒng)地連接CAD和CAPP,實(shí)現(xiàn)CAD/CAPP的有效集成[3]。零件即為各種特征按照一定規(guī)則的組合體。特征在不同領(lǐng)域中的分類不同,如Pro/E 零件設(shè)計(jì)需要用到拉伸、旋轉(zhuǎn)、掃描、倒角、圓角等特征,本文稱其為基本特征。機(jī)械領(lǐng)域的特征分類一般以零件或體素的幾何相似性,兼顧各要素的功能和形狀進(jìn)行分類,可以是多個(gè)基本特征的組合。船舶軸系零件均為圓柱類結(jié)構(gòu),幾何外形相似性較強(qiáng),同時(shí)軸段常設(shè)計(jì)有倒角、圓角、鍵槽、退刀槽、螺紋、齒輪等明顯結(jié)構(gòu)特征。因此,以特征的方式進(jìn)行軸系建模是快速實(shí)現(xiàn)軸系零件參數(shù)化的有效途徑。
根據(jù)船舶軸系的結(jié)構(gòu)特點(diǎn),可將船舶軸系分為基本特征和輔助特征兩類特征?;咎卣鳛檩S系零件參數(shù)化建模的主特征,是軸系結(jié)構(gòu)的基礎(chǔ),主要包括圓柱軸、圓錐軸、鍵槽軸、花鍵軸、齒輪軸、法蘭等;輔助特征主要用于對(duì)基本特征的局部修飾和完善,輔助特征需依附于主特征,主要有鍵槽、退刀槽、倒角、圓角、修飾螺紋、孔特征、齒輪等。軸系特征分類如圖1所示。Pro/E 二次開發(fā)可以構(gòu)建軸系特征數(shù)據(jù)庫(kù),若將這些特征按照一定方式組合,完成軸段拼接、編輯、修飾和修改,即可快速獲得船舶軸系參數(shù)化模型。
圖1 船舶軸系特征分類圖
Pro/E 中特征參數(shù)化設(shè)計(jì)的方法有很多,如通過(guò)定義特征元素樹(Feature Element Tree)產(chǎn)生基本特征,進(jìn)而構(gòu)建產(chǎn)品特征組的方法;利用族表(Family Table)建立樣板模型文件,通過(guò)控制族表中定義的各個(gè)參數(shù)更新模型的形狀和尺寸的方法;利用程序(Pro/Program)控制設(shè)計(jì)步驟和參數(shù)進(jìn)行零件參數(shù)化的方法;根據(jù)需要組合數(shù)個(gè)基本特征,建立并調(diào)用用戶自定義特征UDF(User Defined Feature)的方法等[4]。其中,用戶自定義特征可以將數(shù)個(gè)基本特征組合起來(lái),形成一個(gè)新的自己定義的特征,可根據(jù)用戶需要將外形相同或相近的特征組合起來(lái),建立完善的UDF 數(shù)據(jù)庫(kù),以供隨時(shí)調(diào)用。調(diào)用時(shí)可以通過(guò)控制選定的特征、所有相關(guān)尺寸、特征之間的關(guān)系以及特征放置等參數(shù)進(jìn)行自定義特征的參數(shù)化。該方法可以根據(jù)用戶實(shí)際需要實(shí)現(xiàn)標(biāo)準(zhǔn)特征組和常用特征組的重復(fù)使用,提高建模工作效率,特別適合于軸系特征的參數(shù)化設(shè)計(jì)。因此,本文采用建立UDF 數(shù)據(jù)庫(kù)的方法進(jìn)行軸系特征的參數(shù)化設(shè)計(jì),現(xiàn)以圓錐軸為例說(shuō)明設(shè)計(jì)步驟。
(1)通過(guò)旋轉(zhuǎn)命令創(chuàng)建一個(gè)圓錐軸段特征,為UDF的創(chuàng)建創(chuàng)造依托;(2)通過(guò)“工具”→“UDF 庫(kù)”,打開UDF 菜單管理器,點(diǎn)擊“創(chuàng)建”按鈕開始UDF 創(chuàng)建,根據(jù)系統(tǒng)提示依次輸入U(xiǎn)DF 名稱、設(shè)置特征從屬性、選擇需定義基本特征(組),完成特征對(duì)象的選??;(3)根據(jù)系統(tǒng)提示為UDF創(chuàng)建必需的參考特征(如曲面、邊、軸線等)創(chuàng)建提示文字;(4)點(diǎn)擊定義可變尺寸,選擇UDF 中需要參數(shù)化的尺寸,并輸入尺寸提示,完成UDF的定義。按此方式進(jìn)行軸系基本特征和輔助特征UDF 庫(kù)的創(chuàng)建。
Pro/E 二次開發(fā)時(shí)通過(guò)程序調(diào)用UDF 庫(kù),可實(shí)現(xiàn)軸系參數(shù)化特征的快速創(chuàng)建。該過(guò)程和手動(dòng)調(diào)用類似:(1)調(diào)入U(xiǎn)DF 對(duì)象文件,設(shè)置特征從屬、縮放等屬性;(2)選取并設(shè)置UDF 放置參考;(3)獲取特征參數(shù)化尺寸,并通過(guò)交互界面更新尺寸數(shù)值,最后創(chuàng)建用戶自定義特征并更新當(dāng)前模型,即完成UDF 特征的參數(shù)化生成。Pro/Toolkit 中調(diào)用UDF 數(shù)據(jù)庫(kù)進(jìn)行特征參數(shù)化的關(guān)鍵步驟代碼如下:
在軸系特征實(shí)現(xiàn)參數(shù)化的基礎(chǔ)上,對(duì)Pro/E 進(jìn)行二次開發(fā),進(jìn)行船舶軸系參數(shù)化設(shè)計(jì)程序的編寫,程序主要包含用戶菜單設(shè)計(jì)、應(yīng)用程序的初始化和中止、MFC 對(duì)話框與Pro/E 之間的鏈接和程序注冊(cè)等部分內(nèi)容。
用戶菜單是應(yīng)用程序與Pro/E 軟件集成的主要方式,程序設(shè)計(jì)之初需根據(jù)系統(tǒng)需求設(shè)計(jì)菜單,并給每個(gè)菜單按鈕設(shè)計(jì)動(dòng)作函數(shù)。用戶菜單的顯示需要調(diào)用信息文件,信息文件是用來(lái)定義菜單項(xiàng)、菜單項(xiàng)提示等信息的具有一定格式要求的ASCII 碼文件。本文添加的船舶軸系參數(shù)化設(shè)計(jì)程序自定義菜單代碼如下:
生成的系統(tǒng)菜單如圖2所示。添加菜單的程序和函數(shù)菜單關(guān)鍵字所對(duì)應(yīng)的信息資源文件如下:
MarineShaft
MarineShaft
船舶軸系參數(shù)化設(shè)計(jì)(&S)
#
InsertShaft
Insert a Shaft
軸系基本特征創(chuàng)建
#
圖2 用戶自定義菜單
MenuButton1
activate Menu button1
光軸段
#
……
InsertOther
Insert Other Feature
插入軸系輔助特征
#
InsertKey Insert a Key
鍵槽
#
……
應(yīng)用程序在Pro/E 環(huán)境中以同步模式運(yùn)行首先要求設(shè)計(jì)初始化函數(shù)和終止函數(shù)。初始化函數(shù)user_initializ()主要用于設(shè)置用戶的交互接口,如菜單、調(diào)用對(duì)話框及其它初始設(shè)置;終止函數(shù)user_terminate()則用于應(yīng)用程序中止或退出,可以不執(zhí)行任何動(dòng)作[2]。用戶自定義菜單代碼放置于初始化函數(shù)之內(nèi),初始化和終止函數(shù)代碼如下:
圖3 圓錐軸參數(shù)輸入對(duì)話框
本文通過(guò)動(dòng)態(tài)鏈接庫(kù)(DLL) 實(shí) 現(xiàn) Pro/Toolkit 與MFC的通信,利用MFC 強(qiáng)大的編制用戶界面能力生成程序的人機(jī)交互界面[5]。通過(guò)用戶自定義菜單按鈕完成對(duì)用戶界面的鏈接,在Pro/E 環(huán)境中生成MFC 對(duì)話框,方便、自然、快捷地進(jìn)行人機(jī)交互。
根據(jù)Pro/E 二次開發(fā)要求進(jìn)行VC++環(huán)境設(shè)置,包括所需的包含文件、庫(kù)文件及其路徑,程序編寫完畢后即可進(jìn)行應(yīng)用程序編譯。應(yīng)用程序在Pro/E 中的運(yùn)行需要編寫注冊(cè)文件,通過(guò)注冊(cè)文件向系統(tǒng)傳遞應(yīng)用程序的信息,確定各種資源所存放的位置,注冊(cè)文件如圖4所示。
圖4 注冊(cè)文件
該應(yīng)用程序可根據(jù)需要進(jìn)行船舶軸系特征的參數(shù)化建模,通過(guò)各軸系特征的放置關(guān)系進(jìn)行特征拼接,實(shí)現(xiàn)船舶軸系的參數(shù)化設(shè)計(jì)。程序使用時(shí)僅需通過(guò)互交界面輸入特征尺寸,選擇特征放置參考,直接由程序控制模型創(chuàng)建和拼接,并實(shí)時(shí)可視化顯示,裝配后的船舶軸系如圖5所示。該程序也可用于其他行業(yè)軸類零件的參數(shù)化設(shè)計(jì)。
圖5 船舶軸系示意圖
本文結(jié)合船舶軸系結(jié)構(gòu)特點(diǎn)進(jìn)行了船舶軸系零件特征的劃分。以Pro/E 為開發(fā)平臺(tái),通過(guò)MFC和Pro/Toolkit開發(fā)工具相結(jié)合的方法,構(gòu)建了船舶軸系零件的特征數(shù)據(jù)庫(kù),編寫了船舶軸系參數(shù)化設(shè)計(jì)程序,實(shí)現(xiàn)了船舶軸系的參數(shù)化設(shè)計(jì)。該基于特征的船舶軸系參數(shù)化設(shè)計(jì)可快速建立船舶軸系三維模型,大幅提高船舶軸系的設(shè)計(jì)效率。同時(shí),該參數(shù)化模型還可以直接導(dǎo)入ANSYS 等有限元分析軟件,進(jìn)一步進(jìn)行船舶軸系的運(yùn)動(dòng)仿真、靜力學(xué)、動(dòng)力學(xué)特性分析等工作。
[1]邵開文,馬運(yùn)義.艦船技術(shù)與設(shè)計(jì)概論[M].北京:國(guó)防工業(yè)出版社,2005.
[2]吳立軍.Pro/ENGINEER 二次開發(fā)技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2006.
[3]羅志偉,陳亮,鄧靈,等.基于特征的軸類零件參數(shù)化設(shè)計(jì)系統(tǒng)[J].機(jī)械設(shè)計(jì)與研究,2004,20(5):58-60.
[4]Parametric Technology Corporation.Toolkit User's Guide[M].USA:PTC 公司,1998.
[5]宋娥,李世國(guó).Pro/E 二次開發(fā)中的界面設(shè)計(jì)技術(shù)[J].機(jī)械設(shè)計(jì)與制造,2005(5):56-58.
[6]衛(wèi)大為,李健康.Pro/E 二次開發(fā)的機(jī)械零件參數(shù)化設(shè)計(jì)[J].機(jī)械制造與自動(dòng)化,2004,33(6):21-24.
[7]孔銳,鐘佩思,劉梅,等.基于Pro/E 二次開發(fā)的特征提取技術(shù)研究[J].機(jī)械設(shè)計(jì)與制造,2012(4):86-88.
[8]王彩英.基于特征的軸類零件參數(shù)化設(shè)計(jì)的研究[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2008,21(5):131-133.
[9]胡昊.基于Pro/E的汽車發(fā)動(dòng)機(jī)曲軸飛輪組的三維參數(shù)化設(shè)計(jì)與研究[J].機(jī)械設(shè)計(jì)與制造,2012(5):113-115.