高 源 顏建軍 鄭建榮 徐永源
摘 要:針對UG軟件沒有通用標(biāo)準(zhǔn)件庫且一般標(biāo)準(zhǔn)件庫缺乏智能性的現(xiàn)狀,綜合利用UG/KF的知識熔接模塊以及兩種特征創(chuàng)建方法——語言編程法和UDF調(diào)用法,建立基于知識熔接和數(shù)據(jù)庫的標(biāo)準(zhǔn)件庫. 以氣門彈簧優(yōu)化設(shè)計(jì)為例,利用UG/KF優(yōu)化類模塊,進(jìn)一步開發(fā)標(biāo)準(zhǔn)件智能優(yōu)化選擇功能. 實(shí)踐表明該方法能縮短產(chǎn)品開發(fā)時(shí)間,方便庫管理,界面友好,能夠提高機(jī)械設(shè)計(jì)效率.
關(guān)鍵詞:知識熔接;UG/KF;UDF;智能性
中圖分類號:TP391.72;TH12;TP392
文獻(xiàn)標(biāo)志碼:A
Intelligent standard part library based on knowledge fusion
GAO Yuan1,YAN Jianjun1,ZHENG Jianrong1,XU Yongyuan2
(1.School of Mechanical & Power Eng.,East China Univ. of Sci. & Tech.,Shanghai 200237,China;
2.Dept. of Mechanical Eng.,Chung Hua Univ.,HsinChu Taiwan,China)
Abstract:With no standard part library in UG and the lack of intelligence in the normal standard part libraries,a standard part library based on knowledge fusion and database is established by comprehensively utilizing the knowledge fusion modules and two feature creating methods(language programming method and UDF call method) of UG/KF. Taking the optimization design of a valve spring as an example,the function of intelligent choosing of standard parts is further developed by using UG/KF optimization class module. The practice shows that the method can decrease the developing time of products,is convenient for library management,and has good interfaces. So it can improve the efficiency of mechanical design.
Key words:knowledge fusion;UG/KF;UDF;intelligence
0 引 言
目前,基于UG軟件的標(biāo)準(zhǔn)件庫開發(fā)有電子表格法、用戶自定義特征(UDF)法、UG OPEN GRIP或UG OPEN API法和UG/KF(知識熔接)法等.前兩者雖然方法簡單,但庫信息管理不方便,智能性和交互性都較差.UG OPEN GRIP或UG OPEN API法封裝豐富的函數(shù),能夠?qū)崿F(xiàn)UG的絕大部分操作,理論上可以克服所有缺點(diǎn),但對編程技術(shù)要求較高,軟件開發(fā)時(shí)間較長.對比前3種方法,UG/KF封裝大量的KF類,而且語法結(jié)構(gòu)簡單,兼具功能強(qiáng)大和易學(xué)易用的優(yōu)點(diǎn).因此,UG/KF技術(shù)可以在標(biāo)準(zhǔn)件建庫方面發(fā)揮更大的作用.本文即利用UG知識熔接模塊建立標(biāo)準(zhǔn)件庫,并進(jìn)行智能化探索.
1 利用UG/KF建立基于數(shù)據(jù)庫的標(biāo)準(zhǔn)件庫
利用UG/KF建立基于ODBC數(shù)據(jù)源的標(biāo)準(zhǔn)件庫原理見圖1.
圖 1 基于ODBC數(shù)據(jù)源的標(biāo)準(zhǔn)件庫建庫原理
應(yīng)用程序是用KF 語言編寫的*.dfa(designfile ASCII)格式的文本文件,標(biāo)準(zhǔn)件庫其實(shí)就是這些*.dfa文件的集合.零件的幾何信息和非幾何信息都以工程規(guī)則的形式保存在該類文件中.應(yīng)用程序訪問數(shù)據(jù)庫時(shí),需要調(diào)用在UG/KF模塊封裝的用于訪問ODBC數(shù)據(jù)庫的類:ug_odbc_database和ug_odbc_recordset.前者通過實(shí)例化建立與外部數(shù)據(jù)庫的連接,后者輸入?yún)?shù)sqlStatement使用SQL格式讀取和寫入數(shù)據(jù)庫中的數(shù)據(jù).這種ODBC數(shù)據(jù)庫是獨(dú)立的,功能強(qiáng)大,在非UG環(huán)境下也能對其進(jìn)行操作,管理方便.[1]對于UG/KF,零件幾何特征的獲取方法有語言編程法和UDF調(diào)用法.下面結(jié)合應(yīng)用實(shí)例說明如何使用這2種方法建立標(biāo)準(zhǔn)件庫.
1.1 語言編程法
定位圈是模具設(shè)計(jì)中用于定位的標(biāo)準(zhǔn)件.定位圈幾何特征比較簡單,用KF語言編程十分方便.[2,3]建立定位圈標(biāo)準(zhǔn)件庫的基本步驟如下:
(1)創(chuàng)建標(biāo)準(zhǔn)件數(shù)據(jù)源.創(chuàng)建名為locatingring的Access數(shù)據(jù)庫,導(dǎo)入同名的Excel數(shù)據(jù)表格.表中填寫零件參數(shù)數(shù)據(jù),見圖2.設(shè)置ODBC驅(qū)動,定義數(shù)據(jù)源.
圖 2 數(shù)據(jù)庫數(shù)據(jù)表格
(2)編寫DFA文件.UG/KF語言通過一系列幾何特征操作完成模型建模,每次幾何特征操作和非幾何操作都由子規(guī)則(child Rule)調(diào)用UG系統(tǒng)類實(shí)現(xiàn).定位圈的主程序文件如下.
#! UGNX/KF 4.0
//程序開始語句
defclass:locatingring(ug_base_part);
//自定義
locatingring類
# 定義參數(shù)并從數(shù)據(jù)庫中獲取參數(shù)值
(Number Parameter Modifiable) d_in:nth(5;bzjsj:);
(Number Parameter Modifiable) D_out:nth(3;bzjsj:);
(string Parameter Modifiable) Type:″LR-A100(T=20)″;
…
(string)%query:″select * from locatingring where Type=″ + ″′″ + Type:+ ″′″;// SQL格式語句
# 連接外部數(shù)據(jù)庫
(child) db:{
class;ug_odbc_database;
dsn;″locatingring″;
};
# 讀取數(shù)據(jù)庫數(shù)據(jù)
(child) Table:{
Design;ug_odbc_recordset;
database;db:;
sqlStatement;%query:;
};
(List)get:@{
table:movefirst:();
table:getrecord:();
};
# 利用KF語言編寫幾何模型特征
(child) cyl1:{
//創(chuàng)建圓柱體1
Design;
ug_cylinder;
Diameter;
D_out:;
Height;
T:;
Origin;
Point(0,0,0);
Direction;
Vector(0,0,1);
};
…
1.2 UDF調(diào)用法
用KF語言可以編制大多數(shù)幾何特征,但編制像彈簧這類復(fù)雜特征就顯得比較繁瑣,用UDF調(diào)用法能方便解決該問題.方法是在UG/KF環(huán)境中調(diào)用彈簧UDF,彈簧參數(shù)可以由彈簧標(biāo)準(zhǔn)數(shù)據(jù)庫提供,也可以由用戶界面直接獲取,有良好的交互性,而這正是傳統(tǒng)UDF法所不具備的.
以圓柱壓縮彈簧為例,首先建立彈簧UDF庫,利用UG建模模塊的表達(dá)式工具和軟管特征操作,對圓柱壓縮彈簧參數(shù)化建模.定義UDF名稱yzys,選擇彈簧材料直徑、彈簧中徑、有效圈數(shù)、彈簧螺距等主要特征作為自定義特征參數(shù),自動屏蔽非主要參數(shù),輸出UDF到spring特征庫.新建1個yzys_udf.dfa子程序文件,對應(yīng)上一步各參數(shù),實(shí)例化用戶自定義特征類ug_udfs,主要代碼如下:
DefClass:yzys_udf(ug_udfs);
(String Parameter Modifiable) Name:″yzys″;//UDF名
(String Parameter) Library:″/spring″;
//UDF庫名
(Canonical List Parameter Modifiable)
Parameters:
{{pitch,pitch:},{n,n:},{od,od:},{wire_dia,wire_dia:}};//圓柱彈簧主要參數(shù),各參數(shù)值在主程序文件yzys.dfa中初始化.
(child) insert_udf:{ class,yzys_udf;};// 在主程序文件中調(diào)用yzys_udf
實(shí)例化ug_odbc_database和ug_odbc_recordset類,彈簧參數(shù)從數(shù)據(jù)庫中調(diào)入,用戶也可以自定義彈簧參數(shù).最后利用UG/MenuScrip和UG/ UIStyler為標(biāo)準(zhǔn)件庫應(yīng)用程序建立友好用戶界面.[4]
2 標(biāo)準(zhǔn)件庫智能化
機(jī)械設(shè)計(jì)中不僅要使用大量標(biāo)準(zhǔn)件,還經(jīng)常用到優(yōu)化設(shè)計(jì)方法,如果標(biāo)準(zhǔn)件庫兼具優(yōu)化選擇標(biāo)準(zhǔn)件功能,將會更加智能.ug_optimize是UG/KF提供的優(yōu)化類.ug_optimize優(yōu)化目標(biāo)指期望達(dá)到的某個函數(shù)值.設(shè)計(jì)變量指在迭代過程中希望改變的參數(shù),變量變化范圍設(shè)定后,優(yōu)化解算器對設(shè)計(jì)變量的值在給定范圍內(nèi)調(diào)整,從而使目標(biāo)函數(shù)值也相應(yīng)變化,以達(dá)到目標(biāo).約束指非設(shè)計(jì)變量限制模型的其他限制,每次迭代時(shí),如果超出某個約束,模型被認(rèn)為無效,優(yōu)化解算器就會作出修正,回到滿足約束狀態(tài).收斂準(zhǔn)則指確定已達(dá)到目標(biāo)時(shí),終止迭代準(zhǔn)則.
圖3和4是利用ug_optimize對某內(nèi)燃機(jī)氣門彈簧重量優(yōu)化設(shè)計(jì)的實(shí)例,以彈簧重量為優(yōu)化目標(biāo),彈簧有效圈數(shù)、彈簧中徑和彈簧材料直徑為設(shè)計(jì)變量.根據(jù)具體功能要求和結(jié)構(gòu)限制,確定設(shè)計(jì)變量的變化范圍分別是[3,15],[30,60]和[3,10].約束條件包括旋繞比的取值范圍、彈簧不碰圈要求、剛度對話框條件、穩(wěn)定性條件、疲勞強(qiáng)度條件和不發(fā)生共振條件等,確定相對值收斂準(zhǔn)則.可將彈簧重量理論最小值作為目標(biāo)值,在該實(shí)例中,目標(biāo)值是各設(shè)計(jì)變量取最小值時(shí)的重量0.015 3 kg.任意取有效圈數(shù)4,彈簧中徑40 mm,彈簧材料直徑4 mm時(shí)的彈簧重量0.120 6 kg為優(yōu)化初值.UG/KF自動與Windows Excel鏈接.圖4是氣門彈簧重量優(yōu)化過程折線圖,可見共進(jìn)行16次迭代,迭代步數(shù)與優(yōu)化初值有關(guān).優(yōu)化結(jié)果見圖3.最后根據(jù)標(biāo)準(zhǔn)件參數(shù)值,將設(shè)計(jì)變量結(jié)果圓整,可得符合設(shè)計(jì)要求的最輕重量彈簧.
圖 3 氣門彈簧重量優(yōu)化
圖 4 氣門彈簧重量優(yōu)化過程
3 結(jié)束語
介紹如何利用UG/KF技術(shù)建立企業(yè)標(biāo)準(zhǔn)件庫,并利用UG/KF優(yōu)化類進(jìn)一步開發(fā)標(biāo)準(zhǔn)件智能優(yōu)化選擇功能.該方法開發(fā)時(shí)間短、庫管理方便、人機(jī)界面友好,同時(shí)工程師可使用KF語言添加自己的工程經(jīng)驗(yàn)規(guī)則,以便從大量繁瑣的建模工作中解放出來,專心從事更有價(jià)值的研究.企業(yè)也可從自身需求出發(fā),對標(biāo)準(zhǔn)件庫進(jìn)一步智能化,以提高設(shè)計(jì)效率.
參考文獻(xiàn):
[1] Unigraphics Solutions Inc. UG知識熔接技術(shù)培訓(xùn)教程[M]. 王剛,譯. 北京:清華大學(xué)出版社,2002:4-5.
[2] 鄧敬東. UG標(biāo)準(zhǔn)件庫開發(fā)實(shí)例教程[M]. 北京:清華大學(xué)出版社,2007:11-14.
[3] 閻峰云,張小甫,單巍巍,等. 基于Pro/Engineer的注塑模標(biāo)準(zhǔn)零件庫的開發(fā)[J]. 計(jì)算機(jī)輔助工程,2004,13(4):57-59.
[4] 彭岳華,盛治華. 基于UG軟件開發(fā)平臺的汽車產(chǎn)品開發(fā)[J]. 計(jì)算機(jī)輔助工程,2002,11(3):1-7.
(編輯 廖粵新)