董新華 王慶明 林海龍
(①華東理工大學機械與動力工程學院,上海 200237;②信陽農(nóng)業(yè)高等??茖W校,河南信陽 464000)
基于數(shù)據(jù)庫的UG參數(shù)化設計方法探討
董新華①②王慶明①林海龍①
(①華東理工大學機械與動力工程學院,上海 200237;②信陽農(nóng)業(yè)高等??茖W校,河南信陽 464000)
通過具體實例分析了基于數(shù)據(jù)庫的UG參數(shù)化設計的不同方法及設計過程的特點,供操作者在設計不同對象時找到適宜的參數(shù)化設計途徑提供參考。
數(shù)據(jù)庫 UG/Open 參數(shù)化設計 二次開發(fā)
UG是先進CAD/CAM的軟件之一,廣泛應用于航空、機械、汽車、家電等領域。UG參數(shù)化設計是指在零件或部件形狀的基礎上,用一組尺寸參數(shù)和約束定義該幾何圖形的形狀,尺寸參數(shù)和約束與幾何圖形有顯式的對應關系,當尺寸或約束發(fā)生改變時,相應的幾何圖形也發(fā)生相應的變化,從而達到驅(qū)動該幾何圖形的目的[1]。參數(shù)化設計的關鍵是幾何約束關系的提取和表達、幾何約束求解以及參數(shù)化幾何模型的構(gòu)造[2]。參數(shù)化設計主要用于標準化、系列化、通用化程度比較高的定型產(chǎn)品。
在UG CAD中,主要有交互圖形參數(shù)化設計與二次開發(fā)參數(shù)化設計方法。交互圖形設計方法是指在UG系統(tǒng)的環(huán)境中,用戶通過UG提供的模型交互命令和參數(shù)化設計的建模方法,如通過草繪、成型特征、細節(jié)特征等來滿足設計的要求,從而完成產(chǎn)品的參數(shù)化設計。二次開發(fā)參數(shù)化設計是指在UG系統(tǒng)的基礎上,利用UG/Open、VC等相關工具反映設計要求,并支持對知識庫的創(chuàng)建、知識的獲取及使用,快速響應需求,是一種高級的參數(shù)設計方法。
交互圖形設計方法是一種在新產(chǎn)品的開發(fā)過程中不可缺少的方法。用戶通過草繪、成型特征、設計特征、細節(jié)特征等UG提供的模型交互操作命令完成建模。在建模過程中,通過UG的電子表格(Speedsheel)提取、修改工作部件的表達式與屬性,然后再利用部件族功能,快速設計結(jié)構(gòu)與形狀基本相同而部分參數(shù)值不同的系列部件[3]。交互圖形設計方法僅能使用電子表格數(shù)據(jù)庫,非常適合于建立零件庫的工作,能參數(shù)化建立一批形狀類似,但尺寸不同的零件[4]。
交互圖形參數(shù)化設計是對常規(guī)交互圖形設計的擴展,即首先設計出一個模板文件,并在此基礎上,利用UG集成電子表格功能,逐步完成創(chuàng)建電子表格、參數(shù)化部件、創(chuàng)建部件各過程。其參數(shù)化設計流程如圖1所示。下面以內(nèi)齒圈參數(shù)化設計為例分析具體設計過程。
啟動UG,新建模型文件,命名為innergear.prt,按照以下操作完成。
(1)建立表達式:工具→表達式,打開表達式對話框,建立如下表達式:
其中:m為模數(shù),z為齒數(shù),α為壓力角,ha為齒頂高系數(shù),c為徑向間隙系數(shù),w為齒寬,d為分度圓直徑,da為齒頂圓直徑,df齒根圓直徑,db為基圓直徑,s為分度圓上齒輪的厚度,dd為內(nèi)齒輪外徑。
再建立漸開線方程的表達式:
(2)創(chuàng)建齒坯:插入→草圖,進入草圖繪制環(huán)境,繪制內(nèi)齒圈外徑圓,直徑值設為dd,然后執(zhí)行插入→設計特征→拉伸,進入拉伸對話框,設置拉伸終點距離值為w。
(3)繪制漸開線:插入→曲線→規(guī)律曲線,打開規(guī)律曲線對話框,選擇根據(jù)方程方式,以t為參數(shù),依次定義 xt、yt、zt繪出漸開線。
(4)繪制齒槽輪廓線:插入→草圖,進入草圖繪制環(huán)境,先繪制四個圓,直徑值為 db、da、d、df,再繪制兩條直線,過原點O和漸開線與分度圓的交點作一條直線,作另一條直線,約束與第一條直線的夾角值為(s*180/d)/pi(),如圖2所示。
(5)拉伸繪制齒槽輪廓線切除齒坯[5]:插入→設計特征→拉伸,進入拉伸對話框,選擇上步創(chuàng)建的1/2漸開線齒形草圖進行拉伸。然后,執(zhí)行插入→關聯(lián)復制→鏡向特征,對拉伸完成的1/2漸開線特征進行鏡像。
(6)圓周陣列拉伸特征:插入→關聯(lián)復制→實例特征→圓形陣列,在實例對話框中輸入圓形陣列數(shù)目z,陣列角度360/z。然后,執(zhí)行基準軸→z軸,完成圓形陣列操作,再次進行拉伸得到所需內(nèi)齒圈三維模型。如圖3所示。
通過工具→部件族,把相關參數(shù)如 a、c、ha、m、w、z、dd定義為部件族參數(shù)列,然后指定族保存目錄,創(chuàng)建電子表格。如圖4所示。
參照當前部件參數(shù)列的意義,在電子表格參數(shù)行的后面添加要創(chuàng)建的部件族的每一個成員的參數(shù)。每一行參數(shù)代表一個成員部件,需要給出每行的DB_PART_NO和OS_PART_NAME,以便對部件進行管理和存儲。如圖5所示。
根據(jù)需要,選擇表格中的一行或幾行,執(zhí)行部件族菜單中的創(chuàng)建部件命令,得到相應參數(shù)的部件,最后執(zhí)行保存族命令。
至此,交互圖形參數(shù)化設計結(jié)束,以后在設計時,只需要打開1.1節(jié)所創(chuàng)建的三維模型文件,執(zhí)行部件族命令,選擇編輯,調(diào)出圖5。按上述方法,即可得到需要的參數(shù)化部件。
二次開發(fā)的參數(shù)化設計方法又可分為基于三維模型的參數(shù)化設計方法和基于參數(shù)化程序的設計方法。
基于三維模型的參數(shù)化設計方法的總體思路是通過修改三維模型的特征,從而驅(qū)動三維模型發(fā)生相應的變化,達到參數(shù)化設計的目的。一般情況下,通過修改特征的參數(shù)來實現(xiàn)。首先獲得特征的參數(shù),然后改變該參數(shù)的值,最后利用二次開發(fā)函數(shù)UF_MODL_update()更新模型,使得對參數(shù)的修改反映到圖形上[6]。其基本流程如圖6所示。
仍以同樣的內(nèi)齒圈為參數(shù)化設計對象,其開發(fā)過程如下。
利用Visual C++對UG進行二次開發(fā),需要進行環(huán)境設置。
如果在應用程序開發(fā)向?qū)е袥]有UG/Open App-Wizard V18選項,應將UgOpen_v18.awx文件復制到VC安裝目錄(如D:program files)Microsoft Visual StudioCommonMSDev98BinIDE子目錄中。為了實現(xiàn)UG對參數(shù)化設計系統(tǒng)的調(diào)用,還要設置環(huán)境變量UGII_USER_DIR為用戶自定義目錄。在自定義目錄下建立startup和application子目錄,startup子目錄用來放置菜單文件及所有DLL文件,application子目錄用來存放對話框*.dlg文件。
Visual C++可以使用各種類型的(如 Access、SQL Server、Oracle等)數(shù)據(jù)庫,由于數(shù)據(jù)量相對較少,使用Access數(shù)據(jù)庫即可。打開Access,新建數(shù)據(jù)庫文件innergear.mdb。內(nèi)齒圈數(shù)據(jù)庫設計包含8個字段,即齒輪號、內(nèi)齒圈外徑、模數(shù)、齒數(shù)、壓力角、齒頂高系數(shù)、徑向間隙系數(shù)、齒寬。添加數(shù)據(jù)并保存。
通過控制面板→管理工具→數(shù)據(jù)源命令,用ODBC數(shù)據(jù)源管理器注冊相應的數(shù)據(jù)源(如innergear)。
UG/OPEN MenuScript是UG提供定制菜單的專用模塊,可用文本編輯器編寫菜單腳本,修改擴展名為men,并存放在用戶目錄startup下。這樣UG在啟動時出現(xiàn)相應菜單,即可調(diào)出參數(shù)化設計界面。
UG/OPEN UIStyler是開發(fā)UG對話框的可視化工具。在UG下,選擇開始→所有應用模塊→用戶界面樣式編輯器,進入對話框設計界面,完成如圖7所示界面。
編輯完成后,在用戶目錄application下生成一個對話框模板文件(innergear_template.c)、一個對話框頭文件(innergear.h)和一個對話框資源文件(innergear.dlg)。其中對話框資源文件、頭文件與UG/OPEN API結(jié)合,編譯成動態(tài)鏈接庫文件(innergear.dll)。
創(chuàng)建三維模型采用交互圖形設計方法,即與1.1節(jié)相同。
與對話框相對應的應用程序框架創(chuàng)建步驟是,啟動 VC,新建 Projects,選中 UG/Open AppWizard V18,輸入文件名innergear,按向?qū)崾就瓿伞=又赩isual C++的工作空間中刪除*.cpp和*.h這兩個向?qū)ё詣由晌募?,更?.3節(jié)生成的innergear_template.c為innergear.cpp,連同2.3節(jié)生成的另一文件innergear.h一并添加到VC++工作空間中。
與MFC對話框相對應的數(shù)據(jù)庫訪問程序框架創(chuàng)建步驟是,新建Projects,選中MFC AppWizard(dll),輸入文件名choicedata,按向?qū)崾就瓿?。然后在新建的對話框資源中添加框架、列表框、按鈕等顯示數(shù)據(jù)庫信息控件。如圖8所示。
然后,創(chuàng)建其對話框類CDataChoice和CInsertDialog,定義該類成員變量、函數(shù)和消息。最后添加相應代碼,實現(xiàn)對數(shù)據(jù)的訪問。
在對話框類中定義類的實例,通過類的方法對后臺數(shù)據(jù)庫進行訪問,在VC++中與數(shù)據(jù)庫連接的主要程序代碼[7]如下:
(1)修改相對應特征的參數(shù)[8]
(2)UG/Open API對數(shù)據(jù)庫的調(diào)用
在UG/Open API中,可以通過調(diào)用外部函數(shù)來實現(xiàn)對MFC編寫的數(shù)據(jù)庫DLL進行訪問。外部函數(shù)定義為:
把得到的數(shù)據(jù)庫中的數(shù)據(jù)通過str_mid數(shù)組帶回到API程序中。
首先編譯實現(xiàn)后臺數(shù)據(jù)庫的訪問的動態(tài)鏈接庫程序,即選擇Project的Setting命令,在Link選項卡添加libufun.lib和libugopenint.lib,再設置API函數(shù)庫所在的路徑(如 D:PROGRAM FILESUGSNX 5.0UGOPEN),通過編譯、連接,得到 choicedata.dll文件和choicedata.lib庫文件。其次再編譯框架程序,在Link選項卡添加libufun.lib、libugopenint.lib和choicedata.lib庫文件,然后再進行編譯、連接,得到innergear.dll文件。把編譯和連接過程得到的所有動態(tài)鏈接庫文件復制到用戶目錄startup下,以便于UG系統(tǒng)自行調(diào)用。
啟動UG,執(zhí)行自動加載的菜單命令,出現(xiàn)系統(tǒng)主界面如圖7所示。單擊讀入三維模型,系統(tǒng)自動讀入程序2.4節(jié)所設計模型樣板,并把相關數(shù)據(jù)寫入對話框中,在輸入框更改相應的參數(shù),單擊確定按鈕,程序自動完成內(nèi)齒圈參數(shù)的設計與建模。如圖3所示。
至此,基于三維模型的參數(shù)化設計結(jié)束。在以后的設計中,只需執(zhí)行自動加載的菜單命令,調(diào)出輸入?yún)?shù)的Styler對話框。先讀入三維模型,然后修改相關參數(shù)。也可以把機械設計手冊中內(nèi)齒圈標準件數(shù)據(jù)表導入到2.2先建立的access數(shù)據(jù)表中,然后從數(shù)據(jù)庫中調(diào)入?yún)?shù),最后更新模型。
基于參數(shù)化程序的設計方法的總體思路遵循點、線、面、體的方式進行,通過尋找模型上的關鍵點或根據(jù)數(shù)學方程求得關鍵點,再把關鍵點連成線,把線構(gòu)成面,通過面生成體。整個過程主要通過UG/Open API和UG/Open Grip實現(xiàn)。其設計流程如圖9所示。
從圖6和圖9的對照可以看出,基于參數(shù)化程序的設計方法與基于三維模型的參數(shù)化設計方法主要區(qū)別是創(chuàng)建三維模型的方式不同。前者使用交互圖形進行三維建模,后者通過UG/Open Grip編寫參數(shù)化設計程序?qū)崿F(xiàn)三維建模。另外,后者在編寫回調(diào)函數(shù)中,需再調(diào)用參數(shù)化設計程序。其它步驟與基于三維模型的參數(shù)化設計相同。對于不同部分,設計如下。
依據(jù)直齒輪的漸開線方程,計算關鍵點的數(shù)據(jù),應用Grip中的樣條指令做出漸開線,然后根據(jù)直齒輪的參數(shù)計算公式,得到相應的曲線,最后再用實體建模命令及變換矩陣得到內(nèi)齒圈實體模型。
(1)漸開線直齒輪的參數(shù)定義
利用漸開線直齒輪的參數(shù)定義和漸開線方程完成內(nèi)齒圈的Grip程序。Grip編程一般利用文本編輯器編寫源代碼,以grs擴展名保存,經(jīng)過編譯得到gri文件,鏈接后生成可執(zhí)行的grx文件(本例是innergear.grs)。
利用UG提供的UF_call_grip函數(shù)實現(xiàn)參數(shù)化設計程序的調(diào)用。其函數(shù)原型為:
其中:grip_executable為innergear.grs所在路徑;count為innergear.grs中參數(shù)的數(shù)量,即UFARGS數(shù)組的長度;UFARGS表示innergear.grs程序參數(shù)的數(shù)組指針。
基于參數(shù)化程序的設計建模直觀、快速,能大大提高設計效率,但該方法需要設計者熟悉Grip語言,能計算相應零件方程關鍵點的數(shù)據(jù),并會使用實體建模命令及變換矩陣等相關知識,適用于高級設計人員。
通過對基于數(shù)據(jù)庫的UG參數(shù)化設計的不同方法的分析,以內(nèi)齒圈參數(shù)化設計為例,分析了基于數(shù)據(jù)庫條件下,三種參數(shù)化設計方法的實現(xiàn)詳細過程。交互圖形方法能通過設計變量來控制零部件三維模型的生成,具有用戶擴充零件數(shù)據(jù)庫功能。UG的二次開發(fā)可以實現(xiàn)交互方式操作難以實現(xiàn)的功能,如復雜模型的參數(shù)化建模,UG平臺上的PDM和CAPP等功能。在通用CAD軟件上進行二次開發(fā)可以明顯提高設計效率,方便地建立標準件和企業(yè)常用零件數(shù)據(jù)庫。所做工作可以為不同層次操作者在設計不同對象時找到適合自身特點的參數(shù)化設計方法。
1 林莉.基于UG的齒輪參數(shù)化設計[J].機械制造與研究,2006,35(3):76 ~77,81
2 劉道華,張申亞等.基于特征的機械參數(shù)化設計方法的探討[J].信陽師范學院學報(自然科學版),2007,20(4):492~495
3 李小力,余世浩.電子表單在UG軟件中的應用[J].機械設計與制造,2008(4):62~63
4 林立彬,石勇等.精通UG NX 4.0[M].北京:電子工業(yè)出版社.2006.
5 龔劍波.從變位齒輪全參數(shù)化建模談UG的參數(shù)化設計[J].航空精密制造技術(shù)2006,42(5):28 ~30,34
6 王曉林,唐良寶.基于三維模型的參數(shù)化設計方法研究與應用[J].機械設計與制造,2007(8):73~75
7 黃勇,張博林等.UG二次開發(fā)與數(shù)據(jù)庫應用基礎與典型范例[M].北京:電子工業(yè)出版社.2008.
8 (美)西蒙(Simon,D.),周瑜萍等編著.Visual C++6編程寶典[M].北京:電子工業(yè)出版社,2005.
如果您想發(fā)表對本文的看法,請將文章編號填入讀者意見調(diào)查表中的相應位置。
The Discussion of UG Parametric Design Based on Database
DONG Xinhua①②,WANG Qingming①,LIN Hailong①
(①School of Mechanical and Power Engineering,East China University of Science and Technology,Shanghai 200237,CHN;②Xinyang Agricultural College,Xinyang 464000,CHN)
In this paper,different methods of parametric design based on UG and database is analyzed and characteristics of all sorts of parametric design process is discovered.All the works provide a reference for the different level operators who try to find suitable parametric design approach when they design different object.
Database;UG/Open;Parametric Design;Secondary Development
TH16,TP391
董新華,男,1976年生,在讀研究生,主要研究方向為數(shù)字化設計制造技術(shù)、計算機應用。
(編輯 孫德茂)(
2009-09-06)
10231