ProE二次开发的关键技术_第1页
ProE二次开发的关键技术_第2页
ProE二次开发的关键技术_第3页
ProE二次开发的关键技术_第4页
ProE二次开发的关键技术_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Pro/E二次开发的关键技术*             摘要:  本文深入研究并实现了运用Pro/E的二次开发工具Pro/TOOLKIT进行程序自动特征建模技术,提出用动态链接库方式实现用微软基本类库(MFC)开发Pro/E对话框界面的通讯机制,并给出了实现方案和程序示例。  关键字:  CAD 二次开发 特征建模    The Key Technology

2、 About Application Development Of Pro/E     Abstract: Based on the research of the application development in Pro/E, the paper presents a automatic feature modeling metho

3、d by Pro/Toolkit. It describes the implement of information transformation mechanism in interfaces with DLL and basic class libraries, and shows the example of the system.

4、0; Key words: CAD; Application Development; Feature Model    1         引言  自动建模指面对特定的产品,根据用户输入的参数或根据运用CAD系统进行设计产生的数据结果,系统应能动态地、自动地将模型建造出来,本文称这种技术为程序自动建模。Pro/E是一种采用了特征建模技术,基于统一数据库的参数化的通用CAD系统。利用它提供的二次开发工具Pro/TOO

5、LKIT,在Pro/E的基础上进行二次开发,可以比较方便地实现面向特定产品的程序自动建模功能,并且可以把较为丰富的非几何特征如材料特征、精度特征加入所产生的模型中,所有信息存入统一的数据库,是实现CAD/CAE/CAM集成的关键技术之一。本文分别对几何特征和非几何特征的程序自动建模技术进行论述。  CAD系统要和其它系统集成往往需要通用数据库接口。然而直到20版的Pro/TOOLKIT仍没有提供数据库编程接口。另外,弹出式对话框是目前最先进最流行的一种人机交互界面,能向用户提供图形与文字共存的可视化环境,使操作更为自然、简便和快速,但Pro/TOOLKIT只提供下拉式菜单(包括菜单栏

6、标题及其菜单项)的编程接口,而没有提供开发对话框的编程接口。本文研究并开发了Pro/TOOLKIT与MFC的接口,利用MFC强大的功能实现对话框的开发与数据库的访问。       2  几何特征的程序自动建模方法分析  对于几何特征的程序自动建模,Pro/TOOLKIT提供了以下三种方法来实现:     2.1 特征描述  每一个特征由不同的特征元素树(feature element tree)来定义。在程序中对每个特征元素树的全部变量赋值一次,

7、就可以产生一个特征,多个特征的积累就形成产品模型。特征元素树包含的信息分为四类1 :  (1)  特征本身的所有选项和属性。如特征类型名称、隆起或切槽特征等的深度计量方式、孔的放置方式等。  (2)       特征与已存在的几何实体的参考关系。  (3)       用于构造特征的平面图形的起始位置。  (4)      &#

8、160;所有的尺寸值。  目前这种方法还不成熟,因为它有以下三个缺点:  (1)   要由程序产生模型,程序必须包含产品模型的所有信息,从底层起由程序构建模型,编程量十分大。  (2)   因为每种特征由不同的特征元素树来描述,所以编程难度大而且所编程序非常难于理解。  (3)   并不是所有的特征都可以用这种方法产生1。             

9、                               2.2 族表  这种方法的步骤是:预先手工构建产品模型,把它作为族表的类属件(generic part),然后在族表中定义各个控制参数来控制模型的形状大小,这样就可在程序中通过改变各个参数的值来得到所需要的衍

10、生件。这个衍生件的产生是独立存在的,不需要为它定义参考基准。     2.3用户定义特征  与族表法相同之处是同样要预先手工构建产品模型。模型创建后定义要包含的几何特征、参考基准、可变尺寸以及可变尺寸的记号(symbol),然后将这些信息存为一个后缀为gph的文件。这样就可以在程序中通过这个文件来改变可变尺寸,产生所需的衍生件。与族表法不同的是,这种方法所编的程序过程与手工建模过程比较相似,因而易于理解且编程较易,因而在本文着重探讨运用这种方法的技巧。     3     &

11、#160;  非几何特征的附加       运用Pro/TOOLKIT提供的库函数,可以十分方便地将一些非几何特征包括材料特征以及精度特征附加到已建模型中。      要由程序自动地设置材料特征,较为方便直观的办法是先在pro/e界面上手工编辑多个材料文件,输入它所要求的各种参数值(例如密度、泊松率等),并存为后缀为mat的文件。所输入参数的格式不限,因为存盘后pro/e会自动将参数格式转化为它规定的格式。定义好材料文件后,就可以在程序中将多种材料特征赋给产品模型,

12、并设定其中一种材料为模型的当前使用材料。材料特征信息与产品模型的其它特征信息存于同一数据库中,而模型的当前使用材料的各种参数将在该产品的分析计算中自动被使用1。精度特征的附加不需要先产生辅助文件,只需用Pro/TOOLKIT提供的库函数(如ProGtolCreate()等)即可实现。4.    自动特征建模实例       在这个实例中,将利用用户定义特征的方法,用C语言编程,产生一个以缺省座标平面为参考基准的冲头模型,并加入精度特征和材料特征。事实上,只需修改此程序的可变尺寸赋值语句、用户定义特征文件名和材料文件名的给定语

13、句,就能成为其它模型的自动建模函数。 (1)按上面所说的方法先手工构建一任意尺寸的长方体并在头部倒圆角形成冲头模型,按上述方法制作用户定义特征文件(文件名为 “punch.gph”)。冲头模型所包含的几何特征为隆起和圆角,参考基准为缺省座标平面,将长、宽、高和圆角半径定义为可变尺寸,它们的记号分别定为 “length”、“width”、“height”和“rp”。 (2)以下为冲头模型的程序自动建模函数,这个程序可以动态地根据不同的长、宽、高和圆角的输入值,动态地、自动地构造出冲头模型,并在Pro/E窗口中显示出来。 int  three_dim_construct(h , l ,

14、w, rp) /l、w、h、rp为长、宽、高、冲头圆角尺寸 double h , l , w , rp ;ProMdlCurrentGet(&p_model);  / /用户定义特征文件名的给定ProStringToWstring (, “punch.gph”); / /可变尺寸的赋值data.n_var_dims = 4;data.var_dims=(Pro_udf_var_dim*)calloc(4, izeof(Pro_udf_var_dim); ProStringToWstring (data.var_, "l

15、ength");data.var_dims0.type=PROUDFVAR_DIM;data.var_dims0.value=l; /依次对长、宽、高、冲头圆角尺寸(即l、w、h、rp)进行赋值data.n_references=3;data.references=(Pro_udf_reference*)calloc(3, sizeof(Pro_udf_reference); data.references0.ref_ptr = NULL; /指明参考基准为三个缺省座标平面 data.references0.ref_id = 1; /缺省座标平面的标识为1、3、5data.

16、n_orientations=2;data.orientations=(Pro_udf_ref_orient*)calloc(2, sizeof(Pro_udf_ref_orient);data.orientations0=PROUDF_REF_NO_FLIP; /接受缺省的建模方向 data.n_quadrants=0;data.dependency=PROUDFDEP_INDEPENDENT;/所建模型相互独立data.scale_type=PROUDFSCALE_SAME_SIZE; /单位不同时以等量尺寸构造模型 data.dim_display=PROUDFDIM_BLANK; /隐

17、藏不可变尺寸prodb_create_group(p_model,&data,NULL,NULL,0); /根据上面所赋信息构建模型 ProMdlCurrentGet(&p_model1);/获得所建模型的句柄(Handle)prodb_set_tol_value(p_model,PRO_LINEAR_TOLERANCE,1,0.15); /附加精度特征,可使用变量赋值 ProStringToWstring(material_name, "Fe.mat");ProMaterialfileRead(p_model1, material_name); /附加材料

18、特征,可使用变量赋值 ProWindowRepaint(PRO_VALUE_UNUSED); /刷新屏幕使所建模型显示出来      Return 0 ;5. Pro/E与MFC的接口开发 从本质上说,Pro/E与MFC的接口就是Pro/E系统调用MFC应用程序的途径。本文研究并开发一个Pro/TOOLKIT应用程序来实现该接口。Pro/E系统、Pro/TOOLKIT应用程序与MFC应用程序的通信方式是接口实现的关键之一。本文提出采用动态链接库(DLL)方式实现三者之间的通信。因为通信是通过直接的函数调用实现的,所以有执行速度快的优点。接口方案

19、如图1所示。 Pro/E系统Pro/TOOLKIT程序(A. dll)MFC应用程序(B. dll)DLL方式DLL方式   图1 接口实现方案 具体实现的方法如下(编译器使用VC+6.0): (1)使用CWinApp类来生成第一个DLL工程(简称A. dll),工程类型选用共享MFC的常规DLL(Regular DLL using shared MFC DLL)选项。然后在此工程中加入Pro/TOOLKIT程序,主要是函数user_initialize()的代码。 (2) 使用同样的方法与选项生成第二个DLL工程(简称B. dll),并在此工程中用类向导(ClassWiz

20、ard)和资源编辑器(Resource Edit)生成所需要的MFC类(如对话框类、数据库类等),并定义一个函数完成该类的初始化。 (3) 使A. dll中的Pro/TOOLKIT程序调用B. dll的导出函数(如图2中的loaddlg()函数), 这是接口实现的关键。 (4) 加入Pro/TOOLKIT程序所用到的库(如protk_dll.lib、protoolkit.lib、prodev_dll.lib、BDebugB.lib、pt_asynchronous.lib等等),并指出其路径,且设为强制输出(即使用/force选项),使用MFC的编译选项对这两个工程进行编译。生成新的 A.dll

21、与B.dll。 (5)在 Pro/E中用DLL方式加载Pro/TOOLKIT程序(即A. dll),再通过Pro/TOOLKIT程序调用MFC应用程序(即B. dll)。 A. dllint user_initialize()     CSCW_Init(); extern "C" int CSCW_Init()       return loaddlg (); B. dll _declspec( dllexport ) int loaddlg ()       AFX_MANAGE_S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论