摘要:本文深入研究并实现了运用Pro/E的二次开发工具Pro/TOOLKIT进行程序自动特征建模技术,提出用动态链接库方式实现用微软基本类库(MFC)开发Pro/E对话框界面的通讯机制,并给出了实现方案和程序示例。
关键字:CAD二次开发特征建模
TheKeyTechnologyAboutApplicationDevelopmentOfPro/E
Abstract:BasedontheresearchoftheapplicationdevelopmentinPro/E,thepaperpresentsaautomaticfeaturemodelingmethodbyPro/Toolkit.ItdescribestheimplementofinformationtransformationmechanismininterfaceswithDLLandbasicclasslibraries,andshowstheexampleofthesystem.
Keywords:CAD;ApplicationDevelopment;FeatureModel
1引言
自动建模指面对特定的产品,根据用户输入的参数或根据运用CAD系统进行设计产生的数据结果,系统应能动态地、自动地将模型建造出来,本文称这种技术为程序自动建模。Pro/E是一种采用了特征建模技术,基于统一数据库的参数化的通用CAD系统。利用它提供的二次开发工具Pro/TOOLKIT,在Pro/E的基础上进行二次开发,可以比较方便地实现面向特定产品的程序自动建模功能,并且可以把较为丰富的非几何特征如材料特征、精度特征加入所产生的模型中,所有信息存入统一的数据库,是实现CAD/CAE/CAM集成的关键技术之一。本文分别对几何特征和非几何特征的程序自动建模技术进行论述。
CAD系统要和其它系统集成往往需要通用数据库接口。然而直到20版的Pro/TOOLKIT仍没有提供数据库编程接口。另外,弹出式对话框是目前最先进最流行的一种人机交互界面,能向用户提供图形与文字共存的可视化环境,使操作更为自然、简便和快速,但Pro/TOOLKIT只提供下拉式菜单(包括菜单栏标题及其菜单项)的编程接口,而没有提供开发对话框的编程接口。本文研究并开发了Pro/TOOLKIT与MFC的接口,利用MFC强大的功能实现对话框的开发与数据库的访问。
2几何特征的程序自动建模方法分析
对于几何特征的程序自动建模,Pro/TOOLKIT提供了以下三种方法来实现:
2.1特征描述
每一个特征由不同的特征元素树(featureelementtree)来定义。在程序中对每个特征元素树的全部变量赋值一次,就可以产生一个特征,多个特征的积累就形成产品模型。特征元素树包含的信息分为四类[1]:
(1)特征本身的所有选项和属性。如特征类型名称、隆起或切槽特征等的深度计量方式、孔的放置方式等。
(2)特征与已存在的几何实体的参考关系。
(3)用于构造特征的平面图形的起始位置。
(4)所有的尺寸值。
目前这种方法还不成熟,因为它有以下三个缺点:
(1)要由程序产生模型,程序必须包含产品模型的所有信息,从底层起由程序构建模型,编程量十分大。
(2)因为每种特征由不同的特征元素树来描述,所以编程难度大而且所编程序非常难于理解。
(3)并不是所有的特征都可以用这种方法产生[1]。
2.2族表
这种方法的步骤是:预先手工构建产品模型,把它作为族表的类属件(genericpart),然后在族表中定义各个控制参数来控制模型的形状大小,这样就可在程序中通过改变各个参数的值来得到所需要的衍生件。这个衍生件的产生是独立存在的,不需要为它定义参考基准。
2.3用户定义特征
与族表法相同之处是同样要预先手工构建产品模型。模型创建后定义要包含的几何特征、参考基准、可变尺寸以及可变尺寸的记号(symbol),然后将这些信息存为一个后缀为gph的文件。这样就可以在程序中通过这个文件来改变可变尺寸,产生所需的衍生件。与族表法不同的是,这种方法所编的程序过程与手工建模过程比较相似,因而易于理解且编程较易,因而在本文着重探讨运用这种方法的技巧。
3非几何特征的附加
运用Pro/TOOLKIT提供的库函数,可以十分方便地将一些非几何特征包括材料特征以及精度特征附加到已建模型中。
要由程序自动地设置材料特征,较为方便直观的办法是先在pro/e界面上手工编辑多个材料文件,输入它所要求的各种参数值(例如密度、泊松率等),并存为后缀为mat的文件。所输入参数的格式不限,因为存盘后pro/e会自动将参数格式转化为它规定的格式。定义好材料文件后,就可以在程序中将多种材料特征赋给产品模型,并设定其中一种材料为模型的当前使用材料。材料特征信息与产品模型的其它特征信息存于同一数据库中,而模型的当前使用材料的各种参数将在该产品的分析计算中自动被使用[1]。精度特征的附加不需要先产生辅助文件,只需用Pro/TOOLKIT提供的库函数(如ProGtolCreate()等)即可实现。
4. 自动特征建模实例
(2)以下为冲头模型的程序自动建模函数,这个程序可以动态地根据不同的长、宽、高和圆角的输入值,动态地、自动地构造出冲头模型,并在Pro/E窗口中显示出来。
ProWindowRepaint(PRO_VALUE_UNUSED); //刷新屏幕使所建模型显示出来
Return 0 ;
}Pro/E系统
Pro/TOOLKIT程序
DLL方式
DLL方式
int user_initialize()
{ CSCW_Init();
… …
}
… …
extern "C" int CSCW_Init()
{
return loaddlg ();
}
B. dll
… …
__declspec( dllexport ) int loaddlg ()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDLG DLG;
DLG..DoModal();
return 0;
}
图2 Pro/E与MFC的接口程序的关键