周 昇
(南通職業(yè)大學(xué) 機(jī)械工程學(xué)院, 江蘇 南通 226007)
當(dāng)前,機(jī)械產(chǎn)品設(shè)計常用的主流三維設(shè)計軟件有Creo、UG、solidworks 等,這些軟件有較好的通用性,但在用于設(shè)計特定產(chǎn)品時,存在設(shè)計速度慢、設(shè)計效率低等不足。為此考慮在上述三維軟件平臺上,開發(fā)適用于企業(yè)特定產(chǎn)品設(shè)計的應(yīng)用程序,以提高產(chǎn)品的設(shè)計效率和企業(yè)核心競爭力。
減速器是一種原動件與工作機(jī)之間的減速傳動裝置[1],在現(xiàn)代機(jī)械中應(yīng)用極為廣泛,每年的產(chǎn)銷量極大,所以提高減速器產(chǎn)品的設(shè)計效率具有較高的經(jīng)濟(jì)效益和社會效益。本文以一級直齒圓柱齒輪減速器系統(tǒng)為例,使用Creo7.0 64 位簡體中文版和 WINDOWS10(64 位),基于 Visual Studio 2019,按照其設(shè)計需求進(jìn)行Creo 的二次開發(fā),完成減速器系統(tǒng)參數(shù)化定制修改和功能擴(kuò)展。
產(chǎn)品開發(fā)效率取決于零件設(shè)計模型的建立速度。產(chǎn)品開發(fā)初期,零件形狀和尺寸還未精確設(shè)計,要通過性能需求分析、裝配過程驗證和數(shù)控編程設(shè)計之后才能最終確定[1]。因此,零件模型設(shè)計一般要求具有柔性,以便根據(jù)需要修改。參數(shù)化設(shè)計就是將模型中各定量參數(shù)通過函數(shù)關(guān)系設(shè)計成關(guān)聯(lián)變量,對變量化參數(shù)賦予不同數(shù)值,就可得到相應(yīng)大小和形狀的零件模型,以此提升設(shè)計效率。同樣,減速器系統(tǒng)零件雖然較多,但可設(shè)計為由幾個關(guān)鍵變量(參數(shù))驅(qū)動,通過給關(guān)鍵變量(參數(shù))賦值,確定零件大小或形狀,從而形成所需的減速器系統(tǒng)。
基于上述思路,對一級直齒圓柱齒輪減速器選定4 個基本參數(shù),即模數(shù)M、高速軸齒輪齒數(shù)Z1、低速軸齒輪齒數(shù)Z2和齒寬B,建立減速器零件的基礎(chǔ)參數(shù)化模型。4 個參數(shù)確定后,高低速直齒圓柱齒輪尺寸、相應(yīng)的高低速軸尺寸、與之配套的軸承大小型號均可確定,承載這些零件的箱體尺寸也即確定。減速器系統(tǒng)零件設(shè)計的基本參數(shù)驅(qū)動模型可表示為:
通過改變4 個關(guān)鍵參數(shù),即可生成新的減速器系統(tǒng),自動形成圖紙。不需要針對每次需求變更重新建?;蚴謩又饌€修改模型參數(shù),省去了重新繪圖的煩瑣操作,節(jié)時省力,且不易遺漏和出錯,可大大提高設(shè)計效率。
為了較為方便地修改和更新參數(shù),在完成參數(shù)化設(shè)計后,還需基于Creo 平臺開發(fā)一組用于減速器設(shè)計的菜單,通過菜單操作完成零件更新設(shè)計。根據(jù)目前軟件和硬件的主流運用情況,擬選用WINDOWS10(64 位)操作系統(tǒng)、Creo7.0 64 位簡體中文版Visual Studio 2019 開發(fā)平臺,進(jìn)行基于Creo 二次開發(fā)的減速器系統(tǒng)設(shè)計。
參數(shù)化設(shè)計是二次開發(fā)的關(guān)鍵。為了縮短產(chǎn)品開發(fā)周期,多數(shù)企業(yè)采用改進(jìn)型設(shè)計,即對舊產(chǎn)品的模型參數(shù)稍加改進(jìn)得到新產(chǎn)品。其參數(shù)選取原則是:參數(shù)獨立可變且盡量以最少參數(shù)來確定零件的可變尺寸,并通過參數(shù)化尺寸實現(xiàn)對設(shè)計結(jié)果的修改[2-4]。因此,設(shè)計時首先要分析零件,提取其關(guān)鍵尺寸作為驅(qū)動參數(shù)。參數(shù)化設(shè)計最大的難點在于保證參數(shù)變化時,三維模型會得到更新而不至于崩潰。因此,要特別注意模型的架構(gòu)和特征參數(shù)的“父子關(guān)系”。
如圖1,減速器箱體由上蓋和基座組成。遵循“先整體后局部”的設(shè)計理念,先完成減速器箱體的整體建模,再采用“實體化”工具將箱體分成上蓋和基座分別進(jìn)行建模。
圖1 箱體建模
點擊“工具”“參數(shù)”設(shè)置4 個基本參數(shù):模數(shù)M,高速軸齒輪齒數(shù)Z1(20 圖2 設(shè)置箱體參數(shù) 減速器箱體輪廓尺寸關(guān)系示意如圖3,根據(jù)其性能要求和制造工藝建立減速器箱體零部件尺寸關(guān)系如表1。 圖3 箱體輪廓尺寸關(guān)系示意 表1 減速器箱體零部件尺寸關(guān)系 箱座高度H 通常按結(jié)構(gòu)需要確定。為避免傳動件轉(zhuǎn)動時將油池底部污物攪起,大齒輪齒頂圓距油池底應(yīng)大于30 mm,一般為30~50 mm[1],故表 1 中 H= Φ2/2+40。H、R1、R2的取值關(guān)乎箱體的輪廓尺寸,應(yīng)采用取整函數(shù)ceil()取整為5 的倍數(shù)。 如圖4,箱體的2 個軸孔內(nèi)徑(應(yīng)和軸承外徑配合,其尺寸關(guān)系如表2。 圖4 軸孔尺寸關(guān)系示意 表2 軸孔內(nèi)徑與軸承孔外徑的關(guān)系 如圖5,高速軸軸承是標(biāo)準(zhǔn)件,其尺寸是一個序列,可根據(jù)高速齒輪的分度圓直徑大小用Creo中自帶的判斷語句“if……else……endif”來判斷軸承序列尺寸的取舍,其尺寸關(guān)系如表3。 圖5 高速軸軸承的尺寸示意 關(guān)系式 說明If M*Z1>40 && M*Z1 ≤60 40<分度圓直徑≤60 D=47 高速軸軸承外徑d=25 高速軸軸承內(nèi)徑W=12 高速軸軸承寬度endif 繼續(xù)條件語句If M*Z1>60 && M*Z1 ≤80 60<分度圓直徑≤80 D=55 高速軸軸承外徑d=30 高速軸軸承內(nèi)徑W=13 高速軸軸承厚度…… …… 高速軸悶蓋模型尺寸顯然可由箱體和軸承的相關(guān)尺寸獲取,其余零件的尺寸關(guān)系受篇幅所限,不做贅述。 開發(fā)環(huán)境配置路徑一定要正確,包含頭文件和庫文件的配置: E:ptcCreo 7.0Common Filesprotoolkitincludes E:ptcCreo 7.0Common Filesprotoolkitx86e_win64obj[5-7] 在D 盤上建一個名為“Reducer design”的文件夾,在此文件夾下再建立8 個子文件夾,如圖6所示。 在“Reducer design”文件夾中新建一記事本文件,文件名為prokt,保存后將擴(kuò)展名改為.dat,也就是prokt.dat。在記事本內(nèi)寫入以下內(nèi)容: NAME Reducer design EXEC_FILE D:/Reducer design/Reducer.dll TEXT_DIR D:/Reducer design/text STARTUP dll ALLOW_STOP TRUE DELAY_START FALSE REVISION Creo7.0 unicode_encoding FALSE END 在如圖6 的“text”文件夾內(nèi)新建記事本,名為“Message”,內(nèi)容為: MainMenu 減速器設(shè)計系統(tǒng)# submenu1 一級圓柱齒輪減速器# Active submenu1 menu 輸入一級圓柱齒輪減速器參數(shù) submenu2 二級圓柱齒輪減速器# Active submenu2 menu 輸入二級圓柱齒輪減速器參數(shù) submenu3 蝸輪蝸桿減速器# Active submenu3 menu 輸入蝸輪蝸桿減速器參數(shù) submenu4 行星齒輪減速器# Active submenu4 menu 輸入行星齒輪減速器參數(shù) submenu5 擺線針輪減速器# Active submenu5 menu 輸入擺線針輪減速器參數(shù) Submenu6 關(guān)于減速器設(shè)計系統(tǒng)# Active submenu6 menu 版本信息和版權(quán) 主程序“Reducer design.cpp”是程序中最重要的部分,程序的主要框架均在主程序中建立,所有的菜單也在主程序中建立。 // 頭文件 #include "stdafx.h" #include "Reducer.h" #include "dhk1.h" #include "about.h" #include #include "ProMenubar.h" #include "ProMenu.h" #include "ProUtil.h" #include "ProWindows.h"[8] //添加主菜單 status=ProMenubarMenuAdd("MainMenu", "MainMenu", "Utilities ", PRO_B_TRUE, MsgFile); //添加子菜單 ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)submenu1,uiCmdPrioDefault,AccessDefault,PRO_B_TRUE,PRO_B_TRUE, &cmd_id1); //添加菜單響應(yīng)動作 ProMenubarmenuPushbuttonAdd ("Main-Menu", "submenu1", "submenu1", "Active sub -menu1 menu", NULL,PRO_B_TRUE, cmd_id1,ProStringToWstring(message_file,"Message.txt")); //設(shè)置菜單圖標(biāo) ProCmdIconSet(cmd_id1, "d: //Reducer design//圖標(biāo)//減速器 1.jif"); //啟動對話框 int submenu1() {AFX_MANAGE_STATE(AfxGetStaticModuleState()); dhk1 *dhk = new dhk1; dhk->Create(IDD_DIALOG1); dhk->ShowWindow(SW_SHOW); return(0);} 點擊菜單會彈出對話框,點擊對話框按鈕實現(xiàn)人機(jī)交互,包括模型的獲取和顯示、參數(shù)修改更新及模型再建。 對話框可用Pro/TOOLKIT 編寫,但程序由純手工編寫,不能直觀檢驗。Visual Studio 2019 提供了很多對話框模板,利用圖形化界面可很方便地修改這些模版而獲得如圖7 的對話框?!拜敵鋈S總裝圖”程序設(shè)計如下: 圖7 對話框 void Dialogbox1::OnBnClickedButton1() {//將所有零件更新并顯示 //將箱體底座更新并顯示ProMdlRetrieve(L"d://Reducer design//一級圓柱齒輪減速器//箱體底座.prt",PRO_MDL_PART, &part); redsmdl(); //將箱體上蓋更新并顯示ProMdlRetrieve(L"d://Reducer design//一級圓柱齒輪減速器//箱體上蓋.prt",PRO_MDL_PART, &part); redsmdl(); //將高速軸透蓋更新并顯示 ProMdlRetrieve(L"d://Reducer design//一級圓柱齒輪減速器//高速軸透蓋.prt",PRO_MDL_PART, &part); redsmdl(); //將高速軸悶蓋更新并顯示 ProMdlRetrieve(L"d://Reducer design//一級圓柱齒輪減速器//高速軸悶蓋.prt",PRO_MDL_PART, &part); redsmdl(); ………… //顯示更新后的減速器總裝三維圖 //將三維總裝圖調(diào)入內(nèi)存 ProMdlRetrieve(L"d://Reducer design//一級圓柱齒輪減速器//總裝三維圖.a(chǎn)sm",PRO_MDL_ASSEMBLY, &part); redsmdl(); //組件自動重新生成asmregenerate(); } 模型更新子程序: void Dialogbox1::redsmdl() {//獲取零件ID int i; ProMdlIdGet(part, &i); //初始化零件特征 ProModelitemInit(part, i, PRO_PART,&feature); //初始化各參數(shù)(Z1、Z2 為齒數(shù), M 為模數(shù),B 為齒寬) ProParameterInit(&feature,L"Z1",¶m1); ProParameterInit(&feature,L"Z2",¶m2); ProParameterInit(&feature, L"M", ¶m3); ProParameterInit(&feature, L"B", ¶m4); //更新對話框輸入的變量 UpdateData(true); //變量賦值 value1.type = PRO_PARAM_INTEGER; value1.value.i_val = Z1; value2.type = PRO_PARAM_INTEGER; value2.value.i_val = Z2; value3.type = PRO_PARAM_INTEGER; value3.value.i_val = M; value4.type = PRO_PARAM_INTEGER; value4.value.i_val = B; //設(shè)置參數(shù)值 ProParameterValueSet(¶m1, &value1); ProParameterValueSet(¶m2, &value2); ProParameterValueSet(¶m3, &value3); ProParameterValueSet(¶m4,&value4);[9-10] //顯示零件 ProMdlDisplay(part); //激活當(dāng)前窗口 ProMdlWindowGet(part, &window); ProWindowActivate(window); partregenerate( ); / /程序停頓 0.5 s Sleep(500); (1)打開 CREO7.0,點擊“實用工具”→“輔助應(yīng)用程序”。 (2)點擊“輔助應(yīng)用程序”→“注冊”,選中D:Reducer designprotk.dat 文件,點擊“啟動”。 (3)點擊“工具”→“減速器設(shè)計系統(tǒng)”,進(jìn)入減速器系統(tǒng)設(shè)計二次開發(fā)菜單界面,如圖8 所示。 圖8 減速器設(shè)計二次開發(fā)菜單 (4)點擊“一級圓柱齒輪減速器”,打開對話框,在對話框里輸入如圖7 所示的數(shù)據(jù), 點擊“輸出三維總裝圖”,繪圖區(qū)域顯示圖9 所示的三維總裝圖。 圖9 減速器系統(tǒng)三維總裝圖 (5)點擊“輸出二維總裝圖”,繪圖區(qū)域即顯示二維總裝圖。 (6)點擊“關(guān)于減速器設(shè)計系統(tǒng)”,可得到版本說明。 本文以一級直齒圓柱齒輪減速器系統(tǒng)為例,基于Creo 二次程序開發(fā),進(jìn)行參數(shù)化設(shè)計,完成了定制修改和功能的擴(kuò)展。功能測試和實際運用表明:該二次開發(fā)程序運行可靠,新產(chǎn)品開發(fā)時間只需原來的1/3 左右,可明顯提高設(shè)計效率,縮短產(chǎn)品開發(fā)周期,同時也減少了設(shè)計錯誤,取得較好的經(jīng)濟(jì)效益。Creo 二次開發(fā)需參數(shù)化建模、二次開發(fā)模塊 (Creo/TOOLKIT)、Windows API、MFC、Visual Studio 2019 等方面知識的融會貫通,有一定難度。目前,二次開發(fā)的專門指導(dǎo)書籍和教材也很少,借助Visual Studio 2019 平臺進(jìn)行二次開發(fā)非常方便快捷,但軟件在智能化設(shè)計和計算機(jī)模擬驗證方面,還有進(jìn)一步上升的空間,值得進(jìn)一步探索。2.2 軸承的參數(shù)化選用
2.3 高速軸悶蓋的參數(shù)化建模
3 基于Creo 的二次開發(fā)過程
3.1 開發(fā)環(huán)境的配置
3.2 文件布局
3.3 創(chuàng)建注冊文件
3.4 創(chuàng)建菜單文件
3.5 菜單程序(主程序)
3.6 對話框程序
4 二次開發(fā)程序使用步驟
5 結(jié)束語