史上最全ProE二次开发测试及环境配置方法

更新时间:2023-11-06 20:28:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

32位系统preo5.0二次开发测试及环境配置

首先,proe5.0是配合VC++2008来进行二次开发的,因此首先得安装VS2008,其次,要确保proe5.0中已经安装了protoolkit,安装方法略。

如何测试Pro/Toolkit安装成功

第一步,找到proe安装目录下的protooltik文件夹,并找到..\\protoolkit\\i486_nt\\obj这个路径下的一个叫做make_install的文件,用写字板打开,找到如下 # Pro/Toolkit Source & Machine Loadpoint (EXTERNAL USE - DEFAULT)

这么一行字,然后把它下面的PROTOOL_SRC=../..改成PROTOOL_SRC = ...\\PTC\\protoolkit,保存下关闭就好了。

第二步,在“开始”中找到Microsoft Visuall Studio Tools?Visual Studio Tools?Visual Studio Tools2008命令提示符,打开。

第三步,在打开的这个界面里面敲下如下字符cd ...\\PTC\\protoolkit\\i486_nt\\obj,然后回车,再敲上如下字符:nmake /f make_install dll,然后再回车,等其运行完毕,关掉命令提示符,然后再回到...\\PTC\\protoolkit\\i486_nt\\obj文件夹中,会发现多了一个pt_inst_test.dll文件,证明前面的工作全是成功的。

第四步,回到...\\PTC\\protoolkit文件夹,找到protk.dat文件,用写字板打开,将第二行和第三行前面的“.”改成路径...\\PTC\\protoolkit,将第五行后面的“18”改成“wildfire5.0”,其他保持不变,保存,关闭。

第五步,启动proe5.0,找到工具?辅助应用程序,打开,点“注册”,找到...\\PTC\\protoolkit,里的protk.dat,打开,选中,点“启动”,发现左上角出现“’pt_inst_test.dll’启动成功”。关闭“辅助应用程序”。

第六步,打开“文件”菜单栏,会有一个“安装检测”,点击后,会出现“PRO/PROTOOLKIT安装检测成功”。至此,PRO/PROTOOLKIT安装检测全部完成。

配置VC++2008 Debug模式配置

第一步,加上PRO/TOOLKIT的包含文件和库文件,打开工具?选项?项目与解决方案?VC++目录显示以下内容的目录?包含文件,添加如下文件: ...\\PTC\\protoolkit\\includes

...\\PTC\\protoolkit\\protk_appls\\includes ...\\PTC\\prodevelop\\includes

...\\PTC\\prodevelop\\prodev_appls\\includes 将包含文件换为库文件,添加如下文件: ...\\PTC\\protoolkit\\i486_nt\\obj ...\\PTC\\prodevelop\\i486_nt\\obj

然后点击确定,包含文件和库文件加载完毕。

第二步,新建一个MFC工程,打开项目?属性?配置属性?链接器?输入,在附加依赖项中输入以下代码:

(若为MFC DLL文件) wsock32.lib mpr.lib

protk_dllmd.lib prodev_dllmd.lib psapi.lib netapi32.lib

(若为MFC应用程序工程) wsock32.lib mpr.lib

protk_dllmd.lib prodev_dllmd.lib psapi.lib netapi32.lib

pt_asynchronous.lib

在忽略待定库中,添加libcmtd。

第三步,打开项目?属性?配置属性?C/C++?预处理器?预处理器定义中添加命令 PRO_USE_VAR_ARGS。

(若为异步模式,异步模式其他设置请参考文献[1]) wsock32.lib mpr.lib psapi.lib netapi32.lib

pt_asynchronous.lib protkmd.lib prodevelop.lib prodevmd.lib

在忽略待定库中,添加libcmtd。

第三步,打开项目?属性?配置属性?C/C++?预处理器?预处理器定义中添加命令 PRO_USE_VAR_ARGS。

Release模式配置

第一步,与Debug模式配置相同。

第二步,新建一个MFC工程,注意向导的第二步中应选择使用静态链接MFC库方式。 1、打开项目?属性?配置属性?调试?配置管理器中进行如下操作。

将配置选项改为“活动(Release)”

2、打开项目?属性?配置属性?常规,将“字符集”选项改为“使用多字节字符集”。 3、打开项目?属性?配置属性?C/C++?预处理器,在预处理定义中输入PRO_USE_VAR_ARGS和_AFXDLL,点击OK。

4、打开项目?属性?配置属性?C/C++?代码生成,将“运行时库”选项改为“多线程DLL/MD”。

5、打开项目?属性?配置属性?C/C++?语言,将“将wchar_t视为内置类型”改为“否(/Zcwchar_t-)”。

6、打开项目?属性?配置属性?链接器?输入,在附加依赖项中输入以下代码: wsock32.lib mpr.lib psapi.lib

protk_dllmd.lib prodev_dllmd.lib 配置完成。

第三步,测试程序。 1、添加头文件: #include \#include \#include \#include

#define MSGFILE \#pragma comment(lib, \

static uiCmdAccessState UserAccessTestMenu (uiCmdAccessMode); extern \入口函数 {

AfxEnableControlContainer(); ProError status;

ProName menumsgfile; uiCmdCmdId cmd_id;

//在Help菜单的右边添加“二次开发菜单” ProStringToWstring(menumsgfile,\ status=ProMenubarMenuAdd(\ return(0); }

static uiCmdAccessState UserAccessTestMenu(uiCmdAccessMode access_mode) { return (ACCESS_AVAILABLE); }

extern %user_terminate() // 出口函数 { AFX_MANAGE_STATE(AfxGetStaticModuleState()); }

2、创建注册文件protk.dat,内容如下: name Dtest startup dll

allow_stop TRUE delay_start FALSE

exec_file …\\Dtest\\Release\\Dtest.dll text_dir …\\Dtest\\text revision widfire5.0 end

3、在Dtest文件夹中创建text文件夹,在text文件夹内创建usermsg1.txt文件,内容如下:

USER Menu() 二次开发菜单 # #

4、注册运行。

64位系统preo5.0二次开发环境配置

64位操作系统的环境配置与32位的有所不同,首先64系统需要在X64平台上进行调试,而不是在默认的Win32上,其次,在添加PRO/PROTOOLKIT的包含文件和库文件时,打开工具?选项?项目与解决方案?VC++目录显示以下内容的目录?包含文件,此时平台要注意选用X64平台,在包含文件和库文件中添加和32位系统里一样的include文件和obj文件: ...\\PTC\\protoolkit\\includes

...\\PTC\\protoolkit\\protk_appls\\includes

...\\PTC\\prodevelop\\includes

...\\PTC\\prodevelop\\prodev_appls\\includes 将包含文件换为库文件,添加如下文件: ...\\PTC\\protoolkit\\i486_nt\\obj ...\\PTC\\prodevelop\\i486_nt\\obj

这里要多出一步,将库文件转换为可执行文件,并添加如下内容: $(SystemRoot)\\System32 $(SystemRoot)

$(SystemRoot)\\System32\\wbem

(注:若不加载此项,会提示诸如无法生成“cmd.exe”的错误。

然后点击确定,包含文件和库文件和可执行文件加载完毕。这时再运行程序,就不会出现错误。

二次开发基础知识

1、 菜单栏菜单的添加(Pro/E二次开发技术基础P103)

菜单栏菜单是Pro/E菜单体系的最顶层菜单,ProMenubarMenuAdd()是完成菜单栏菜单添加的函数 2、 菜单按钮的添加

单击某个菜单按钮后,应能调用某个函数,因此它的添加过程分为两步:首先是添加动作函数和菜单按钮,然后把动作函数和菜单按钮联系起来,作为菜单按钮的响应函数。 2.1 菜单动作函数的添加

在将菜单按钮和动作函数联系起来之前,先在程序主文件的头文件中定义动作函数,Pro/E中,将菜单按钮和动作函数联系起来的函数是ProCmdActionAdd(),该函数将返回一个uiCmdCmdId类型变量,此变量用来表示动作函数的标识,在添加菜单项菜单时需要提供动作函数的标识。 2.2 菜单按钮的添加

向菜单栏菜单中添加菜单按钮的函数是ProMenubarmenuPushbuttonAdd() 3、 复选菜单按钮的添加

添加复选按钮之前也需要设置复选按钮的响应函数、复选按钮初始状态函数。使用复选按钮的过程中,需要有可以得到按钮状态值以及设置按钮状态值的函数。因此添加一个复选框菜单按钮需要用到四个函数: ProCmdOptionAdd();选项设置命令函数的添加 ProMenubarmenuChkbuttonValueGet();复选按钮状态值的获取 ProMenubarmenuChkbuttonValueSet();复选按钮状态值的设置 ProMenubarmenuChkbuttonAdd()。向菜单项菜单添加复选按钮的函数 4、 单选菜单按钮的添加

添加一组单选按钮需要用到四个函数: ProCmdOptionAdd();选项设置命令函数的添加 ProMenubarMenuRadiogrpValueGet();单选按钮组值的获取 ProMenubarMenuRadiogrpValueSet();单选按钮组值的设置 ProMenubarMenuRadiogrpAdd()。单选按钮组的添加函数

单选按钮的添加与复选按钮的添加很相似,不过单选按钮是以组的形式来添加,同一组中的单选按钮只有一个单选按钮被选中。 5、 菜单栏菜单的下级菜单

在下一个菜单栏菜单下除了一般按钮、复选按钮、单选按钮之外,还可以添加子菜单。在子菜单下也能够添加一般按钮、复选按钮、单选按钮、子菜单。函数是 ProMenubarmenuAdd() 6、 菜单按钮的图标设置

Pro/E的菜单可以有图标,按钮被添加到工具栏上面时会以图标的形式显示。函数是ProCmdIconSet() 7、 对原有菜单的操作

对原有菜单按钮可以进行的操作有:改变菜单的访问控制函数,使菜单无效、隐藏、移除等等,还可以在菜单按钮动作函数执行之前或之后执行自定义函数,实现这些功能主要有以下几个函数: ProCmdCmdIdFind(); ProCmdAccessFuncAdd(); ProCmdAccessFuncRemove(); ProCmdBracketFuncAdd(); 具体用法可查帮助。 8、 常用Pro/TOOLTIK头文件

ProUtil.h是常用的头文件,在这个头文件内定义Pro/TOOLTIK的基本数据类型以及常用函数,如:ProStringToWstring()、ProWstringToString()、ProFileOpen()、ProDirectoryChoose()、ProPathCreate()等。

ProMenu.h这个文件内定义了一些菜单按钮的操作,如ProMacroExecute()、ProMacroLoad()、ProMenuVisibilityGet()。

ProMenuBar.h定义了添加菜单工具栏菜单、菜单按钮时用到的函数。

ProWindows.h里定义了进行窗口操作的函数,如ProWindowCurrentGet()、ProWindowRefresh()、ProWindowCurrentSet()、ProObjectwindowGreate()、ProWindowActivate()等等。

ProMdl.h、ProSolid.h定义了用于对模型进行操作的函数,如获得当前模型、获得模型类型等等很多函数。

ProDimension.h定义了对尺寸操作的函数。 ProParameter.h定义了对参数进行操作的函数。 ProParamval.h定义了对参数的值进行操作的函数。 ProRelSet.h定义了对关系进行操作的函数。

ProModelitem.h定义了对模型项进行操作的函数。 ProFeature.h定义了用于特征操作的函数。 9、 对象句柄

Pro/TOOLKIT中,每个对象都由一个标识符来标识,利用标识符就可以调用所对应的对象,这个标识符就是对象句柄。

句柄是Windows用来标识被应用程序所建立或使用的对象的唯一整数。Windows使用各种各样的句柄标识诸如应用程序实例、窗口、控制、位图、GDI等对象。 10、 常用函数及形式

Get获得,用来获取对象的某个数据。这类函数的输入是基本数据对象,输出是基本数据对象的某一

信息。常用的函数有:

ProMdlCurrentGet(ProMdl *p_handle)//获得当前的模型。 ProDirectoryCurrentGet(ProPath path)//获得当前的工作路径。

ProMdlTypeGet(ProMdl model, ProMdlType *p_type)//获得当前模型的类型,模型的主要

类型是指零件模型、组件模型和工程图模型。

ProMdlDataGet(ProMdl handle, ProMdldata *p_data)//获得模型的数据,通过这个函数可以获得模型名称以及模型的类型,模型的存放位置等信息。 ProWindowCurrentGet(int *p_window_id)//获得当前的窗口。

ProModelitemMdlGet(ProModelitem *p_model_item, ProMdl *p_owner)//获得模型项所属的模型句柄。

Set设置,用来设置对象的函数值。它也是以基本数据对象作为输入,并输入需要设置的变量的值,常用的函数有:

ProDimensionValueSet(ProDimension *dimension, double *value)//设置尺寸的值。 ProDimensionSymbolSet(ProDimension *dimension, ProName symbol)//设置尺寸的符号。

ProParameterValueSet(ProParameter *param, ProParamvalue *proval)//设置自定义参数的值。

ProMenubuttonVisibilitySet(ProMenuName menuname,ProMenubuttonName button,ProBoolean visible)//设置菜单按钮的可见性(自己定义的菜单)。

ProAsmcompTypeSet(ProAsmcomp *comp,ProAssembly top_assem,ProAsmcompType Type)//设置组件(装配体)的元件类型。

Visit访问,用来访问数据对象内的一组数据集合,如访问零件模型的特征等。这类函数的输入参数通常是要被访问的数据对象以及访问的动作函数和过滤函数。 ProError ProSolidFeatVisit(ProSolid p_handle,//模型的句柄 ProFeatureVisitAction visit_action,//访问动作函数 ProFeatureFilterAction filter_action,//访问过滤函数 ProAppData app_data//访问过程中传递的数据 )//访问模型的特征

ProFeatureDimensionVisit(ProFeature *feature,//特征的指针地址 ProDimensionVisitAction visit,//访问动作函数 ProDimensionFilterAction filter,//访问过滤函数 ProAppData data//访问过程中传递的数据 )//访问特征的尺寸

ProParameterVisit(ProModelitem *owner,//模型项的指针地址 ProParameterFilter filter,//访问过滤函数 ProParameterAction action,//访问动作函数 ProAppData data//访问过程中传递的数据 )//访问模型项的自定义函数 11、 关于ProError

Pro/TOOLKIT函数的返回值类型基本上都是ProError,ProError是一个枚举数据类型,它定义了所有可能的返回值。具体返回值种类见(P17页)

参考文献

[1]王文波. Pro/E Wildfire 4.0二次开发实例解析[M]. 清华大学出版社, 2010.

本文来源:https://www.bwwdw.com/article/ohg2.html

Top