黃立智,于忠海
(1.上海理工大學(xué) 機械工程學(xué)院,上海 200093 ;2.上海電機學(xué)院 機械學(xué)院,上海 201306)
基于NX二次開發(fā)液壓扳手設(shè)計系統(tǒng)開發(fā)
黃立智1,于忠海2
(1.上海理工大學(xué) 機械工程學(xué)院,上海 200093 ;2.上海電機學(xué)院 機械學(xué)院,上海 201306)
目前對于液壓扳手的設(shè)計大多采用傳統(tǒng)的設(shè)計方法,拿到設(shè)計任務(wù)之后從零開始繪制圖紙,設(shè)計周期長、效率低。文中提出利用NX二次開發(fā)的方法對液壓扳手結(jié)構(gòu)進行快速設(shè)計并給出程序設(shè)計方案。將液壓扳手的主要結(jié)構(gòu)系統(tǒng)進行參數(shù)化建模,再以Visual Studio 2010為開發(fā)平臺,利用UG NX/OPEN API 提供的二次開發(fā)編程接口,運用VC++編程語言實現(xiàn)對話框以及設(shè)計界面的具體功能。完成整個系統(tǒng)的構(gòu)建,實現(xiàn)液壓扳手結(jié)構(gòu)的快速設(shè)計。
液壓扳手;NX二次開發(fā);UG NX/OPEN API;VC++編程
液壓扳手能夠準(zhǔn)確、可靠地控制預(yù)緊力,提高螺栓連接的剛度以及可靠性。但是,通過對企業(yè)的調(diào)查發(fā)現(xiàn),目前的液壓扳手建模大多是傳統(tǒng)的建模方法,效率非常低。
NX是CAD、CAM和CAE一體化的軟件系統(tǒng),能夠解決企業(yè)的大部分設(shè)計需求,但是很多專業(yè)性、更為具體的問題單靠軟件本身很難實現(xiàn)。通過NX本身提供的二次開發(fā)工具對NX進行二次開發(fā),可以實現(xiàn)企業(yè)的一些特殊需求[1-3]。本文利用 NX/OPEN二次開發(fā)工具結(jié)合VC++編程語言對NX 8.0軟件進行二次開發(fā),實現(xiàn)液壓扳手的快速設(shè)計。
液壓扳手的主要結(jié)構(gòu)由閥組件、反力臂組件、活塞組件、驅(qū)動架組件以及殼體組成。(1)閥組件:主要由公閥臂、母閥臂和閥座組成;(2)反力臂組件:主要由反力臂、反力臂鎖、反力臂手柄和反力臂彈簧組成;(3)活塞組件:主要由活塞和連桿組成;(4)驅(qū)動架組件:主要由驅(qū)動架、棘輪、棘爪、棘爪彈簧組成。
目前主要用到的建模方法有幾何建模和特征建模兩種。幾何建模技術(shù)雖然在一定程度上滿足了設(shè)計者的要求,但是它有其固有的缺陷,比如它只關(guān)心物體的形狀信息,而對于其他方面的信息,如精度、材料等卻無能為力[4-5]。于是,由實體建模技術(shù)的基礎(chǔ)上發(fā)展起來了特征建模技術(shù)。特征是一個綜合概念,它除了包括零件的幾何拓?fù)湫畔⑼猓€包括了設(shè)計和制造的其他信息,如形位公差、材料、表面粗糙度等。根據(jù)特征的定義,可以把特征分成以下幾類,如圖1所示。
圖1 特征的分類圖
以液壓扳手中的反力臂零件為例,其特征建模過程中的主要特征如圖2所示。圖中的反力臂特征主要表現(xiàn)為圖1所示的幾何特征,根據(jù)特征的分解原則,可將反力臂的幾何特征分解如圖2所示。
圖2 反力臂特征分解圖
特征Ⅰ為花鍵齒,表示反力臂與殼體的安裝配合特征。特征Ⅱ、Ⅲ、Ⅳ為反力臂的形狀特征,其中特征Ⅱ的設(shè)計形狀有減少材料等功能。特征Ⅴ用來安裝反力臂鎖手柄。特征Ⅵ為螺紋通孔,里面安裝反力臂鎖,用內(nèi)六角緊定螺釘裝配固定。
參數(shù)化方法的本質(zhì)思想包括尺寸驅(qū)動、變量驅(qū)動和合理性檢查[6-8]。NX軟件提供了強大的參數(shù)化建模方法,為零件設(shè)置參數(shù)尺寸,用戶只需修改尺寸參數(shù)即可對零件模型進行修改。以液壓扳手的核心零件棘輪為例,建模過程中對其尺寸參數(shù)的設(shè)置如圖3所示。
圖3 棘輪參數(shù)化尺寸設(shè)置
其中確定棘輪的主要尺寸為棘輪外徑R、棘輪寬度W2、內(nèi)花鍵齒頂圓直徑r3、內(nèi)花鍵齒根圓直徑r2、棘輪齒數(shù)n和內(nèi)花鍵齒數(shù)z,其余尺寸均由這些主要尺寸決定。這樣在設(shè)計棘輪的時候只需要改變這些主要參數(shù)來改變棘輪,對于整個裝配體來說,可以設(shè)置與棘輪主要參數(shù)相關(guān)的表達(dá)式,從而通過改變裝配表達(dá)式來改變棘輪尺寸。
以驅(qū)動架為例,在創(chuàng)建零部件之間的引用之前,需要對各個零件的尺寸進行命名。圖4中示例了將表達(dá)式“jilunshi_D”關(guān)聯(lián)到零件“jilun.prt”中的“jilun_D”表達(dá)式。關(guān)聯(lián)完成后就能夠通過在棘輪中修改表達(dá)式來間接修改驅(qū)動架的尺寸了。
圖4 創(chuàng)建表達(dá)式關(guān)聯(lián)示例
當(dāng)創(chuàng)建初始實例時,需要把實例裝配體的全部信息表示出來,才能對實例進行各種操作。在特征建模的基礎(chǔ)上,同時運用參數(shù)化來控制模型。根據(jù)上述分析,本文采用以特征建模和參數(shù)化建模相結(jié)合的方法,通過對特征參數(shù)的相互關(guān)聯(lián)實現(xiàn)液壓扳手的參數(shù)化建模。
圖5 液壓扳手結(jié)構(gòu)系統(tǒng)裝配圖
在系統(tǒng)的裝配圖中,殼體作為固定零件,這里取殼體上的七個基準(zhǔn)參數(shù)為裝配驅(qū)動參數(shù),分別為殼體長(L1)、殼體寬(H1)、花鍵軸長(H2)、殼體高(H3)、總高(H4)、驅(qū)動半徑(R1)、支撐半徑(R2),如圖5所示。
以驅(qū)動半徑的中心為基準(zhǔn),當(dāng)殼體高度方向的尺寸發(fā)生變化時,整個驅(qū)動架組件包括棘輪、棘爪等都將隨之發(fā)生變化。根據(jù)上述7個基準(zhǔn)結(jié)構(gòu)參數(shù)分別建立相應(yīng)的表達(dá)式,根據(jù)各個零部件之間的接口關(guān)系,從而建立結(jié)構(gòu)系統(tǒng)的驅(qū)動參數(shù)到各個模塊特征參數(shù)之間的映射關(guān)系,7個基準(zhǔn)驅(qū)動參數(shù)與模塊特征參數(shù)之間的映射關(guān)系如表1所示。
表1 結(jié)構(gòu)系統(tǒng)驅(qū)動參數(shù)與各模塊特征參數(shù)關(guān)系
本系統(tǒng)是在NX 8.0的基礎(chǔ)上,利用C++在VS2010平臺上進行二次開發(fā),使用UG/Open MenuScript工具制作用戶菜單。對于對話框的制作可以使用NX自身的UG/Open UIStyler工具。然后編寫對話框中的回調(diào)函數(shù),生成DLL動態(tài)鏈接庫文件并被NX調(diào)用實現(xiàn)其功能[9-12],如圖6所示。
圖6 NX二次開發(fā)流程圖
制作菜單和對話框之前首先需要創(chuàng)建工作目錄,目錄包含“startup”和“application”兩個子文件夾,然后將環(huán)境變量“UGII_USER_DIR”的值設(shè)為工作目錄[13]。
在startup文件夾中用記事本編寫菜單腳本文件startupmenu.men,其中ACTIONS后面為菜單要執(zhí)行的動作,內(nèi)容如下:
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
BEFORE UG_HELP
CASCADE_BUTTON CUSTOM_MENU
LABEL 液壓扳手
END_OF_BEFORE
MENU CUSTOM_MENU
BUTTON SUB_MENU
LABEL 液壓扳手快速設(shè)計
ACTIONS wrench.dlg
END_OF_MENU
打開NX中的UIStyler界面編輯模塊,編寫液壓扳手快速設(shè)計的對話框界面如圖7所示。將保存之后生成的文件放在application文件夾下。
圖7 對話框界面
在VS2010中根據(jù)NX8 Open向?qū)陆╒C++項目。更改上面保存的*.c文件為*.cpp文件并將其和*.h文件添加到工程,刪除向?qū)ё詣由傻?.cpp和*.h文件[14-15]。在WRENCH_ok_cb()回調(diào)函數(shù)內(nèi)添加代碼獲取對話框的值,并賦值給表達(dá)式,主要代碼如下:
//獲取對話框參數(shù)
char exps_string[7][20];
int i;
UF_STYLER_item_value_type_t data[7];
data[0].item_attr=UF_STYLER_VALUE;
data[0].item_id=WRENCH_REAL_L1;
UF_STYLER_ask_value(dialog_id,&data[0]);
data[1].item_attr=UF_STYLER_VALUE;
data[1].item_id=WRENCH_REAL_H1;
UF_STYLER_ask_value(dialog_id,&data[1]);
……
for(int j=0;j<7;j++)
{
if(data[j].value.real==0)
{
uc1601("對話框數(shù)值不能為零",1);
return(UF_UI_CB_CONTINUE_DIALOG);
}
}
//修改表達(dá)式的值
sprintf(exps_string[0],"L1=%f",data[0].value.real);
sprintf(exps_string[1],"H1=%f",data[1].value.real);
sprintf(exps_string[2],"H2=%f",data[2].value.real);
……
for(int j=0;j<7;j++)
{
UF_STYLER_free_value(&data[j]);
}
for(i=0;i<7;i++)
{
UF_MODL_edit_exp(exps_string[i]);
UF_MODL_update();
}
……
把生成的*.dll文件放在application文件夾下,在NX中首先創(chuàng)建模型模板文件,將其保存為只讀格式。打開NX進入建模環(huán)境,點擊菜單按鈕加載模板并彈出模型另存為對話框,輸入新模型保存的地址,然后輸入需要修改的尺寸,點擊OK按鈕即可生成用戶所需模型,如圖8所示。
圖8 系統(tǒng)運行結(jié)果
本文通過三維畫圖軟件NX對液壓扳手的具體結(jié)構(gòu)進行參數(shù)化建模與特征建模,建立了系統(tǒng)的驅(qū)動參數(shù)與模塊特征之間的映射關(guān)系。通過NX/Open提供的二次開發(fā)功能,實現(xiàn)液壓扳手結(jié)構(gòu)系統(tǒng)參數(shù)改變之后的快速設(shè)計。本文提出的方法適用于其他機械結(jié)構(gòu)產(chǎn)品,對于企業(yè)在液壓扳手設(shè)計效率的提高上具有一定的參考意義。
[1] 李富生,沈景鳳.基于VB.NET的余熱鍋爐蒸發(fā)器參數(shù)化設(shè)計系統(tǒng)[J].電子科技,2015,28(11):135-142.
[2] 劉奇,林崗.基于Visual Studio 2010的UG二次開發(fā)研究[J].計算機應(yīng)用,2015,34(1):41-46.
[3] 汪年結(jié),劉宇.基于UG二次開發(fā)的冰箱結(jié)構(gòu)系統(tǒng)快速設(shè)計[J].機械設(shè)計與制造工程,2013,42(11):6-9.
[4] 李劍,梅躍松.基于UG二次開發(fā)的導(dǎo)彈外形結(jié)構(gòu)參數(shù)化設(shè)計方法研究[D].北京:北京理工大學(xué),2015.
[5] 張樂林,祝錫晶.基于UG二次開發(fā)的參數(shù)化建模方法[J].計算機系統(tǒng)應(yīng)用,2016,25(1):146-149.
[6] 張云周,楊軍虎.基于UG的離心葉輪三維軟件二次開發(fā)[D].蘭州:蘭州理工大學(xué),2012.
[7] 王振,張秋翀,柳玉起,等.面向自動化設(shè)計的拉深筋參數(shù)化建模方法[J].鍛壓技術(shù),2016,41(10):37-42.
[8] 張強.基于法規(guī)和人機工程的整車總布置參數(shù)化建模方法與應(yīng)用研究[D].上海:上海交通大學(xué),2014.
[9] Xu Rongzheng.The research on secondary development of parametric system of cylindrical gear reducer based on Pro/E[J].Advances in Mechanical and Electronic Engineering,2012(176):85-90.
[10] 陶小剛,郝博.基于UG NX二次開發(fā)的自動裝配技術(shù)研究[J].先進制造技術(shù),2016,33(4):24-29.
[11] 陳誠,徐誠,羅少敏.基于NX的自動武器數(shù)控加工刀具庫二次開發(fā)[J].機械制造與自動化,2016,45(5):132-134.
[12] 李如忠.支持MFC的NX二次開發(fā)向?qū)а芯縖J].信息技術(shù),2014,35(6):14-19.
[13] 常娟,王成軍,劉德仿.基于NX自頂向下的后裝壓縮式垃圾車設(shè)計技術(shù)研究[D].合肥:安徽理工大學(xué),2015.
[14] 李明新,李斌.UG NX二次開發(fā)在產(chǎn)品圖樣標(biāo)準(zhǔn)化管理中的應(yīng)用[J].現(xiàn)代制造工程,2016,40(16):123-127.
[15] 王守鵬,郝萬軍.基于NX的夾具設(shè)計系統(tǒng)的研究與開發(fā)[D].長春:吉林大學(xué),2013.
Hydraulic Wrench Design System Based on NX Secondary Development
HUANG Lizhi1, YU Zhonghai2
(1.School of Mechanical Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China;2. School of Mechanical,Shanghai Dianji University,Shanghai 201306,China)
Based on the current design of the hydraulic wrench, most of the traditional design methods, start drawing drawings from scratch after the design task, design cycle is long, low efficiency.The structure of hydraulic wrench is designed rapidly and the design program is given by using the method of UG NX/Open.Firstly, using the parametric modeling method to design the main structural system of hydraulic wrench;Then, with Visual Studio 2010 as the development platform, use the UG NX/Open API method development programming interface, using VC++ programming language to achieve the dialog box and the specific functions of the design interface. Complete the whole system and achieve rapid design of hydraulic wrench structure.
hydraulic wrench;NX secondary development;UG NX/Open API;VC++ programming
2017- 03- 14
上海市自然科學(xué)基金(15ZR1417200);上海市教委科研創(chuàng)新重點項目(14ZZ169);上海市閔行區(qū)科委產(chǎn)學(xué)研項目(2014MH182)
黃立智(1991-),男,碩士研究生。研究方向:智能控制。于忠海(1958-),男,博士,教授。研究方向:數(shù)控技術(shù)、精密檢測與智能控制。
TP 333
A
1007-7820(2018)01-025-04