黃立智,于忠海
(1.上海理工大學(xué) 機(jī)械工程學(xué)院,上海 200093 ;2.上海電機(jī)學(xué)院 機(jī)械學(xué)院,上海 201306)
基于NX二次開發(fā)液壓扳手設(shè)計(jì)系統(tǒng)開發(fā)
黃立智1,于忠海2
(1.上海理工大學(xué) 機(jī)械工程學(xué)院,上海 200093 ;2.上海電機(jī)學(xué)院 機(jī)械學(xué)院,上海 201306)
目前對(duì)于液壓扳手的設(shè)計(jì)大多采用傳統(tǒng)的設(shè)計(jì)方法,拿到設(shè)計(jì)任務(wù)之后從零開始繪制圖紙,設(shè)計(jì)周期長(zhǎng)、效率低。文中提出利用NX二次開發(fā)的方法對(duì)液壓扳手結(jié)構(gòu)進(jìn)行快速設(shè)計(jì)并給出程序設(shè)計(jì)方案。將液壓扳手的主要結(jié)構(gòu)系統(tǒng)進(jìn)行參數(shù)化建模,再以Visual Studio 2010為開發(fā)平臺(tái),利用UG NX/OPEN API 提供的二次開發(fā)編程接口,運(yùn)用VC++編程語(yǔ)言實(shí)現(xiàn)對(duì)話框以及設(shè)計(jì)界面的具體功能。完成整個(gè)系統(tǒng)的構(gòu)建,實(shí)現(xiàn)液壓扳手結(jié)構(gòu)的快速設(shè)計(jì)。
液壓扳手;NX二次開發(fā);UG NX/OPEN API;VC++編程
液壓扳手能夠準(zhǔn)確、可靠地控制預(yù)緊力,提高螺栓連接的剛度以及可靠性。但是,通過(guò)對(duì)企業(yè)的調(diào)查發(fā)現(xiàn),目前的液壓扳手建模大多是傳統(tǒng)的建模方法,效率非常低。
NX是CAD、CAM和CAE一體化的軟件系統(tǒng),能夠解決企業(yè)的大部分設(shè)計(jì)需求,但是很多專業(yè)性、更為具體的問(wèn)題單靠軟件本身很難實(shí)現(xiàn)。通過(guò)NX本身提供的二次開發(fā)工具對(duì)NX進(jìn)行二次開發(fā),可以實(shí)現(xiàn)企業(yè)的一些特殊需求[1-3]。本文利用 NX/OPEN二次開發(fā)工具結(jié)合VC++編程語(yǔ)言對(duì)NX 8.0軟件進(jìn)行二次開發(fā),實(shí)現(xiàn)液壓扳手的快速設(shè)計(jì)。
液壓扳手的主要結(jié)構(gòu)由閥組件、反力臂組件、活塞組件、驅(qū)動(dòng)架組件以及殼體組成。(1)閥組件:主要由公閥臂、母閥臂和閥座組成;(2)反力臂組件:主要由反力臂、反力臂鎖、反力臂手柄和反力臂彈簧組成;(3)活塞組件:主要由活塞和連桿組成;(4)驅(qū)動(dòng)架組件:主要由驅(qū)動(dòng)架、棘輪、棘爪、棘爪彈簧組成。
目前主要用到的建模方法有幾何建模和特征建模兩種。幾何建模技術(shù)雖然在一定程度上滿足了設(shè)計(jì)者的要求,但是它有其固有的缺陷,比如它只關(guān)心物體的形狀信息,而對(duì)于其他方面的信息,如精度、材料等卻無(wú)能為力[4-5]。于是,由實(shí)體建模技術(shù)的基礎(chǔ)上發(fā)展起來(lái)了特征建模技術(shù)。特征是一個(gè)綜合概念,它除了包括零件的幾何拓?fù)湫畔⑼?,還包括了設(shè)計(jì)和制造的其他信息,如形位公差、材料、表面粗糙度等。根據(jù)特征的定義,可以把特征分成以下幾類,如圖1所示。
圖1 特征的分類圖
以液壓扳手中的反力臂零件為例,其特征建模過(guò)程中的主要特征如圖2所示。圖中的反力臂特征主要表現(xiàn)為圖1所示的幾何特征,根據(jù)特征的分解原則,可將反力臂的幾何特征分解如圖2所示。
圖2 反力臂特征分解圖
特征Ⅰ為花鍵齒,表示反力臂與殼體的安裝配合特征。特征Ⅱ、Ⅲ、Ⅳ為反力臂的形狀特征,其中特征Ⅱ的設(shè)計(jì)形狀有減少材料等功能。特征Ⅴ用來(lái)安裝反力臂鎖手柄。特征Ⅵ為螺紋通孔,里面安裝反力臂鎖,用內(nèi)六角緊定螺釘裝配固定。
參數(shù)化方法的本質(zhì)思想包括尺寸驅(qū)動(dòng)、變量驅(qū)動(dòng)和合理性檢查[6-8]。NX軟件提供了強(qiáng)大的參數(shù)化建模方法,為零件設(shè)置參數(shù)尺寸,用戶只需修改尺寸參數(shù)即可對(duì)零件模型進(jìn)行修改。以液壓扳手的核心零件棘輪為例,建模過(guò)程中對(duì)其尺寸參數(shù)的設(shè)置如圖3所示。
圖3 棘輪參數(shù)化尺寸設(shè)置
其中確定棘輪的主要尺寸為棘輪外徑R、棘輪寬度W2、內(nèi)花鍵齒頂圓直徑r3、內(nèi)花鍵齒根圓直徑r2、棘輪齒數(shù)n和內(nèi)花鍵齒數(shù)z,其余尺寸均由這些主要尺寸決定。這樣在設(shè)計(jì)棘輪的時(shí)候只需要改變這些主要參數(shù)來(lái)改變棘輪,對(duì)于整個(gè)裝配體來(lái)說(shuō),可以設(shè)置與棘輪主要參數(shù)相關(guān)的表達(dá)式,從而通過(guò)改變裝配表達(dá)式來(lái)改變棘輪尺寸。
以驅(qū)動(dòng)架為例,在創(chuàng)建零部件之間的引用之前,需要對(duì)各個(gè)零件的尺寸進(jìn)行命名。圖4中示例了將表達(dá)式“jilunshi_D”關(guān)聯(lián)到零件“jilun.prt”中的“jilun_D”表達(dá)式。關(guān)聯(lián)完成后就能夠通過(guò)在棘輪中修改表達(dá)式來(lái)間接修改驅(qū)動(dòng)架的尺寸了。
圖4 創(chuàng)建表達(dá)式關(guān)聯(lián)示例
當(dāng)創(chuàng)建初始實(shí)例時(shí),需要把實(shí)例裝配體的全部信息表示出來(lái),才能對(duì)實(shí)例進(jìn)行各種操作。在特征建模的基礎(chǔ)上,同時(shí)運(yùn)用參數(shù)化來(lái)控制模型。根據(jù)上述分析,本文采用以特征建模和參數(shù)化建模相結(jié)合的方法,通過(guò)對(duì)特征參數(shù)的相互關(guān)聯(lián)實(shí)現(xiàn)液壓扳手的參數(shù)化建模。
圖5 液壓扳手結(jié)構(gòu)系統(tǒng)裝配圖
在系統(tǒng)的裝配圖中,殼體作為固定零件,這里取殼體上的七個(gè)基準(zhǔn)參數(shù)為裝配驅(qū)動(dòng)參數(shù),分別為殼體長(zhǎng)(L1)、殼體寬(H1)、花鍵軸長(zhǎng)(H2)、殼體高(H3)、總高(H4)、驅(qū)動(dòng)半徑(R1)、支撐半徑(R2),如圖5所示。
以驅(qū)動(dòng)半徑的中心為基準(zhǔn),當(dāng)殼體高度方向的尺寸發(fā)生變化時(shí),整個(gè)驅(qū)動(dòng)架組件包括棘輪、棘爪等都將隨之發(fā)生變化。根據(jù)上述7個(gè)基準(zhǔn)結(jié)構(gòu)參數(shù)分別建立相應(yīng)的表達(dá)式,根據(jù)各個(gè)零部件之間的接口關(guān)系,從而建立結(jié)構(gòu)系統(tǒng)的驅(qū)動(dòng)參數(shù)到各個(gè)模塊特征參數(shù)之間的映射關(guān)系,7個(gè)基準(zhǔn)驅(qū)動(dòng)參數(shù)與模塊特征參數(shù)之間的映射關(guān)系如表1所示。
表1 結(jié)構(gòu)系統(tǒng)驅(qū)動(dòng)參數(shù)與各模塊特征參數(shù)關(guān)系
本系統(tǒng)是在NX 8.0的基礎(chǔ)上,利用C++在VS2010平臺(tái)上進(jìn)行二次開發(fā),使用UG/Open MenuScript工具制作用戶菜單。對(duì)于對(duì)話框的制作可以使用NX自身的UG/Open UIStyler工具。然后編寫對(duì)話框中的回調(diào)函數(shù),生成DLL動(dòng)態(tài)鏈接庫(kù)文件并被NX調(diào)用實(shí)現(xiàn)其功能[9-12],如圖6所示。
圖6 NX二次開發(fā)流程圖
制作菜單和對(duì)話框之前首先需要?jiǎng)?chuàng)建工作目錄,目錄包含“startup”和“application”兩個(gè)子文件夾,然后將環(huán)境變量“UGII_USER_DIR”的值設(shè)為工作目錄[13]。
在startup文件夾中用記事本編寫菜單腳本文件startupmenu.men,其中ACTIONS后面為菜單要執(zhí)行的動(dòng)作,內(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è)計(jì)
ACTIONS wrench.dlg
END_OF_MENU
打開NX中的UIStyler界面編輯模塊,編寫液壓扳手快速設(shè)計(jì)的對(duì)話框界面如圖7所示。將保存之后生成的文件放在application文件夾下。
圖7 對(duì)話框界面
在VS2010中根據(jù)NX8 Open向?qū)陆╒C++項(xiàng)目。更改上面保存的*.c文件為*.cpp文件并將其和*.h文件添加到工程,刪除向?qū)ё詣?dòng)生成的*.cpp和*.h文件[14-15]。在WRENCH_ok_cb()回調(diào)函數(shù)內(nèi)添加代碼獲取對(duì)話框的值,并賦值給表達(dá)式,主要代碼如下:
//獲取對(duì)話框參數(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("對(duì)話框數(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進(jìn)入建模環(huán)境,點(diǎn)擊菜單按鈕加載模板并彈出模型另存為對(duì)話框,輸入新模型保存的地址,然后輸入需要修改的尺寸,點(diǎn)擊OK按鈕即可生成用戶所需模型,如圖8所示。
圖8 系統(tǒng)運(yùn)行結(jié)果
本文通過(guò)三維畫圖軟件NX對(duì)液壓扳手的具體結(jié)構(gòu)進(jìn)行參數(shù)化建模與特征建模,建立了系統(tǒng)的驅(qū)動(dòng)參數(shù)與模塊特征之間的映射關(guān)系。通過(guò)NX/Open提供的二次開發(fā)功能,實(shí)現(xiàn)液壓扳手結(jié)構(gòu)系統(tǒng)參數(shù)改變之后的快速設(shè)計(jì)。本文提出的方法適用于其他機(jī)械結(jié)構(gòu)產(chǎn)品,對(duì)于企業(yè)在液壓扳手設(shè)計(jì)效率的提高上具有一定的參考意義。
[1] 李富生,沈景鳳.基于VB.NET的余熱鍋爐蒸發(fā)器參數(shù)化設(shè)計(jì)系統(tǒng)[J].電子科技,2015,28(11):135-142.
[2] 劉奇,林崗.基于Visual Studio 2010的UG二次開發(fā)研究[J].計(jì)算機(jī)應(yīng)用,2015,34(1):41-46.
[3] 汪年結(jié),劉宇.基于UG二次開發(fā)的冰箱結(jié)構(gòu)系統(tǒng)快速設(shè)計(jì)[J].機(jī)械設(shè)計(jì)與制造工程,2013,42(11):6-9.
[4] 李劍,梅躍松.基于UG二次開發(fā)的導(dǎo)彈外形結(jié)構(gòu)參數(shù)化設(shè)計(jì)方法研究[D].北京:北京理工大學(xué),2015.
[5] 張樂(lè)林,祝錫晶.基于UG二次開發(fā)的參數(shù)化建模方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2016,25(1):146-149.
[6] 張?jiān)浦?楊軍虎.基于UG的離心葉輪三維軟件二次開發(fā)[D].蘭州:蘭州理工大學(xué),2012.
[7] 王振,張秋翀,柳玉起,等.面向自動(dòng)化設(shè)計(jì)的拉深筋參數(shù)化建模方法[J].鍛壓技術(shù),2016,41(10):37-42.
[8] 張強(qiáng).基于法規(guī)和人機(jī)工程的整車總布置參數(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ā)的自動(dòng)裝配技術(shù)研究[J].先進(jìn)制造技術(shù),2016,33(4):24-29.
[11] 陳誠(chéng),徐誠(chéng),羅少敏.基于NX的自動(dòng)武器數(shù)控加工刀具庫(kù)二次開發(fā)[J].機(jī)械制造與自動(dòng)化,2016,45(5):132-134.
[12] 李如忠.支持MFC的NX二次開發(fā)向?qū)а芯縖J].信息技術(shù),2014,35(6):14-19.
[13] 常娟,王成軍,劉德仿.基于NX自頂向下的后裝壓縮式垃圾車設(shè)計(jì)技術(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] 王守鵬,郝萬(wàn)軍.基于NX的夾具設(shè)計(jì)系統(tǒng)的研究與開發(fā)[D].長(zhǎng)春:吉林大學(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)新重點(diǎn)項(xiàng)目(14ZZ169);上海市閔行區(qū)科委產(chǎn)學(xué)研項(xiàng)目(2014MH182)
黃立智(1991-),男,碩士研究生。研究方向:智能控制。于忠海(1958-),男,博士,教授。研究方向:數(shù)控技術(shù)、精密檢測(cè)與智能控制。
TP 333
A
1007-7820(2018)01-025-04