基于知识熔接的智能标准件库

2009-04-21 09:45颜建军郑建荣徐永源
计算机辅助工程 2009年1期

高 源 颜建军 郑建荣 徐永源

摘 要:针对UG软件没有通用标准件库且一般标准件库缺乏智能性的现状,综合利用UG/KF的知识熔接模块以及两种特征创建方法——语言编程法和UDF调用法,建立基于知识熔接和数据库的标准件库. 以气门弹簧优化设计为例,利用UG/KF优化类模块,进一步开发标准件智能优化选择功能. 实践表明该方法能缩短产品开发时间,方便库管理,界面友好,能够提高机械设计效率.

关键词:知识熔接;UG/KF;UDF;智能性

中图分类号:TP391.72;TH12;TP392

文献标志码: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软件的标准件库开发有电子表格法、用户自定义特征(UDF)法、UG OPEN GRIP或UG OPEN API法和UG/KF(知识熔接)法等.前两者虽然方法简单,但库信息管理不方便,智能性和交互性都较差.UG OPEN GRIP或UG OPEN API法封装丰富的函数,能够实现UG的绝大部分操作,理论上可以克服所有缺点,但对编程技术要求较高,软件开发时间较长.对比前3种方法,UG/KF封装大量的KF类,而且语法结构简单,兼具功能强大和易学易用的优点.因此,UG/KF技术可以在标准件建库方面发挥更大的作用.本文即利用UG知识熔接模块建立标准件库,并进行智能化探索.

1 利用UG/KF建立基于数据库的标准件库

利用UG/KF建立基于ODBC数据源的标准件库原理见图1.

图 1 基于ODBC数据源的标准件库建库原理

应用程序是用KF 语言编写的*.dfa(designfile ASCII)格式的文本文件,标准件库其实就是这些*.dfa文件的集合.零件的几何信息和非几何信息都以工程规则的形式保存在该类文件中.应用程序访问数据库时,需要调用在UG/KF模块封装的用于访问ODBC数据库的类:ug_odbc_database和ug_odbc_recordset.前者通过实例化建立与外部数据库的连接,后者输入参数sqlStatement使用SQL格式读取和写入数据库中的数据.这种ODBC数据库是独立的,功能强大,在非UG环境下也能对其进行操作,管理方便.[1]对于UG/KF,零件几何特征的获取方法有语言编程法和UDF调用法.下面结合应用实例说明如何使用这2种方法建立标准件库.

1.1 语言编程法

定位圈是模具设计中用于定位的标准件.定位圈几何特征比较简单,用KF语言编程十分方便.[2,3]建立定位圈标准件库的基本步骤如下:

(1)创建标准件数据源.创建名为locatingring的Access数据库,导入同名的Excel数据表格.表中填写零件参数数据,见图2.设置ODBC驱动,定义数据源.

图 2 数据库数据表格

(2)编写DFA文件.UG/KF语言通过一系列几何特征操作完成模型建模,每次几何特征操作和非几何操作都由子规则(child Rule)调用UG系统类实现.定位圈的主程序文件如下.

#! UGNX/KF 4.0

//程序开始语句

defclass:locatingring(ug_base_part);

//自定义

locatingring类

# 定义参数并从数据库中获取参数值

(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格式语句

# 连接外部数据库

(child) db:{

class;ug_odbc_database;

dsn;″locatingring″;

};

# 读取数据库数据

(child) Table:{

Design;ug_odbc_recordset;

database;db:;

sqlStatement;%query:;

};

(List)get:@{

table:movefirst:();

table:getrecord:();

};

# 利用KF语言编写几何模型特征

(child) cyl1:{

//创建圆柱体1

Design;

ug_cylinder;

Diameter;

D_out:;

Height;

T:;

Origin;

Point(0,0,0);

Direction;

Vector(0,0,1);

};

1.2 UDF调用法

用KF语言可以编制大多数几何特征,但编制像弹簧这类复杂特征就显得比较繁琐,用UDF调用法能方便解决该问题.方法是在UG/KF环境中调用弹簧UDF,弹簧参数可以由弹簧标准数据库提供,也可以由用户界面直接获取,有良好的交互性,而这正是传统UDF法所不具备的.

以圆柱压缩弹簧为例,首先建立弹簧UDF库,利用UG建模模块的表达式工具和软管特征操作,对圆柱压缩弹簧参数化建模.定义UDF名称yzys,选择弹簧材料直径、弹簧中径、有效圈数、弹簧螺距等主要特征作为自定义特征参数,自动屏蔽非主要参数,输出UDF到spring特征库.新建1个yzys_udf.dfa子程序文件,对应上一步各参数,实例化用户自定义特征类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:}};//圆柱弹簧主要参数,各参数值在主程序文件yzys.dfa中初始化.

(child) insert_udf:{ class,yzys_udf;};// 在主程序文件中调用yzys_udf

实例化ug_odbc_database和ug_odbc_recordset类,弹簧参数从数据库中调入,用户也可以自定义弹簧参数.最后利用UG/MenuScrip和UG/ UIStyler为标准件库应用程序建立友好用户界面.[4]

2 标准件库智能化

机械设计中不仅要使用大量标准件,还经常用到优化设计方法,如果标准件库兼具优化选择标准件功能,将会更加智能.ug_optimize是UG/KF提供的优化类.ug_optimize优化目标指期望达到的某个函数值.设计变量指在迭代过程中希望改变的参数,变量变化范围设定后,优化解算器对设计变量的值在给定范围内调整,从而使目标函数值也相应变化,以达到目标.约束指非设计变量限制模型的其他限制,每次迭代时,如果超出某个约束,模型被认为无效,优化解算器就会作出修正,回到满足约束状态.收敛准则指确定已达到目标时,终止迭代准则.

图3和4是利用ug_optimize对某内燃机气门弹簧重量优化设计的实例,以弹簧重量为优化目标,弹簧有效圈数、弹簧中径和弹簧材料直径为设计变量.根据具体功能要求和结构限制,确定设计变量的变化范围分别是[3,15],[30,60]和[3,10].约束条件包括旋绕比的取值范围、弹簧不碰圈要求、刚度对话框条件、稳定性条件、疲劳强度条件和不发生共振条件等,确定相对值收敛准则.可将弹簧重量理论最小值作为目标值,在该实例中,目标值是各设计变量取最小值时的重量0.015 3 kg.任意取有效圈数4,弹簧中径40 mm,弹簧材料直径4 mm时的弹簧重量0.120 6 kg为优化初值.UG/KF自动与Windows Excel链接.图4是气门弹簧重量优化过程折线图,可见共进行16次迭代,迭代步数与优化初值有关.优化结果见图3.最后根据标准件参数值,将设计变量结果圆整,可得符合设计要求的最轻重量弹簧.

图 3 气门弹簧重量优化

图 4 气门弹簧重量优化过程

3 结束语

介绍如何利用UG/KF技术建立企业标准件库,并利用UG/KF优化类进一步开发标准件智能优化选择功能.该方法开发时间短、库管理方便、人机界面友好,同时工程师可使用KF语言添加自己的工程经验规则,以便从大量繁琐的建模工作中解放出来,专心从事更有价值的研究.企业也可从自身需求出发,对标准件库进一步智能化,以提高设计效率.

参考文献:

[1] Unigraphics Solutions Inc. UG知识熔接技术培训教程[M]. 王刚,译. 北京:清华大学出版社,2002:4-5.

[2] 邓敬东. UG标准件库开发实例教程[M]. 北京:清华大学出版社,2007:11-14.

[3] 阎峰云,张小甫,单巍巍,等. 基于Pro/Engineer的注塑模标准零件库的开发[J]. 计算机辅助工程,2004,13(4):57-59.

[4] 彭岳华,盛治华. 基于UG软件开发平台的汽车产品开发[J]. 计算机辅助工程,2002,11(3):1-7.

(编辑 廖粤新)