0 引言
參數(shù)化設(shè)計(jì)是通過(guò)改動(dòng)圖形的某一部分或某幾部分的尺寸,或修改已定義好的零件參數(shù),自動(dòng)完成對(duì)圖形中相關(guān)部分的改動(dòng),從而實(shí)現(xiàn)對(duì)圖形的驅(qū)動(dòng)。本文針對(duì)某起熏機(jī)典型系列產(chǎn)品的主梁進(jìn)行二次開發(fā),在NX環(huán)境下運(yùn)用Visual C++程序語(yǔ)言對(duì)主梁進(jìn)行了二次開發(fā),開發(fā)出了多功能機(jī)組主梁的三維參數(shù)化模型,經(jīng)過(guò)驗(yàn)證說(shuō)明所開發(fā)的主梁參數(shù)化建模系統(tǒng)能對(duì)主梁的主要尺寸參數(shù)進(jìn)行參數(shù)化驅(qū)動(dòng),實(shí)現(xiàn)了主梁的參數(shù)化開發(fā)。
1 起重機(jī)主梁的參數(shù)化設(shè)計(jì)系統(tǒng)開發(fā)
1.1 建立主梁裝配體樣板
分析起重機(jī)主梁的結(jié)構(gòu)特點(diǎn),對(duì)主梁裝配體的參數(shù)化設(shè)計(jì)采用自頂向下的方法。在參數(shù)化前,首先要分清主梁尺寸中的一級(jí)驅(qū)動(dòng)參數(shù)、次級(jí)驅(qū)動(dòng)參數(shù)及不對(duì)其他部件產(chǎn)生影響的無(wú)關(guān)參數(shù)等級(jí)別,通過(guò)修改一個(gè)尺寸來(lái)刷新整個(gè)模型的目的。對(duì)所有的零件和子部件的定位方式采用3個(gè)基準(zhǔn)面和結(jié)構(gòu)控制草圖中的草圖線段,避免在零件裝配過(guò)程中出現(xiàn)整個(gè)裝配體的混亂,如某些零部件的缺失、更換、重疊等。如果某些零部件的一些幾何特征參數(shù)難以在裝配圖中進(jìn)行表達(dá),那么可以通過(guò)建立與裝配體模型當(dāng)中的變量關(guān)聯(lián)的函數(shù)表達(dá)式或是建立父子關(guān)系的方法進(jìn)行解決。主梁參數(shù)化NX三維裝配體模型如圖1所示。
圖1 主梁參數(shù)化裝配體模型
1.2 設(shè)計(jì)主梁參數(shù)化建模系統(tǒng)
使用Visual C++和NX/Open API編寫應(yīng)用程序建立主梁參數(shù)化建模系統(tǒng),主梁參數(shù)化建模系統(tǒng)在NX環(huán)境下生成用戶自定義菜單(見圖2),通過(guò)選取菜單項(xiàng)當(dāng)中的“主梁1”選項(xiàng)彈出用戶交互對(duì)話框(見圖3),在對(duì)話框中有若干個(gè)有關(guān)主梁幾何參數(shù)的輸入項(xiàng),可以直接設(shè)定主梁參數(shù)化過(guò)程中所需要的關(guān)鍵結(jié)構(gòu)參數(shù),按“確定”或者“應(yīng)用”按鈕,程序自動(dòng)將主梁的關(guān)鍵參數(shù)設(shè)定為輸入值,從而生成所需要的主梁模型。
圖2 用戶自定義菜單界面
圖3 用戶交互式對(duì)話框
此系統(tǒng)的設(shè)計(jì)是利用NX/NX所提供的二次開發(fā)語(yǔ)言模塊NX/Open API,NX/Open UI Styler,NX/Open Menu Script,再結(jié)合Visual C++,實(shí)現(xiàn)了主梁參數(shù)化模型的二次開發(fā)。
(1)創(chuàng)建應(yīng)用程序部署目錄結(jié)構(gòu)
創(chuàng)建工作目錄為“E:\zhuliangl”,在其中分別創(chuàng)建2個(gè)子目錄“E:\zhuliangl\startup”和“E:\zhuliangl\application”。其中“startup”目錄中用來(lái)存放菜單文件(*.men)和動(dòng)態(tài)庫(kù)文件(*dll),“application”目錄中存放對(duì)話框文件(*.dlg)。
(2)編寫菜單文件
在Window操作系統(tǒng)的記事本當(dāng)中編輯寫入創(chuàng)建菜單文件的應(yīng)用程序,其作用是生成如圖2所示菜單界面,并保存在工作目錄的“E:\zhuliangl\start-up”下,文件名取為pro_design.men。
(3)設(shè)置系統(tǒng)環(huán)境變量
右鍵單擊“我的電腦”,單擊[屬性]→[高級(jí)]→[環(huán)境變量],在系統(tǒng)變量下設(shè)置“NXII_USER_DIR”為“E:\zhuliangl”,單擊“確定”按鈕。
(4)制作用戶界面對(duì)話框
打開NX,進(jìn)入到UIStyler模式(主菜單application下的用戶界面樣式編輯器),對(duì)用戶交互式對(duì)話框界面進(jìn)行設(shè)計(jì),對(duì)話框本身屬性當(dāng)中所要設(shè)置的參數(shù)如圖4(a)所示,對(duì)話框回叫函數(shù)當(dāng)中所要設(shè)置的參數(shù)如圖4(b)所示。
圖4 對(duì)話框?qū)傩约捌浠亟泻瘮?shù)
對(duì)話框設(shè)計(jì)完成后,其結(jié)果保存為用戶對(duì)話框文件ZHULIANG1.dlg,并保存至剛建立好的application文件夾當(dāng)中。同時(shí)系統(tǒng)提示用戶保存了3個(gè)文件,然后退出NX/Open UIStyler模式。
(5)編寫相應(yīng)的控制程序
①創(chuàng)建應(yīng)用程序框架 啟動(dòng)VC++,單擊[File]-[New…],創(chuàng)建一個(gè)新的工程。因?yàn)樾枰⒁粋(gè)內(nèi)部UF程序,所以選擇”Win32 Dynamic-Link Library”。為工程起一個(gè)名字“canshuhua”,如圖5所示,單擊[OK]按鈕,選擇[A simple DLL project],然后單擊“完成”按鈕,單擊“確定”按鈕,自動(dòng)在制定目錄下創(chuàng)建canshuhua.c和canshuhua.h應(yīng)用程序框架。同時(shí)將創(chuàng)建對(duì)話框文件ZHULIANGl.dlg時(shí)生成的ZHULIANG1.h和ZHULIANGl_template.c復(fù)制到其目錄下;
圖5 創(chuàng)建工程
②修改主程序 添加ufsta入口函數(shù),在NX啟動(dòng)的時(shí)候就自動(dòng)執(zhí)行用戶定義的dll程序。該函數(shù)用于判別用戶在NX中打開的模型是否為指定模型,若不是指定模型則顯示“當(dāng)前顯示模型不是主梁部件,不能進(jìn)行參數(shù)化設(shè)計(jì)”。如果打開的模型是指定模型,則裝載對(duì)話框文件ZHULIANG1.dlg,并彈出用戶對(duì)話框圖3;
③進(jìn)一步編寫對(duì)話框控鍘程序 打開程序ZHULIANGl_template.c,對(duì)回叫函數(shù)中調(diào)用對(duì)話框命令進(jìn)行相應(yīng)的修改編輯;
④編寫獲取主梁相關(guān)參數(shù)表達(dá)式值的程序 編輯程序ZHULIANGl_template.c,按要求修改獲取主梁相關(guān)參數(shù)表達(dá)式構(gòu)造函數(shù)值;
⑤編寫用戶對(duì)話框“應(yīng)用”按鈕回叫函數(shù) 用戶對(duì)話框“應(yīng)用”按鈕回叫函數(shù),用于獲取用戶在對(duì)話框中輸入的參數(shù),修改表達(dá)式,更新主梁。
用戶對(duì)話框中的“確定”按鈕函數(shù),除了在函數(shù)尾部增加UF_MODL_update()函數(shù)外,與“應(yīng)用”按鈕回叫函數(shù)代碼基本相似。
(6)構(gòu)建主梁參數(shù)化模型系統(tǒng)
①設(shè)置VC++環(huán)境 添加鏈接庫(kù),這些庫(kù)是調(diào)用UF函數(shù)的代碼在鏈接時(shí)必須的。單擊【Project】→【Setting】→【Link】,在Output file name文本框中填入最終編譯鏈接成的DLL文件名,在Object/Library modules文本框中,加入需要的庫(kù)名。對(duì)于NX Open程序,添加庫(kù)名:libufun.lib、libNXopenint.lib、libvmathpp.lib,如圖6所示。
圖6 鏈接庫(kù)的添加
②加入工程選擇“工程|設(shè)置|File”菜單項(xiàng),依次加入文件ZHULIANGl.h和ZHULIANGl_template.c。
③設(shè)定編譯和鏈接時(shí)頭文件和庫(kù)文件的查找目錄在菜單上單擊【Tools】→【Options】→【Directories】,在Options對(duì)話框中分別為包含文(Includefiles)和庫(kù)文件(Library filds)設(shè)置查找目錄,都設(shè)置為NX的安裝路徑,如圖7所示。
圖7 目錄設(shè)置
④創(chuàng)建DLL文件編譯和鏈接此工程,若沒有錯(cuò)誤,則系統(tǒng)會(huì)提示生成了動(dòng)態(tài)鏈接庫(kù)文件“canshuhua.dll”。然后,把此文件存放在startup文件下。
(7)主梁參數(shù)化建模系統(tǒng)驗(yàn)證
編譯程序后,啟動(dòng)NX4.0程序,可發(fā)現(xiàn)在菜單欄當(dāng)中多了本文所開發(fā)的按鈕“PTM27-28多功能起重機(jī)主梁參數(shù)化設(shè)計(jì)”,選擇此菜單項(xiàng),出現(xiàn)“主梁1”下拉子菜單,選擇“主梁1”則可彈出如圖3所示的用戶對(duì)話框,在對(duì)話框中按用戶設(shè)計(jì)要求輸入?yún)?shù),單擊“確定”按鈕后,系統(tǒng)便根據(jù)用戶輸入的參數(shù)生成更新了的主梁模型,從而驗(yàn)證本文所建立的主梁參數(shù)化建模系統(tǒng)的有效性。
2 結(jié)語(yǔ)
本文以三維設(shè)計(jì)軟件NX為工作平臺(tái),以VC++6.0為開發(fā)語(yǔ)言,完成了主梁參數(shù)化設(shè)計(jì)系統(tǒng)的開發(fā)。該系統(tǒng)具有人機(jī)界面友好,使用方便等特點(diǎn),對(duì)提高設(shè)計(jì)人員的設(shè)計(jì)效率及加強(qiáng)企業(yè)的競(jìng)爭(zhēng)力具有很強(qiáng)的現(xiàn)實(shí)意義。另外對(duì)設(shè)計(jì)標(biāo)準(zhǔn)化、系列化程度較高的產(chǎn)品也有著廣泛的應(yīng)用價(jià)值。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://m.nttd-wave.com.cn/
本文標(biāo)題:基于NX的二次開發(fā)技術(shù)實(shí)現(xiàn)起重機(jī)主梁的參數(shù)化設(shè)計(jì)
本文網(wǎng)址:http://m.nttd-wave.com.cn/html/solutions/14019318415.html