Pro_TOOLKIT对Pro_E二次开发参数化设计系统研究
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 参数化设计系统结构组成
Pro/TOOLKIT 是针对 Pro/E 功能强大的二次开发工具。它封 装了许多针对 Pro/E 底层资源调用的库函数与头文件, 借助第三 VC++语言等 ) 进行调试。这里以常规的建模 方编译环境 (C 语言、 方式创建复合模型,并以 c++ 编译工具 VisualC++6.0 作为 Pro/ ENGINEER 的二次开发工具包 Pro/Toolkit 的第三方编译工具编 译参数化程序, 这些程序直接从模型读出所有约束参数, 通过交 互界面对有关参数进行修改, 再根据新的参数值生成新的模型。 本系统主要由主程序、 Pro/E 数据库、数据编辑、三维建模、 API 接口等 5 个模块组成。 如图 1 所示, 为结构形式。 主程序是数 据交换的枢纽, 连接 Pro/E 数据库、 数据编辑、 API 接口、 三维建模 Pro/E 数 等 4 个模块。从图 1 中可以看出。主程序能与数据编辑、 据库进行数据双向传递。通过主程序可以调用各模块。
2.2 生成可执行文件
通过编译程序生成可执行文件, 要生成可执行文件首先需要 (即.mak ) 的文件, 也可以由 Pro / ENGINEER 自 制作一个 makefile 带的 makefile 文件修改得到。Pro / ENGINEER 为应用程序提供 两种工作模式:同步模式和异步模式同步模式又包含两种模式: ) 和多进程模式 (Multiprocess mode, 也 动态连接库模式 (DLL 模式 称为派生模式 Spawned mode ) 。动态连接模式是将 Pro /Toolkit 应 先编译 c 应用程序。 用程序集成到 Pro /ENGINEER 中的标准方法, 与 Pro /Tolkit 库连接, 这种方法称为 DLL 模式。多进程模式是 Pro / Toolkit 支持的第二种将应用程序和 Pro / ENGINEER 集成的方法
2.4 关键开发技术
对话框开技术; 对话框是 CAD/CAM 类应用软件不可缺少 的用户界面之一, 能够正确快速地开发出应用程序的对话框十分 重要 。 在开发对话框时还应该注意以下问题:因为 Pro / E 与 Windows 开发平台系统的差异, 所以当所开发的对话框显示并移 动时, 就存在 Pro/E 的设计窗口不能及时刷新的问题, 解决这一 () 函数, 问题的方法是在该对话框类里修改对话框类的 On Move 添 加 刷 新 Pro / E 窗 口 的 函 数 。 为 了 刷 新 屏 幕 , 需 要 修 改 CMyDialog 的 OnMove () 为:
3 参数化设计系统的应用
本文作者开发了一个 Pro/E 调用 UI 对话框实例,为惠州某 精密部件有限公司开发了一个模具参数化设计系统。该实例在 Pro/E 中产生 UI 对话框, 接受用户的输入信息, 并且响应。编译 器使用 Microsoft VisualC ++6.0。具体的实现步骤如下。 在 Pro / E 中调用 UI 对话框所需解决的关键问题就是实现 Pro/E、 Pro/TOOLKIT 应用程序与 UI 对话框三者之间的通信。 Pro /E 系统与 Pro/TOOLKIT 应用程序采用动态连接库 (DLL ) 方式进 行通信。 由于 Pro/TOOLKIT 是通过 C 语言进行编程, 无法直接调 用 UI 对话框, 这就必须运用通信方式实现在 Pro/TOOLKIT 中调 用 UI 对话框, 本文采用动态连接库 (DLL ) 实现二者的通信。 在
为了在 VC 环境下统一编译 PrO / ToolKit 函数、 WindowsAPI 函数和 MFC 函数, 需要对 VC++6.0 设置正确的环境参数, 如下环 境设置保证了文档一视结构应用程序的顺利编译, 同时改正了文 因无法避免参数的重复定义而产生 47 个 献[1]中的环境设置下, warning 的不足. ( 1 ) Vroject-Settings-c/C++---~Preprocess definitions: WIN32, 一 DEBUG, 一 WINDOW S, 一 MBCS, 一 USRDLL, PRO_USE_VAR-ARGS, hypot=一 hypot, MSB_LEFT, far=ptcfar, huge=p_huge, near=p_near, 一 AFXDLL; (2 ) Project -Settings --~C / C ++ 一 Precompiled Headers ~ Automatic use of precompiled headers; (3 ) Project -Settings -Link -General -Object / librarymodules: protk-dllmd.1ibprodev_dllmd.1ibwsock32.1ibmpr.1ib; (4 ) Project-Se ttings-*Link-Input-Ignore libraries: libcm t.1ib, msvcrtd.1ib
第9期 2008 年 9 月
文章编号: 1001-3997 (2008 ) 09-0185-03
机械设计与制造 Machinery Design & Manufacture
- 185 -
Pro/TOOLKIT 对 Pro/E 二次开发参数化设计系统研究*
缪燕平 何柏林(华东交通大学 机电工程学院, 南昌 330013 )
2 参数化设计系统开发基本方法
使用 Pro/TOOLKIT 开发应用程序包含三个基本步骤:编写 源文件 (包括资源文件和程序源文件 ) ; 生成可执行文件; 可执行 文件在 Pro/E 中注册并运行。
2.1 编写源文件
源文件包括资源文件和程序源文件:资源文件包括菜单资源文 件、 窗口资源文件、 对话框资源文件等; 程序源文件指我们所要编写 user_initialize () 和 的 C++程序。Pro/TOOLKIT 应用程序的核心是: user_terminate ( ) 两个函数。 User_initialize ( ) 是 Pro/TOOLKIT 的初 始化函数,此函数应包含用户或第三方开发的 Pro/TOOLKIT 应 用程序所需的一切初始化信息 (例如对 Pro/E 系统菜单的扩展、 对话框的创建等 ) 。User_terminate () 是 Pro/TOOLKIT 的结束中断 函数。
可以采用两种注册方式, 一种为自动注册的方式, 将注册文 , 运行 Pro/E 件放在指定的目录下 (如放在 Pro/E 的启动目录下) 时将根据注册文件自动注册所指定的应用程序 (此时注册文件名 必须为 p rotk.dat ) ;另一种为手动注册,即在运行 Pro/E 后, 在 UTIL ITIES 菜单下选择 Auxiliary App lications 菜单项, 然后在对 指向所要注册的注册文件, 点击启动便可以 话框中选取 Register, 运行应用程序了[4]。
参数化设计是采用参数化模型通过调整参数来修改和控制 几何形状, 从而自动实现产品的精确造型。参数化设计方法与传 统设计方法相比,其最大的不同在于它存储了设计的整个过程, 且其设计结果是包含设计 能设计出一族而不是单一的产品模型。 信息的模型[1]。参数化设计能够使工程设计人员不需要考虑细节 而能尽快草拟零件图, 并可以通过变动某些约束参数而不必运行 产品设计的全过程来更新设计[2]。
3.1 项目文件里完成的工作
(1 ) 编写 user_initialize () 函数, 这是程序的入口点, 基本菜 单及其动作执行函数都是在这里添加的。 (2 ) 编写 user_terminate ()函数, 它是函数的结束点, 应在此 完成必要的清除工作。 (3 ) 添加必要的头文件, 在程序里调用了大量 Pro / TOOLKIT 函数, 这些头文件是必不可少的。Pro/TOOLKIT 的程序结构和菜 单, 如图 2 所示。菜单结构如图 3 所示。
Study on parametric design system based on secondary development of Pro/Toolkit
MIAO Yan-ping, HE Bo-lin (School of Mechanical & Electrical Engineering, East China Jiaotong University, Nanchang 330013, China ) 【摘 要】 针对 Pro/E 的二次开发对其参数化设计进行详细的研究, 克服了 Pro/TOOLKIT 开发对话
name应用程序名称startup工作模式spawnexecfile可执行文件或动态连接库的位置textdir资源文件菜单文件对话框文件窗口信息文件的位置revision版本号end结束可以采用两种注册方式一种为自动注册的方式将注册文件放在指定的目录下如放在roe的启动目录下运行roe时将根据注册文件自动注册所指定的应用程序此时注册文件名必须为protkdat
框的困难, 通过利用 UI 对话框和 VC++6.0 方便的建立了鼓纸零件和模具参数驱动自动生成技术, 为企 业设计零件和模具节省了时间, 同时提高了产品精度。 关键词: Pro/TOOLKIT; 参数化设计; 二次开发; VC ++6.0 【Abstract】 Is has a particular study on parametric design system based on secondary development of Pro/Toolkit, the parametric drive automatic technology which made use of UI dialog box and VC++6.0 is so it reduces the time used on designing parts and dies, and also increases used on conepaper and its die, the products precision. Key words: Pro/TOOLKIT; Parametric design; Secondary development; VC ++6.0 中图分类号: TH16, TP391 文献标识码: A
Pro/TOOLKIT 对 Pro/E 二次开发参数化设计系统研究 * 缪燕平等:
VC++6.0 开发环境里建立一个空工程;
第9期
2.3 可执行文件在 Pro/E 中注册并运行
要使可执行文件能够集成到 Pro/E 当中并可以运行, 必须制 作一个后缀为 · dat 的注册文件。文件格式如下:
name<应用程序名称> startup<工作模式 Spawn 或 d l l > exec_file<可执行文件或动态连接库的位置> text_dir<资源文件 (菜单文件、 对话框文件、 窗口信息文件 ) 的位置> revision<版本号> end<结束>
Void CMy Dialog∷OnMove () (int x, inty ) { ( PRO_VALUE_UNHUSED ) ; ProWindow Refresh ∥Pro/TOOLKIT 提供的刷新窗口函数; } 图 2 Pro/TOOLKIT 的程序结构 图 3 菜单结构
3.2 系统环境定制
3.3 设计鼓纸零件和模具输入对话框
具体步骤如下: (1 ) 利用 VC++的资源编辑器制作对话框, 主要完成参数化 设计的用户交互工作; (2 ) 添加基于该对话框的类 (此处为 CShaft 类 ) , 添加必要的 成员变量和成员函数。
[3]
。在这种模式下, 应用程序代码经过编译和连接, 生成独立的执行
文件。 该文件由 Pro /ENGINEER 派生, 并作为 Pro /ENGINEER 的
图 1 参数化设计系统结构 *来稿日期: 2007-11-18 *基金项目: 江西省自然科学基金项目 (550015 )
子进程运行。
- 186 -
这里, C My Dialog 是一个对话框类, 其中, ProWindowRefresh (PRO_VALUE_UNHUSED ) 实现对当前窗口的刷新, 用户也可以 使用 ProWindowRepaint(PRO_VAL2UE_UNHUSED ) 刷新当前窗 口前者仅仅将当前窗口重绘, 不会有任何改变; 后者在重绘窗口 的同时, 将消除当前的高亮显示具体使用哪个函数, 可以视具体 情况而定[5]。