王一成,張樹仁
(長春理工大學(xué) 機(jī)電工程學(xué)院,長春 130022)
UG二次開發(fā)中數(shù)據(jù)庫的建立方法
王一成,張樹仁
(長春理工大學(xué) 機(jī)電工程學(xué)院,長春 130022)
目前組合夾具主要采用傳統(tǒng)的實(shí)物試裝模式,為了提高組合夾具設(shè)計(jì)和裝配的效率和質(zhì)量,從實(shí)用性和易用性的角度出發(fā),文章以UG為平臺(tái),在UG中添加自定義菜單,建立UG風(fēng)格的對(duì)話框。用UG提供的二次開發(fā)工具包UG/Open和VC++的MFC AppWizard建立工程,設(shè)置UG/Open API編程的VC工程環(huán)境,在VC++中編寫DLL格式的連接程序,建立UG與VC之間的連接,創(chuàng)建數(shù)據(jù)庫。
UG二次開發(fā);VC工程環(huán)境;自定義菜單;數(shù)據(jù)庫
很多企業(yè)單位在引入CAD/CAE/CAM軟件以后,會(huì)發(fā)現(xiàn)通用的CAD/CAE/CAM軟件的功能雖然可以解決大部分的實(shí)際需求,在一定的程度上提高了產(chǎn)品的設(shè)計(jì)、制造以及管理的效率,但在很多專業(yè)的、更為具體的問題上,由于沒有充分挖掘軟件平臺(tái)的潛力,以至于軟件應(yīng)用水平不高,單靠操作CAD/CAE/CAM軟件很難實(shí)現(xiàn)復(fù)雜的功能,這就需要對(duì)軟件進(jìn)行進(jìn)一步的開發(fā)。UG是集成化CAD/CAE/CAM軟件,廣泛用于航空、航天、汽車、通用機(jī)械及模具等領(lǐng)域。它提供了參數(shù)化、特征化的概念設(shè)計(jì)和可獨(dú)立運(yùn)行的面向?qū)ο蟮募晒芾頂?shù)據(jù)庫系統(tǒng),使CAD/CAE/CAM各部分的數(shù)據(jù)能夠進(jìn)行自由切換,具有良好的二次開發(fā)接口和工具。此外,UG軟件還具有良好的開放性,為用戶和開發(fā)商提供了良好的二次開發(fā)環(huán)境,用戶可以通過對(duì)UG軟件進(jìn)行開發(fā),設(shè)計(jì)出自己需要的專用模塊,滿足設(shè)計(jì)的特殊要求。
UG二次開發(fā)工具包括UG/Open MenuScript界面菜單編輯語言、UG/Open UIStyler用戶界面制作工具、UG/Open GRIP是UG提供的專用的用戶圖形交互語言和UG/Open API C編程接口。在設(shè)計(jì)過程中將上述四種方法有效地結(jié)合起來,會(huì)達(dá)到很好的二次開發(fā)效果。
Visual C++是微軟公司推出的開發(fā)Win32應(yīng)用程序(Windows95/98/2000/XP)的、面向?qū)ο蟮目梢暬晒ぞ摺K畲髢?yōu)點(diǎn)就在于提供了功能強(qiáng)大的MFC類庫,MFC是一個(gè)很大的C一類層次結(jié)構(gòu),它里面封裝了大量的類和函數(shù),很多Windows程序所共有的標(biāo)準(zhǔn)內(nèi)容都可以由MFC的類來提供,MFC類為這些內(nèi)容提供了用戶接口標(biāo)準(zhǔn)實(shí)現(xiàn)的方法,技術(shù)人員所要做的就是通過預(yù)定義的接口把具體應(yīng)用程序特有的東西填入到這個(gè)輪廓中,這將簡化編程工作,大大的減少程序員編寫的代碼數(shù)量,使編程工作變得更加輕松和容易。此外,VC一還具有很多優(yōu)點(diǎn),比如最快的集成數(shù)控庫訪問,允許用戶建立強(qiáng)有力的數(shù)據(jù)庫應(yīng)用程序,具有強(qiáng)有力的網(wǎng)絡(luò)支持功能等。
利用VC對(duì)UG進(jìn)行二次開發(fā)的基本流程圖如圖1所示:
下面以一個(gè)基本的支撐塊元件平面支釘為例,說明利用VC對(duì)UG進(jìn)行二次開發(fā)的基本過程。
圖1 系統(tǒng)流程圖
(1)在UG中建立該支撐塊的三維模型,名稱為zhiding,設(shè)置為只讀屬性,防止對(duì)圖形模版的修改,存放在D:pingmianzhidingpart目錄下。模型如圖2所示。
平面支釘?shù)膸讉€(gè)主要參數(shù):
平面支釘帽的內(nèi)切圓直徑D
平面支釘帽的厚度H
平面支釘螺紋外徑M
平面支釘螺紋長度L
在UG4.0中,螺紋是可以自動(dòng)生成的,但是在建立數(shù)據(jù)庫時(shí)必須注意螺紋中參數(shù)的調(diào)用。螺紋的要素有:牙型、大徑、旋向、線數(shù)、螺距和導(dǎo)程。根據(jù)螺紋的牙型尺寸分析,在三維設(shè)計(jì)環(huán)境下,螺紋的詳細(xì)顯示取決于實(shí)體建模的結(jié)構(gòu)尺寸,與通常建模過程不同的是螺紋詳細(xì)牙型的生成是系統(tǒng)按照給定的公式自動(dòng)完成的,因此公式的合理性是詳細(xì)螺紋顯示的前提,而且,公式的邏輯及建模設(shè)計(jì)必須滿足系統(tǒng)的識(shí)別和運(yùn)行條件。
普通螺紋的基本牙型中的參數(shù),內(nèi)螺紋大徑;外螺紋大徑;內(nèi)螺紋中徑;外螺紋中徑;內(nèi)螺紋的小徑;外螺紋的小徑;螺紋螺距;原始三角形高度。以外螺紋為例,必須要定義螺紋的小徑,公式如下:
螺紋小徑=M-5×sqrt(3)/8×P 式中P為螺距。
說明:在本例中,默認(rèn)螺紋的螺距為1.75。
圖2 模型圖
(2)在自定義的目錄下創(chuàng)建startup和application兩個(gè)文件夾。
(3)在“我的電腦”上單擊鼠標(biāo)右鍵,在彈出的菜單上選擇【屬性】命令,在彈出的對(duì)話框中切換到“高級(jí)”選項(xiàng)卡,在該選項(xiàng)卡中單擊【環(huán)境變量】按鈕,注冊(cè)環(huán)境變量,其中的變量名為UGII_USER_DIR,變量值為自定義目錄。如圖3所示。
圖3 用戶變量對(duì)話框
(4)在startup文件夾下建立菜單文件。在UG中創(chuàng)建一個(gè)用戶菜單,需要按照UG編程語言規(guī)則對(duì)菜單欄進(jìn)行編寫,新建一個(gè)記事本文件,并命名為 pingmianzhiding.txt,將以下的程序輸入到記事本種保存,并將文件后綴名改為“.men”,將該文件保存到startup中。
VERSION 170
//菜單腳本文件的版本信息//
EDIT UG_GATEWAY_MAIN_MENUBAR
//編輯UG系統(tǒng)菜單文件//
BEFORE UG_HELP
//定義的內(nèi)容將位于“幫助”菜單之前//
CASCADE_BUTTONzhiding
//定義CASCADE按鈕,點(diǎn)擊這種按鈕將彈出下拉菜單//
LABEL其它件
//CASCADE按鈕的標(biāo)題//
END_OF_BEFORE
//結(jié)束BEFORE定義,與BEFORE UG_HELP相對(duì)應(yīng)//
MENUzhiding
BUTTON zhiding_1
LABEL支撐塊
ACTIONSzhiding_dialog.dlg
END_OF_MENU
//結(jié)束菜單的定義//
(5)啟動(dòng)UG,制作UG/Open UIStyler風(fēng)格的自定義對(duì)話框,并在表達(dá)式中定義需要實(shí)現(xiàn)參數(shù)化的幾個(gè)參數(shù)。創(chuàng)建對(duì)話框的主要目的是使用戶與計(jì)算機(jī)能夠?qū)崿F(xiàn)交互,在參數(shù)輸入后能夠得到令用戶滿意的三維實(shí)體模型。對(duì)話框如圖4所示。
(6)編寫開發(fā)程序工程設(shè)置。啟動(dòng)VC++,在文件菜單中點(diǎn)擊“New”按鈕,在彈出的對(duì)話框中選擇Project name,在工程名稱欄中輸入“zhiding”,在位置欄中輸入“D:pingmianzhidingzhiding”。
單擊確定按鈕后選擇菜單命令Project->Setting,確保左上角 Setting For下拉列表框的值設(shè)為 Win32 Debug。然后選擇Link選項(xiàng)卡,在Output file name中輸入DLL文件的輸出路徑和文件名,每次編譯后,系統(tǒng)會(huì)自動(dòng)將生成的DLL文件放置于指定路徑中。在Object/library modules文本框中輸入U(xiǎn)G庫文件libufun.lib和libugopenint.lib。需要注意的是必須將DLL文件輸出到Startup文件夾中。然后選擇 Debug選項(xiàng)卡,在Execuable for debug session文本框中輸入目標(biāo)硬盤上UG可執(zhí)行文件ugraf.exe的全路徑。如圖5所示。
圖4 用戶對(duì)話框
圖5 VC界面工程設(shè)置對(duì)話框
配置路徑選項(xiàng)。在Tools的Options中選擇Directoris選項(xiàng)卡,在Options對(duì)話框中分別為庫文件(Library files)和包含文件(Include files)中設(shè)置查找目錄,添加UG根目錄UGOPEN文件夾的路徑“[UGII_BASE_DIR]UGOPEN”。
工程創(chuàng)建完成后,需要手動(dòng)對(duì)其進(jìn)行設(shè)置。將對(duì)話框文件zhiding_dialog_template.c改為zhiding_dialog_template.cpp,然后把zhiding_dialog_template.cpp和 zhiding_dialog.h兩個(gè)文件移動(dòng)至zhiding目錄下。從工程的工作空間中刪除zhiding.cpp和zhiding.h,引入zhiding_dialog.h和zhiding_dialog_template.cpp至工程的工作空間。
(7)打開UG,選擇菜單,在彈出的對(duì)話框中,輸入?yún)?shù)對(duì)模型進(jìn)行參數(shù)化建模。下圖為輸入不同的參數(shù)產(chǎn)生的效果圖,如圖6所示。
圖6 參數(shù)模型
本文探討了在三維繪圖軟件UG進(jìn)行二次開發(fā)實(shí)現(xiàn)建立數(shù)據(jù)庫的方法。設(shè)計(jì)實(shí)例表明,采用VC++編程語言和UG/Open API相結(jié)合的方法在UG中添加數(shù)據(jù)庫,能滿足用戶二次開發(fā)CAD系統(tǒng)的需要,對(duì)于開發(fā)方便、高效、功能強(qiáng)大的三維CAD系統(tǒng)是一種有效嘗試,為企業(yè)數(shù)據(jù)信息集成及管理打下良好的基礎(chǔ),利用了關(guān)系數(shù)據(jù)庫強(qiáng)大功能,訪問靈活的特點(diǎn),可以大大縮短集成系統(tǒng)的開發(fā),同時(shí)也使得UG軟件本身具有更廣泛的應(yīng)用前景。
[1] 黃勇,張博林,薛運(yùn)鋒.UG二次開發(fā)與數(shù)據(jù)庫應(yīng)用技術(shù)與典型范例[M].電子工業(yè)出版社,2008.
[2] 張俊華,姜好德.UG二次開發(fā)技術(shù)在企業(yè)標(biāo)準(zhǔn)件數(shù)據(jù)庫建立中的應(yīng)用[J].煙臺(tái)大學(xué)學(xué)報(bào)(自然科學(xué)與工程版),2004,17(2):146-151.
[3] 趙韓,朱可,張炳力,張冰戰(zhàn).基于UG的螺紋連接件參數(shù)化設(shè)計(jì)研究[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,29(8):929-932.
[4] 劉玉堂,王耕耘,李志剛.面向裝配設(shè)計(jì)的標(biāo)準(zhǔn)件庫的研究與開發(fā)[J].液壓裝備與制造技術(shù),2003(6):70-72.
[5] 饒金通,董槐林,姜青山.基于特征的參數(shù)化高效建模技術(shù)[J].廈門大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,45(2):191-195.
[6] 黃劍波.三維組合夾具數(shù)據(jù)庫設(shè)計(jì)及裝配技術(shù)研究[J].電子機(jī)械工程,2009,25(4):41-44.
Method of Establishing Database in UG Secondary Development
WANG Yi-cheng,ZHANG Shu-ren
(School of Mechatronical Engineering,Changchun University of Science and Technology,Changchun 130022,China)
At present,modular fixture uses traditional assembly mode.In order to improve the efficiency and quality of the design and assemble of modular fixture,the article,based on UG platform,adds self-defined menus and establishes dialog box with UG-style from the perspectives of practicality and availability.It establishes the project by using MFC AppWizard of secondary development kit UG/Open and VC++provided by UG,sets VC engineering environment with UG/Open API programming,compiles joining program with DLL format to establish a connection between UG and VC,as well as the database.
UG secondary development;VC engineering environment;self-defined menu;database
TP392
A
1009-3907(2011)12-0001-04
2011-10-26
王一成(1985-),男,河南濟(jì)源人,助理工程師,碩士研究生,主要從事網(wǎng)絡(luò)制造與信息制造方面研究。張樹仁(1950-),男,吉林農(nóng)安人,教授,博士生導(dǎo)師,主要從事網(wǎng)絡(luò)制造與信息制造方面研究。
責(zé)任編輯:吳旭云