Proe应用ProTOOLKIT二次开发

合集下载

基于Pro/TOOLKIT的Pro/E二次开发技术研究

基于Pro/TOOLKIT的Pro/E二次开发技术研究
启 动 P o NGI / E N E
锁 定 的 应 用 程 序 在 载 入 到 Po N NE R进 程 中 r/ GI E E
时 会 在 启 动 时 发 生 错 误 。 在 此 ,笔 者 建 议 大 家 用

种 新 方法 即可 解决这 个 问题 :在 P oE I E R r/NG N E
择 MF L项 目类 型 ,如 果 要使 用 多进 程 模 式 , CDL 则创 建程 序 时选择 MF XE项 目类型 Ⅲ。本 文主 CE
要 采 用 DL L模式 。
由参 考 文献 【】 3 可知 ,在 对 Po 4 r /  ̄进 行二 次 E 开发 的 VC软 件升级 至 V sa Su i 0 5 i l tdo2 0 ,因此在 u 开 发过 程 中势 必 有 一 些 变 化 。在 此 ,笔 者 针 对 其 开发 过程给 予 一 些讲 解 ,以供参 考 。
具 包 , 还 包 含 基 于 PoWe ik的 二 次 开 发 过 r/ bLn 程 ,这 种 方 法 使 用 的语 言 是 jv sr t 以 网 页 的 a aci , p 形 式 来 访 问 模 型 ;和 基 于 VBAP 的 二 次 I 开 发 过 程 。PoE Wi f e40开 始 可 以 采 用 V sa r / l i . dr i l u
r / P o NGI E E NE R系 统 同 步 运 行 。 同 步 运 行 并 非 并 行运 行 , 同步 的意 思是 Po O KI r / OL T应 用程 序 集 T
成 到 P oE I E R 系 统 中 , 若 Po NG N E r/NG N E r / E IE R
23 新 建项 目和设 置开 发环境 .
211异步模式 ..

Pro_TOOLKIT对Pro_E二次开发参数化设计系统研究

Pro_TOOLKIT对Pro_E二次开发参数化设计系统研究

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 集成的方法

基于PRO_TOOLKIT的PRO_E二次开发技术的应用_张红旗

基于PRO_TOOLKIT的PRO_E二次开发技术的应用_张红旗

基于PRO/TOOLKI T的PRO/E二次开发技术的应用张红旗,曹文钢,姜康,李宗照(合肥工业大学机械与汽车工程学院C AD/CAM中心,安徽合肥230009)摘要:本文论述了实施二次开发对企业的重要性。

对于即将在三维C AD软件上进行二次开发的企业提出了开发过程中值得注意的问题,如开发系统的目的、开发工具的选取等。

作者通过在软件PRO/E中以Pro/toolki t为开发工具开发的/汽车前轴零件设计系统0,进一步阐述了实施Pro/toolki t二次开发时基本步骤和源文件的编写、可执行文件的生成和可执行文件在PRO/E中的注册运行等关键技术。

最后,作者通过在PRO/E中的开发实践论证了二次开发是企业提高设计能力、增强竞争力的必要手段。

关键词:Pro/toolki t;二次开发;前轴Application of the Pro/toolkit-based Redevel Opment Technology in the PRO/EZhang Hongqi,Cao Wengang,Jiang Kang,Li Zongzhao(School of Mechanical and Automobile Engineering,Hefei University of Technology Hefei,230009) Abstract:Introduced by authors in the paper was the i mportance of the redevelop ment for the en terprise1It suggested those enterprises that were to apply the redevelop ment on the3D C AD software should pay more attention to the following factors,such as the ai m of the redevelopment, the tool of the redevelop ment,etc1By means of Pro/toolkit on the software PRO/E,it has redeveloped a design system of the front axle of the auto-mobile1Through this system,i t further expounded in detail the basic steps and the key technologies which including how to wri te,how to compile and link source files and how to register and run the resulting application in PRO/E1Finally,i t demonstrated that the redevelop ment was a necessary way for the enterpri se to improve developmen t abili ty and competitive capability,through develop ment practices in PRO/E1 Keywords:Pro/toolki t;Redevelopment;Front axle of the automobile0前言日益激烈的市场竞争要求现代企业必须低成本、高效率的开发新产品,全面提高对市场的快速响应能力。

Proe应用ProTOOLKIT二次开发

Proe应用ProTOOLKIT二次开发

手把手教你开发Pro/TOOLKIT应用程序1前言本教程采用VS2008 + Pro/E Wildfire5。

0来讲解怎样开发Pro/TOOLKIT应用程序.开发Pro/TOOLKIT应用程序时,Pro/E和Visual Studio的版本需对应,否则很难搭建开发环境,其对应关系如下:•Wildfire 4。

0 〈〉 VS2008•Wildfire 5.0 <> VS2008•Creo 1。

0 <〉 VS2010•Creo 2.0 〈> VS2010本教程所述的方法完全适用于Wildfire4。

0 + VS2008、Creo1。

0 + VS2010、Creo2.0 + VS2010。

2一、准备1.Pro/TOOLKIT在安装Pro/E时,默认是不安装Pro/TOOLKIT的,必须选中【API工具包】节点下的Pro/TOOLKIT选项。

可以通过运行:[Pro/E安装目录]/bin/ptcsetup.bat 查看有无安装Pro/TOOLKIT。

2。

VS2008VS2008中文版下载地址:http://pan。

baidu。

com/s/1ntt7PH3最好安装下VS2008 SP1补丁,否则编译Debug版本时常会报错.VS2008 SP1中文版下载地址:http://www。

microsoft。

com/zh—CN/download/details。

aspx?id=13276如果你需要开发64位的Pro/TOOLKIT程序,请确保安装X64 Compilers andTools,如下图所示:3二、新建工程点击【文件】—〉【新建】—〉【项目】菜单命令,创建MFC DLL工程. 输入工程名称:test_wf5。

单击【确定】,然后在弹出的对话框中单击【下一步〉】DLL类型:使用共享 MFC DLL单击【完成】完成创建工程。

4三、配置工程属性1。

新增64位编译平台注意:如果只编译32位程序,请跳过此步骤。

PROE二次开发

PROE二次开发

PROE二次开发做PROE毕业设计,初始设置完VS2005中C++的各种设置,用protoolkit对PROE二次开发,但是这段程序在做完编译的时候出现了三个错误两个是未声明的标识符跟一个重新定义清帮我看看到底是哪里错了#include "ProMenu.h"#include "ProUtil.h"#include "ProMenubar.h"extern “C” int user_initalize(){ProError atatus;//用户接口程序return status;}extern “C” void user_terminate(){//结束代码}extern "C" int user_initialize(){ProError status;ProFileName message_file;uiCmdCmdId cmd_idl;ProFileName Msgfile;ProStringT oWstring(MsgFile,"Message 2.txt");status = ProMenubarMenuAdd("CHECK","CHECK","Utilities", PRO_B_TRUE,MsgFile);status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,PRO_B_TRUE,&cmd_idl);status = ProMenubarmenuPushbuttonAdd("CHECK","messagebox","mes sagebox","Active messagebox menu",NULL,PRO_B_TRUE,cmd_idl,ProStringT oWstring(message_file,"Message2.txt"));return status;}int messagebox()//消息框{AfxMessageBox(_T("第一个程序!"));//弹出一个消息框return(0);}由正常的齿轮三视图生成的代码,怎么能够改成全剖视图的呢下面是视图矩阵的一些代码static ProMatrix identity_matrix = { {1.0, 0.0, 0.0, 0.0},////单元矩阵{0.0, 1.0, 0.0, 0.0},{0.0, 0.0, 1.0, 0.0},{0.0, 0.0, 0.0, 1.0}};void ProUtilMatrixCopy(double input[4][4],double output[4][4]){int i,j;if(input == NULL){for(i=0;i<4;i++)for(j=0;j<4;j++)output[i][j] = identity_matrix[i][j];}else{for(i=0;i<4;i++)for(j=0;j<4;j++)output[i][j] = input[i][j];}}/*--------------------------------------------------------------------*\创建一般视图\*--------------------------------------------------------------------*/ProUtilMatrixCopy(NULL, matrix);pos[0] = 200.0;pos[1] = 600.0;pos[2] = 0.0;ProDrawingGeneralviewCreate(drawing, solid, sheet, PRO_B_FALSE,pos, 1, matrix, &view);应部分坛友短信我的要求,现将下列两个函数的代码附上:ParamGetAndShow() //功能:获取模型参数,显示并初始化对话框控件值ParamUpdate() //功能:修改对话框控件值,更新模型参数/*===================================== =============================*\函数:ParamGetAndShow()功能:从零部件模型中获得参数值,并在相应的输入框中显示\*===================================== =============================*/void ParamGetAndShow(char *dialog,char *component,char *Name){ProMdl mdl;ProModelitem modelitem;ProMdlCurrentGet(&mdl);ProMdlToModelitem(mdl,&modelitem);int iparam;double dparam;ProName pname;ProParameter param;ProParamvalue value;ProStringT oWstring(pname,Name);//根据指定的参数名获得参数对象指针ProParameterInit(&modelitem,pname,&param);//获得参数值ProParameterValueGet(&param,&value);//根据参数值的类型,显示在相应类型的输入框中if(value.type==PRO_PARAM_DOUBLE){dparam=value.value.d_val;ProUIInputpanelDoubleSet(dialog,component,dparam);}if(value.type==PRO_PARAM_INTEGER){iparam=value.value.i_val;ProUIInputpanelIntegerSet(dialog,component,iparam);}ProParameterValueSet(&param,&value);}/*===================================== =============================*\函数:ParamUpdate()功能:更新参数值\*===================================== =============================*/void ParamUpdate(char *dialog,char *component,char *Name){ProMdl mdl;ProModelitem modelitem;ProParameter param;ProParamvalue value;ProName pname;ProStringT oWstring(pname,Name);int iparam;double dparam;ProMdlCurrentGet(&mdl);ProMdlToModelitem(mdl,&modelitem);ProParameterInit (&modelitem,pname,&param); ProParameterValueGet(&param,&value);if(value.type==PRO_PARAM_DOUBLE){ProUIInputpanelDoubleGet(dialog,component,&dparam); value.value.d_val=dparam;}if(value.type==PRO_PARAM_INTEGER){ProUIInputpanelIntegerGet(dialog,component,&iparam); value.value.i_val=iparam;}ProParameterValueSet(&param,&value);}int ProUtilStringGet(wchar_t *p_wstr, wchar_t *p_default, int max_len){wchar_t str[PRO_PATH_SIZE];if(ProMessageStringRead(max_len, str)!=0){if (p_default == NULL)return (0);ProUtilWstrcpy(p_wstr, p_default);return (1);}ProUtilWstrcpy(p_wstr, str);return (1);}尺寸表示似乎只能从实体遍历中得到。

Pro_E二次开发在机构自动装配中的应用

Pro_E二次开发在机构自动装配中的应用

1引言Pro/E 是当今最为流行的CAD/CAE/CAM 一体化软件之一,Pro/TOOLKIT 是其自带的二次开发工具包。

在Pro/TOOLKIT 中,PTC 向用户提供了大量的C 语言函数库,函数采用面向对象的风格。

通过调用这些底层函数,用户能方便而又安全地访问Pro/E 的数据库及内部应用程序,进行二次开发,扩展一些特定功能[1,2,3]。

本文通过实例说明了应用Pro/toolkit 开发机构自动装配模块的方法。

2自动装配模块的开发Pro/E 中通过Pro/TOOLKIT 工具包开发自动装配模块,首先就是要确定装配元件的位置,位姿和运动方式,通过一个位姿矩阵和运动矩阵就可以有效描述装配空间中装配模型的信息。

装配元件的位置和姿态是通过采用一个位4×4姿矩阵[P ]来决定的。

装配元件从当前的关键位姿点K p 运动到另一关键位姿点K p1,实际上是等价于原位姿发生了一个矩阵变换,到达了一个新的位姿[P 1]。

2.1确定坐标系的位置和姿态我们在两个零部件上设定坐标系,然后让两个坐标系重合实现自动装配。

通过在配合的两个零部件的对应位置建立名字一致的坐标系来实现的。

首先是选择确定两模板上坐标系的位置和姿态,保证零部件正确配合的坐标系位置和姿态是唯一的,选择的原则是保证两零部件在当两个对应的坐标系重合时两零部件能正确配合。

因为一个零部件可能需要与多个零部件之间形成装配关系,因此一个零部件模板上可能需要设定多个坐标系。

给坐标系取名的目的就是使两个零部件对应的坐标系重合,而不至于与其它的坐标系重合。

如图1所示在轴段上设计一键,可以在轴段模板的键槽位置处创建坐标系Shaft_Key_CS1,同时在键的模板匹配位置处也定义坐标系Shaft_Key_CS2,这样当这对坐标系重合时轴段上键槽能与键正确配合。

2.2编写伪代码以图2凸轮与轴装配为例,下面给出Assemble 函数的伪代码如下:Assemble (cam_shaft,cam,shaft ){……./*获取凸轮参考系句柄*/sprintf(acsys name,cam_shaft_CS1");pro_str_to_wstr(ref_csys_name,acsys_name );status=prodb_find_csys ((Prohandle )p_cam,ref_csys_name,&ref_csys );……./*获取凸轮参考系句柄*/pro_str_to_wstr(base_csys_name,"cam_shaft_CS2");status=prodb_find_csys((Prohandle )p_shaft,base_csys_name,&base_ref_csys );/*装配部件*/Asm_ref->offset=0;Asm_ref->orientl=0;asm_ref->orient2=0;status=prodb_assemble_component ((Prohandle )p_asm,(Prohandle )p_cam,1,asm_ref,&dim_id_array,&asm_status );…….}另外,在装配过程中,如果同一装配体中多个同样装配关系(如同一轴上装配多个键或轴承),在这里有一个交互处理的过程,具体如下:当载入一个键(或者轴承)时,用鼠标拾取欲装配的键槽轴段,那么通过坐标系重合,实现了该处的自动装配,其它地方同样处理。

ProENGINEER二次开发(protoolkit)

ProENGINEER二次开发(protoolkit)

ProENGINEER二次(protoolkit)开发环境的搭建Pro/TOOLKIT是Pro/ENGINEER的一个应用程序接口(API),其的编程语言是C 语言,它可以对Pro/ENGINEER进行功能扩展,满足PTC客户的特定需求。

而且,Pro/TOOLKIT 提供了定制标准Pro/ENGINEER用户界面的能力,自动执行重复性的程序,通过Pro/ENGINEER集成的内部程序(Dll)或外部应用程序(Exe)可以为造型用户提供自定义的应用程序、设计规划和绘图自动化。

一、首先安装好VS2005与proeWildfire 4.0因为本文讲述的是在VS2005+proeWildfire 4.0的环境下,所以在进入实战之前先得自行安装好相关的工具。

至于VS2005和proeWildfire 4.0的安装,本文中就不再累述了。

二、VS2005包含文件和库文件设置打开VS2005,工具->选项->项目和解决方案->VC++目录,如图所示:包含文件(添加图中前三个目录即可)图1 包含文件设置包含文件在proeWildfire4.0安装目录下的protoolkit和prodevelop下。

例如,安装在D:\ptc\proeWildfire 4.0下,包含文件分别是:D:\ptc\proeWildfire 4.0\protoolkit\includesD:\ptc\proeWildfire 4.0\protoolkit\protk_appls\includesD:\ptc\proeWildfire 4.0\prodevelop\includes再选择库文件(添加图中前两个目录即可)图2 库文件设置库文件在proeWildfire4.0安装目录下的protoolkit和prodevelop下。

例如,安装在D:\ptc\proeWildfire 4.0下,包含文件分别是:D:\ptc\proeWildfire 4.0\protoolkit\i486_nt\objD:\ptc\proeWildfire 4.0\prodevelop\i486_nt\obj完成以前两步我们开发环境基本上算是配置完成了。

PROE二次开发中protoolkit连接Access数据库的例子

PROE二次开发中protoolkit连接Access数据库的例子

PROE二次开发中pro toolkit连接Access数据库的例子
在这个类中加入打开数据库与关闭数据库的成员函数,并在对话框初始化时打开数据库,在对话框关闭时关闭数据库,如例子中的函数OpenDatabase、
CloseDatabase、OnInitDialog DestroyWindow
本文介绍了PROE二次开发中pro/toolkit连接Access 数据库的一个例子。

测试环境:WinXP sp2 + vc6.0 + MS Access 2000
1、在工程的stdafx.h头文件中引入ADO库文件,如果系
统不在C盘,请修改盘符
#import "c:\program files\common files\system\ado\msad
o15.dll" \
rename_namespace("myado") \
rename ("EOF", "adoEOF")
2、在要操作数据库的类中加入数据库指针,例中为对话框类CDlgData
myado::_ConnectionPtr m_pConnection;
3、在这个类中加入打开数据库与关闭数据库的成员函
数,并在对话框初始化时打开数据库,在对话框关闭时关闭
数据库,如例子中的函数OpenDatabase、CloseDatabase、O
nInitDialog DestroyWindow
4、操作表,如例子中的函数InitListBox。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

手把手教你开发Pro/TOOLKIT应用程序1前言本教程采用VS2008 + Pro/E Wildfire5.0来讲解怎样开发Pro/TOOLKIT应用程序。

开发Pro/TOOLKIT应用程序时,Pro/E和Visual Studio的版本需对应,否则很难搭建开发环境,其对应关系如下:•Wildfire 4.0 <> VS2008•Wildfire 5.0 <> VS2008•Creo 1.0 <> VS2010•Creo 2.0 <> VS2010本教程所述的方法完全适用于Wildfire4.0 + VS2008、Creo1.0 + VS2010、Creo2.0 + VS2010。

2一、准备1.Pro/TOOLKIT在安装Pro/E时,默认是不安装Pro/TOOLKIT的,必须选中【API工具包】节点下的Pro/TOOLKIT选项。

可以通过运行:[Pro/E安装目录]/bin/ptcsetup.bat 查看有无安装Pro/TOOLKIT。

2.VS2008VS2008中文版下载地址:最好安装下VS2008 SP1补丁,否则编译Debug版本时常会报错。

VS2008 SP1中文版下载地址:如果你需要开发64位的Pro/TOOLKIT程序,请确保安装X64 Compilers andTools,如下图所示:3二、新建工程点击【文件】->【新建】->【项目】菜单命令,创建MFC DLL工程。

输入工程名称:test_wf5。

单击【确定】,然后在弹出的对话框中单击【下一步 >】DLL类型:使用共享 MFC DLL单击【完成】完成创建工程。

4三、配置工程属性1.新增64位编译平台注意:如果只编译32位程序,请跳过此步骤。

单击【生成】->【配置管理器】菜单命令,然后依照下图操作。

如果没有x64选项,那说明安装VS2008时,没有安装X64 Compilers and Tools,重新安装此选项即可。

2.新增头文件路径单击【项目】->【属性】菜单命令,添加如下头文件路径。

【Pro/E安装目录】\prodevelop\includes【Pro/E安装目录】\protoolkit\includes注意:请先选择平台是Win32还是x64。

3.新增库文件路径32位:【Pro/E安装目录】\prodevelop\i486_nt\obj 【Pro/E安装目录】\protoolkit\i486_nt\obj64位:【Pro/E安装目录】\prodevelop\x86e_win64\obj 【Pro/E安装目录】\protoolkit\x86e_win64\obj4.添加附加依赖项mpr.libwsock32.lib psapi.libprotk_dllmd.lib prodev_dllmd.lib netapi32.lib5.设置工程字符集推荐优先采用Unicode。

5四、添加Pro/TOOLKIT代码在test_wf5.cpp文件的最后添加以下Pro/TOOLKIT代码。

该段代码的功能是:在Pro/E的【帮助】菜单后新增一个菜单【TestMenu】,然后在【TestMenu】下新增两个菜单项【Test】和【ShowCurrModelName】。

分别实现弹出测试对话框和获取当前模型的名称并弹窗显示。

注意:先只要大体理解代码的整体思路即可,本教程会在第三篇:手把手教你开发Pro/TOOLKIT应用程序(三) 中具体阐明代码的所有细节,在学习完本篇和第二篇后,再去学习第三篇会比较好。

// 包含常用头文件#include <ProToolkit.h>#include <ProUtil.h>#include <ProMenuBar.h>#include <ProMenu.h>#include <ProMode.h>1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344 // 包含常用头文件#include <ProToolkit.h>#include <ProUtil.h>#include <ProMenuBar.h>#include <ProMenu.h>#include <ProMode.h>#include <ProMdl.h>#include <ProSolid.h>#include <ProAsmcomp.h>#include <ProArray.h>#include <ProModelitem.h>#include <ProLayer.h>// 函数声明uiCmdAccessState TestAccess(uiCmdAccessMode access_mode); uiCmdAccessState ShowCurrModelName_Access(uiCmdAccessMode access_mode);int Test(uiCmdCmdId command,uiCmdValue *p_value,void *p_push_command_data);int ShowCurrModelName(uiCmdCmdId command,uiCmdValue *p_value,void *p_push_command_data);// Pro/TOOLKIT入口函数extern "C" int user_initialize(){ProError err;// 信息文件名称ProFamilyName MsgFile;ProStringToWstring(MsgFile, "Test_Msg.txt");// 添加菜单:TestMenuerr = ProMenubarMenuAdd("TestMenu", "TestMenu", "Help", PRO_B_TRUE, MsgFile);// 添加命令和菜单项// 测试命令uiCmdCmdId cmd_id1;err = ProCmdActionAdd("Test", Test, uiCmdPrioDefault, TestAccess, PRO_B_FALSE, PRO_B_FALSE, &cmd_id1);err = ProMenubarmenuPushbuttonAdd("TestMenu", "Test", "Test","Test_Help",4546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 NULL, PRO_B_TRUE, cmd_id1, MsgFile);// 显示并输出当前模型的名称uiCmdCmdId cmd_id2;err = ProCmdActionAdd("ShowCurrModelName", ShowCurrModelName, uiCmdPrioDefault,ShowCurrModelName_Access,PRO_B_FALSE, PRO_B_FALSE, &cmd_id2);err = ProMenubarmenuPushbuttonAdd("TestMenu", "ShowCurrModelName", "ShowCurrModelName","ShowCurrModelName_Help", NULL, PRO_B_TRUE, cmd_id2, MsgFile);return 0;}// Pro/TOOLKIT结束时调用的函数extern "C" void user_terminate(){}// 测试命令响应函数int Test(uiCmdCmdId command,uiCmdValue *p_value,void *p_push_command_data){AfxMessageBox(_T("Just For Test"));return 0;}// 命令:获取当前模型的名称并显示int ShowCurrModelName(uiCmdCmdId command,uiCmdValue *p_value,void *p_push_command_data){ProError err;// 获取当前模型ProMdl mdl;err = ProMdlCurrentGet(&mdl);if (PRO_TK_NO_ERROR != err){return -1;}89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 // 获取当前模型名称并显示ProName name;err = ProMdlNameGet(mdl, name);MessageBoxW(NULL, name, L"wf5 test", MB_OK);return 0;}// 测试命令 菜单权限函数// 任何情况下菜单都有效uiCmdAccessState TestAccess(uiCmdAccessMode access_mode){return ACCESS_AVAILABLE;/*ProError err;ProMode mode;err = ProModeCurrentGet(&mode);if (err != PRO_TK_NO_ERROR){return ACCESS_UNAVAILABLE;}if (mode == PRO_MODE_PART|| mode == PRO_MODE_ASSEMBLY){return ACCESS_AVAILABLE;}else{return ACCESS_UNAVAILABLE;}*/}// 获取当前模型名称并显示 菜单权限函数// 只有在当前打开的模型为PART 档,ASM 档或Drawing 档时菜单才有效uiCmdAccessState ShowCurrModelName_Access(uiCmdAccessMode access_mode) {ProError err;ProMode mode;err = ProModeCurrentGet(&mode);if (PRO_TK_NO_ERROR != err)133 134 135 136 137 138 139 140 141 142 143 {return ACCESS_UNAVAILABLE;}if (mode == PRO_MODE_PART|| mode == PRO_MODE_ASSEMBLY|| mode == PRO_MODE_DRAWING){return ACCESS_AVAILABLE;}else{return ACCESS_UNAVAILABLE;}}代码说明:1. user_initialize()为Pro/TOOLKIT 应用程序的入口函数,每个Pro/TOOLKIT 程序在被Pro/E 加载时,首先执行此函数。

相关文档
最新文档