VS2008对PROE5.0二次开发设置详解

合集下载

ProE5.0+VS2008开发环境配置

ProE5.0+VS2008开发环境配置

ProE 5.0+ VS2008二次开发环境配置一新建一个VS dll库与Proe的连接1 建立静态链接库选择File-New-Project新建工程,打开图1所示对话框,name输入文件名自定义(Dtest),Location自定义(E:\VS2008),点击OK确定:图1图2图3(在向导的第二步中选择使用静态链接MFC库方式)2进行工程属性配置新建dll工程后,在新建的工程文件菜单栏中选择Project菜单—--选择属性properties命令,然后进行如下操作:图4(属性配置,注意在Release下进行编译)Release配置1图5 (Release配置2)图6(选择Release后,进行基本配置,采用多字节字符集)图7 (添加处理器预定义PRO_USE_V AR_ARGS,_AFXDLL)图8 (设置运行时库为/MD)图9 (设置语言选项)图10 (添加库依赖wsock32.lib,mpr.lib,psapi.lib,protk_dllmd.lib)3进行工具选项配置(此项配置可以只进行一次,以后创建新的proe二次开发工程时此项操作可以不做修改)单击Tools菜单下—选择options命令进行添加include文件和lib文件搜索路径配置,图11(Include路径:..\ protoolkit\includes;.. \protoolkit\protk_appls\includes;.. \prodevelop\includes;.. \prodevelop\prodev_appls\includes;)图12(Lib路径:..\protoolkit\i486_nt\obj;..\prodevelop\i486_nt\obj;)4函数实现添加头文件:#include "ProMenubar.h"#include "ProMenu.h"#include "ProUtil.h"#include <ProToolkit.h>#define MSGFILE "message.txt"#pragma comment(lib, "netapi32")static uiCmdAccessState UserAccessTestMenu (uiCmdAccessMode);extern "C" int user_initialize()// 入口函数{AfxEnableControlContainer();ProError status;ProName menumsgfile;uiCmdCmdId cmd_id;//在Help菜单的右边添加“二次开发菜单”ProStringToWstring(menumsgfile,"usermsg1.txt");status=ProMenubarMenuAdd("Menu0","USERMenu0","Help",PRO_B_TRUE,menumsgfile );return(0);}static uiCmdAccessState UserAccessTestMenu(uiCmdAccessMode access_mode){return (ACCESS_A V AILABLE);}extern "C" void user_terminate() // 出口函数{AFX_MANAGE_STATE(AfxGetStaticModuleState());}5 进行应用注册设置,选择盘符创建文件(在此选择E:\VS2008\Dtest下创建Protk.dat 文件)图13(protk文件内容设置)(name Dteststartup dllallow_stop TRUEdelay_start FALSEexec_file E:\VS2008\Dtest\Release\Dtest.dlltext_dir E:\VS2008\Dtest\textrevision 1000end )6 进行菜单文字显示设置,选择当前目录下创建text文件夹,如图14,15所示:图147 打开proe---Tools菜单----Auxiliary application命令,按图进行操作,观察结果图16 操作过程二将已经建好的project拷贝到另一台电脑使用只需要修改其菜单Tools下的option属性,因为其本身的properties属性应经定义好。

ProE二次开发教程

ProE二次开发教程

ProE二次开发教程Pro/ENGINEER Wildfire4.0 &Microsoft Visual Studio 2005 实现二次开发首个测试作者:无维网TomLee今天终于有时间玩一玩,Microsoft Visual Studio 2005还不熟悉,还要继续摸索: 下面我把我的测试成功的例子做个教程,希望对需要配置新环境进行开发的朋友有所帮助!新建项目新建MFC DLL默认下一步默认完成新建开始创建程序代码代码部分的解释如下:extern "C" int user_initialize(int argc, /** Number of arguments **/char *argv[], /** Pro/E arguments **/ char *proe_vsn, /** Pro/E version **/ char *build, /** Pro/E build **/ wchar_t err_buff[]) /** Error buffer **/ {ProName msgFileName;ProStringToWstring(msgFileName,"message.txt");ProMessageDisplay(msgFileName, "USER Welcome you!");return 0;}extern "C" void user_terminate(){return;}这里我只使用了一个ProMessageDisplay函数来做信息显示功能的测试,本教程的主要目的在于配置编译环境,所以未设置任何功能,甚至菜单都没加:lol包含文件的设置(include)库文件(lib)项目设置,附加的库wsock32.libmpr.libpsapi.libprotk_dllmd.lib(此处接见湃睿技术社区byan的设置)项目设置,预处理器定义添加:PRO_USE_VAR_ARGS,这个是使用ProMessageDisplay函数的需要不管选择Win32 Release 还是Win32 Debug设置都相同,但是不知道什么原因,编译时很多警告,同时我编译成功的Debug 下面的dll不能用,只能用Release,原因不明,欢迎讨论编译警告信息如下:------ 已启动生成: 项目: ProMessageDisplay, 配置: Release Win32 ------正在编译...stdafx.cpp正在编译...ProMessageDisplay.cpp正在编译资源...正在链接...正在创建库c:\toolkit_test\ProMessageDisplay\Release\ProMessageDisplay.lib 和对象c:\toolkit_test\ProMessageDisplay\Release\ProMessageDisplay.exp正在生成代码已完成代码的生成protk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btk_vfprintfprotk_dllmd.lib(windows_32.obj) : warning LNK4049: 已导入本地定义的符号_btk_vfprintfprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btk_vprintfprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btk_vwprintfprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btk_vsprintfprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btk_vfwprintfprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btk_vswprintfprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_vswprintfprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btk_vsnprintfprotk_dllmd.lib(windows_32.obj) : warning LNK4049: 已导入本地定义的符号_btk_vsnprintfprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btk_vscanfprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btk_vwscanfprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btk_vfscanfprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号protk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btk_vsscanfprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btk_vswscanfprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf16ToWideprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf16ToWideprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf16ToEucprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf16ToEucprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf16ToNativeprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf16ToNativeprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf8ToWideprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf8ToEucprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf8ToNativeprotk_dllmd.lib(ctpfafs.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf8ToNativeprotk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btkStrWideToUtf16protk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btkStrWideToUtf16protk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btkStrWideToUtf8protk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btkStrEucToUtf16protk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btkStrEucToUtf8protk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btkStrNativeToUtf16protk_dllmd.lib(protk_comm.obj) : warning LNK4049: 已导入本地定义的符号_btkStrNativeToUtf8protk_dllmd.lib(cu_dll_tools.obj) : warning LNK4049: 已导入本地定义的符号_btk_getenvprotk_dllmd.lib(cttime.obj) : warning LNK4049: 已导入本地定义的符号_btk_getenvprotk_dllmd.lib(ctmisc.obj) : warning LNK4049: 已导入本地定义的符号protk_dllmd.lib(windows_32.obj) : warning LNK4049: 已导入本地定义的符号_btk_getenvprotk_dllmd.lib(ctfileutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_getenvprotk_dllmd.lib(cu_appid.obj) : warning LNK4049: 已导入本地定义的符号_btk_getenvprotk_dllmd.lib(ctmemmgr.obj) : warning LNK4049: 已导入本地定义的符号_btk_getenvprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_getenvprotk_dllmd.lib(ctsyscall.obj) : warning LNK4049: 已导入本地定义的符号_btk_getenvprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btk_getenv protk_dllmd.lib(cu_appid.obj) : warning LNK4049: 已导入本地定义的符号_btk_sprintfprotk_dllmd.lib(cttime.obj) : warning LNK4049: 已导入本地定义的符号_btk_sprintfprotk_dllmd.lib(ctmisc.obj) : warning LNK4049: 已导入本地定义的符号_btk_sprintfprotk_dllmd.lib(windows_32.obj) : warning LNK4049: 已导入本地定义的符号_btk_sprintfprotk_dllmd.lib(ctfileutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_sprintfprotk_dllmd.lib(frgnalt3.obj) : warning LNK4049: 已导入本地定义的符号_btk_sprintfprotk_dllmd.lib(ctmemmgr.obj) : warning LNK4049: 已导入本地定义的符号_btk_sprintfprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_sprintfprotk_dllmd.lib(ctsyscall.obj) : warning LNK4049: 已导入本地定义的符号_btk_sprintfprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btk_sprintf protk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_u16tou8protk_dllmd.lib(ctpfafs.obj) : warning LNK4049: 已导入本地定义的符号_btkUnicodeIsEnabledprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btkUnicodeIsEnabledprotk_dllmd.lib(ctwcfun_mt.obj) : warning LNK4049: 已导入本地定义的符号_btkUnicodeIsEnabledprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkUnicodeIsEnabledprotk_dllmd.lib(ctstrutil.obj) : warning LNK4049: 已导入本地定义的符号_btkUnicodeIsEnabledprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_u8tou16protk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf16ToUtf8protk_dllmd.lib(ctstrutil.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf16ToUtf8protk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf8ToUtf16protk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswalphaprotk_dllmd.lib(ctwcfun_mt.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswalphaprotk_dllmd.lib(ctstrutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswalphaprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswasciiprotk_dllmd.lib(ctstrutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswasciiprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswdigitprotk_dllmd.lib(ctstrutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswdigitprotk_dllmd.lib(ctfileutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswdigitprotk_dllmd.lib(ctstrutil_mt.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswdigitprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswspaceprotk_dllmd.lib(ctmisc.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswspaceprotk_dllmd.lib(ctstrutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswspaceprotk_dllmd.lib(ctfileutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswspaceprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_wctombprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_fgetcprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_mbtowcprotk_dllmd.lib(ctwcfun_mt.obj) : warning LNK4049: 已导入本地定义的符号_btk_mbtowcprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_fgetwsprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_get_stdinprotk_dllmd.lib(ctstrutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_strcasecmpprotk_dllmd.lib(ctfileutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_strcasecmpprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_strcasecmpprotk_dllmd.lib(ctsyscall.obj) : warning LNK4049: 已导入本地定义的符号_btk_strcasecmpprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btk_strcasecmpprotk_dllmd.lib(ctmisc.obj) : warning LNK4049: 已导入本地定义的符号_btk_strcasecmpprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf8ToUtf16Allocprotk_dllmd.lib(ctstrutil.obj) : warning LNK4049: 已导入本地定义的符号_btkStrUtf8ToUtf16Allocprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_fputsprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_pro_vsnprintf_low_legacyprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_pro_vsnprintf_lowprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_fgetsprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_scanf_stream_lowprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_putenvprotk_dllmd.lib(ctsyscall.obj) : warning LNK4049: 已导入本地定义的符号_btk_putenvprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswalnumprotk_dllmd.lib(ctmisc.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswalnumprotk_dllmd.lib(ctwcfun.obj) : warning LNK4049: 已导入本地定义的符号_btk_iswrtolprotk_dllmd.lib(ctsyscall.obj) : warning LNK4049: 已导入本地定义的符号_btkGetMemprotk_dllmd.lib(ctsyscall.obj) : warning LNK4049: 已导入本地定义的符号_btk_spawnvpprotk_dllmd.lib(ctsyscall.obj) : warning LNK4049: 已导入本地定义的符号_btk_systemprotk_dllmd.lib(ctsyscall.obj) : warning LNK4049: 已导入本地定义的符号_btk_wcstombsprotk_dllmd.lib(ctsyscall.obj) : warning LNK4049: 已导入本地定义的符号_btk_mbstowcsprotk_dllmd.lib(ctsigutil_mt.obj) : warning LNK4049: 已导入本地定义的符号_btk_get_stderrprotk_dllmd.lib(ctsigutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_get_stderrprotk_dllmd.lib(ctsyscall.obj) : warning LNK4049: 已导入本地定义的符号_btk_get_stderrprotk_dllmd.lib(ctmisc.obj) : warning LNK4049: 已导入本地定义的符号_btk_get_stderrprotk_dllmd.lib(windows_32.obj) : warning LNK4049: 已导入本地定义的符号_btk_get_stderrprotk_dllmd.lib(ctfileutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_get_stderrprotk_dllmd.lib(ctsyscall.obj) : warning LNK4049: 已导入本地定义的符号_btk_removeprotk_dllmd.lib(ctsyscall.obj) : warning LNK4049: 已导入本地定义的符号_btk_openprotk_dllmd.lib(ctfileutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_openprotk_dllmd.lib(ctdci.obj) : warning LNK4049: 已导入本地定义的符号_btk_open protk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btk_strncasecmpprotk_dllmd.lib(ctpfafs.obj) : warning LNK4049: 已导入本地定义的符号_btk_strncasecmpprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btk_getdcwdprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkUConv_Disposeprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkLangEucEncodingprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkLangGetCurrentprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkLangNativeEncodingprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkUConv_Createprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkUtfTypeFromBOMprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkUtfTypeToBOM_btkUConv_ToPivotWithOffsetsprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkUConv_CountPendingToPivotprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkUConv_Resetprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkUConv_FromPivotprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkUConv_CountPendingFromPivotprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkUConv_TranscodeExprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btkUConv_ToPivotprotk_dllmd.lib(ctpfa.obj) : warning LNK4049: 已导入本地定义的符号_btk_sscanf protk_dllmd.lib(ctfileutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_sscanfprotk_dllmd.lib(cttime.obj) : warning LNK4049: 已导入本地定义的符号_btk_sscanfprotk_dllmd.lib(ctmisc.obj) : warning LNK4049: 已导入本地定义的符号_btk_execvprotk_dllmd.lib(windows_32.obj) : warning LNK4049: 已导入本地定义的符号_btk_get_stdoutprotk_dllmd.lib(windows_32.obj) : warning LNK4049: 已导入本地定义的符号_btk_fflushprotk_dllmd.lib(windows_32.obj) : warning LNK4049: 已导入本地定义的符号_btk_strlwrprotk_dllmd.lib(ctfileutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_fullpathprotk_dllmd.lib(ctfileutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_getcwdprotk_dllmd.lib(apfutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_getcwdprotk_dllmd.lib(ctfileutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_statprotk_dllmd.lib(apfutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_stat protk_dllmd.lib(ctpfafs.obj) : warning LNK4049: 已导入本地定义的符号_btk_stat protk_dllmd.lib(ctfileutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_accessprotk_dllmd.lib(frgnalt3.obj) : warning LNK4049: 已导入本地定义的符号_btkUnicodeDisableprotk_dllmd.lib(apfutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_chdir protk_dllmd.lib(apfutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_mkdirprotk_dllmd.lib(apfutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_rmdirprotk_dllmd.lib(ctdci.obj) : warning LNK4049: 已导入本地定义的符号_btk_rmdir protk_dllmd.lib(apfutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_unlinkprotk_dllmd.lib(ctdci.obj) : warning LNK4049: 已导入本地定义的符号_btk_unlink protk_dllmd.lib(apfutil.obj) : warning LNK4049: 已导入本地定义的符号_btk_utimeprotk_dllmd.lib(ctpfafs.obj) : warning LNK4049: 已导入本地定义的符号_btk_utimeprotk_dllmd.lib(ctpfafs.obj) : warning LNK4049: 已导入本地定义的符号_btk_tempnamprotk_dllmd.lib(ctdci.obj) : warning LNK4049: 已导入本地定义的符号_btk_fopen protk_dllmd.lib(ctdci.obj) : warning LNK4049: 已导入本地定义的符号_btk_rename正在嵌入清单...生成日志保存在“file://c:\toolkit_test\ProMessageDisplay\ProMessageDisplay\Release\BuildLog.htm”ProMessageDisplay - 0 个错误,159 个警告========== 生成: 1 已成功, 0 已失败, 0 最新, 0 已跳过==========创建测试目录创建测试快捷启动启动验证中文英文测试数据下载请到无维网!。

ProE二次开发技术概述

ProE二次开发技术概述
Keywords: Pro / Engineer, secondary development, history, current status, development
关键词 : Pro/Engineer 二次开发 历程 现状 发展方向
Abstract
The current CAD / CAM systems such as Pro / E, UG, are more common large-scale software systems, with the establishment of such a large system, we need the product model may require significant time. If you can, based on such software, developed for the application of this unit product will no doubt greatly enhance the efficiency of product design of the unit, speed up product update rate, thereby enhancing their market competitiveness. The so-called "secondary development" is in the business application software system based on the localization of the application development process. Pro / Engineer operating software companies in the United States Parametric Technology (PTC) unit of CAD / CAM / CAE integration of the three-dimensional software. Pro / Engineer to provide users with a variety of secondary development of the means, such as based on Pro / TOOLKIT secondary development process, based on the Automation GATEWAY secondary development of the secondary J-Link-based development process, based on Pro / Web Link's secondary development process, based on the VB API's second development processes. This article from the Pro / Engineer course of development of secondary development, current status, future directions, research priorities, while secondary development of several examples, and several other aspects were, of Pro / Engineer to conduct a detailed overview of the secondary development.

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.环境下vs二次开发(附代码)

proe.环境下vs二次开发(附代码)

PRO/E 5.0环境下使用vs2008进行二次开发1、环境设置(只需第一次设置)1)进入工具/选项对话框,包含文件:○1./prodevelop/include; ○2./protoolkit/include2)库文件:○1./protoolkit/i486_nt/obj; ○2./prodevelop/i486_nt/obj2、新建MFC DLL工程(采用默认动态链接烈类型)3、设置项目属性1)进入项目/属性对话框(ALT+F7),选择配置管理器,将Active版本类型改为Release。

2)选择配置属性/链接器/输入,在附加依赖项一栏输入:wsock32.lib mpr.lib protk_dll.lib prodev_dll.lib psapi.lib netapi32.lib3)在忽略特定库一项输入mvcrt.lib1)添加头文件#include"ProMenu.h"#include"ProUtil.h"#include"ProMenubar.h"2)添加初始化函数extern"C"int user_initialize() {ProError status;// 用户接口程序return status;}extern"C"void user_terminate() {// 结束代码}// 定义菜单的可访问性设置函数static uiCmdAccessState UserAccessDefault(uiCmdAccessMode access_mode) {return(ACCESS_AVAILABLE);}int MsgBox() // 定义菜单按钮相应函数{AfxMessageBox(_T("My first Pro/E redeveloping"));return 0;}extern"C"int user_initialize(){ProError status;uiCmdCmdId cmd_idl;ProFileName mfName;ProStringToWstring(mfName, "Msg.txt");// 添加菜单status = ProMenubarMenuAdd("CHECK", "CHECK", "Utilities",PRO_B_TRUE, mfName);// 添加菜单动作status = ProCmdActionAdd("ShowTest1", (uiCmdCmdActFn)MsgBox,uiCmdPrioDefault,UserAccessDefault,PRO_B_TRUE, PRO_B_TRUE, &cmd_idl);// 添加菜单按钮status = ProMenubarmenuPushbuttonAdd("CHECK", "MSGBOX", "PathMsg",NULL, NULL,PRO_B_TRUE, cmd_idl, mfName);return status;}4)关键函数wchar_t* ProStringToWstring ( wchar_t*wstr, char*str );// 把char*类型转换为wchar_t*ProError ProMenubarMenuAdd (ProMenuItemName menu_name,ProMenuItemLabel untranslated_menu_label,ProMenuItemName neighbor,ProBoolean add_after_neighbor,ProFileName filename )ProError ProCmdActionAdd (char *action_name,uiCmdCmdActFn action_cb,uiCmdPriority priority,uiCmdAccessFn access_func,// 是否在非激活窗口显示ProBoolean allow_in_non_active_window,//是否在附属窗口显示ProBoolean allow_in_accessory_window,uiCmdCmdId *action_id );ProError ProMenubarmenuPushbuttonAdd (ProMenuItemName parent_menu,ProMenuItemName push_button_name,ProMenuItemLabel push_button_label,ProMenuLineHelp one_line_help,ProMenuItemName neighbor,ProBoolean add_after_neighbor,uiCmdCmdId action_id,ProFileName filename );static uiCmdAccessState UserAccessDefault(uiCmdAccessMode access_mode) {return(ACCESS_AVAILABLE);// ACCESS_REMOVE 移除菜单项// ACCESS_INVISIBLE 不可见// ACCESS_UNAVALIABLE 可见,变灰不可选// ACCESS_DISALLOW 不可选// ACCESS_AVAILABLE 可选}5)编写信息文件格式第1行:关键字(必须与使用该信息文件函数的相关字符串相同)第2行:菜单显示英文文本第3行:中文文本第4行:为空(用#表示,必须在英文输入法下输入)6)编写注册文件格式:NAME 应用程序标识名EXEC_FILE 可执行程序名(包括路径)TEXT_DIR Text目录路径STARTUP 启动应用模式ALLOW_UP 是否允许在PROE工作时终止应用程序DELAY_START 是否延迟调用应用程序REVISION Pro/TOOLKIT版本号END 结束标志(每次修改后请重启PROE)。

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);}尺寸表示似乎只能从实体遍历中得到。

VC_NET环境下Pro_E的二次开发与应用

VC_NET环境下Pro_E的二次开发与应用

VC1NET环境下Pro/E的二次开发与应用张雪荣(武汉理工大学机电工程学院,武汉430070)摘要:介绍在VC1NET环境下,以Pr o/Toolkit为工具的Pr o/E二次开发步骤,列举了菜单开发,外部数据库访问及三维模型参数化设计中常用的函数,提出了基于VC1NET环境下Pr o/E的二次开发三维工艺设计系统C APP的方法,并以实例加以说明。

关键词:Pr o/E软件;Pr o/Toolkit开发工具;二次开发;VC1NET中图分类号:TP39117 文献标识码:B 文章编号:1671—3133(2008)05—0037—05Further develop m en t and appli ca ti on of Pro/E ba sed on VC1NETZhang Xue2r ong(School of Mechanical and Electr onic Engineering,W uhan University of Technol ogy,W uhan430070,CHN) Abstract:The p r ocess further t o devel op Pr o/E used itπs t ool Pr o/Toolkit under the envir on ment of VC1NET is intr oduced.Several functi ons,which are in common used in menu devel op ing and accessing the external database and para meter designing of3D2mod2 el,are particularized.The detailed devel opment app r oach is p resented and exa mp led by C APP syste m of3D p r ocess p lanning. Key words:Pr o/E;Pr o/Toolkit;Devel opment;VC1NET Pr o/E是当今世界上应用最为广泛的CAD软件之一,具有尺寸驱动、基于特征、单一全关联的数据库的特点,目前共有80,涉及工业设计、机械设计及功能仿真等方面[1]。

Proe5.0二次开发

Proe5.0二次开发

包含文件的添加:
(2)库文件的添加:步骤同包含文件的添加… E:\……proeWildfire5.0\prodevelope\i486_nt\obj E:\……proeWildfire5.0\protoolkit\i486_nt\obj
2、建立MFC DLL的一些小问题: 打开Vs2008后“文件” “新建” “项目”,选择MFC DLL,如图所示:点击“确定”
• extern "C" int user_initialize()// 入口函数 • { • AfxEnableControlContainer(); • ProError status; • ProName menumsgfile; • uiCmdCmdId cmd_id; • //在Help菜单的右边添加“二次开发菜单” • ProStringToWstring(menumsgfile,"usermsg1.txt"); • status=ProMenubarMenuAdd("Menu0","USERMenu0 ","Help",PRO_B_TRUE,menumsgfile); • return(0); • } • static uiCmdAccessState UserAccessTestMenu(uiCmdAccessMode access_mode) • { • return (ACCESS_AVAILABLE);
以上就是对Proe5.0进行二次开发的前期准备工作。 二、应用注册设置:文件内容的设置

三、菜单文字显示设置:结构由四行组成,不足的用#补上
将所有的前期准备工作做全之后,进行二次开发编程之前还 要弄清楚的就是最后生成的.dll文件在proe5.0中怎样显示 出来。 四、测试 打开proe5.0……

二次开发基本设置

二次开发基本设置

利用VC++和ProToolkit对Pro/E Wildfire进行二次开发的基本设置一、创建MFC项目,MFC AppWizard[dll]1.运行Microsoft Visual C++,新建一个名为ProMessageDisplay的工程,如图1所示:图1 新建名为ProMessageDisplay的工程2.单击“确定”按钮,选择“动态链接库使用共享MFC DLL”,如图2所示:图2 建立动态链接库3.单击“完成”,会出现如图所示的新建工程信息提示对话框:图3 新建工程信息4.单击“确定”,进入新建的VC++工程区。

二、设置项目1.添加预处理程序定义:PRO_USE_V AR_ARGS(1)单击“工程\设置”进入“Project Setting”对话框,如图5所示:(2)在预处理程序定义文本框里加上PRO_USE_V AR_ARGS,如图6所示:图6 添加PRO_USE_V AR_ARGS2.在对象/库模块添加:protk_dll.lib kernel32.lib user32.lib wsock32.lib advapi32.lib mpr.lib winspool.lib。

(1)在“Project Setting”对话框中点击“连接”。

(2)在“对象/库模块”中添加上述7种“.lib”文件,如图7所示:图7 工程设置之连接设置3.忽略库文件:Debug msvcrtd.lib/Release msvcrt.lib(1)在“连接”的“分类”中选择“输入”。

(2)在“忽略库”中输入“msvcrtd.lib”,如图8所示:图8 忽略库三、创建主程序,这里就用一个ProMessageDisplay来做测试1.在主程序中添加如下程序段:{ProName msgFileName;ProStringToWstring(msgFileName, "message.txt");ProMessageDisplay(msgFileName, "prompt message example");ProMessageDisplay(msgFileName, "info message example");ProMessageDisplay(msgFileName, "warning message example");ProMessageDisplay(msgFileName, "error message example");ProMessageDisplay(msgFileName, "critical message example");Return 0;}extern "C" void user_terminate(){Return;}2.编译3.创建Protk.dat文件:NAME ProMessageDisplayEXEC_FILEPro/E 二次开发中的若干问题Pro/E是美国参数技术公司(PTC)研制的CAD/CAM软件。

Proe Wildfire 5.0 J-link二次开发—入门篇

Proe Wildfire 5.0 J-link二次开发—入门篇

Proe Wildfire 5.0 J-link二次开发——入门篇为什么选择J-link?选择J-link二次开发的理由:J-link拥有开源社区的强大优势,JAVA语言开源,社区很活跃,可以说除了PROE以外的所有开发工具都可以免费获得,并且这些开发工具的性能绝不逊色于microsoft;J-link二次开发的程序运行编译过程都较C++二次开发简单。

J-link二次开发所需的准备工作:1.熟悉JAVA语言;JAVA仍为IT界使用最为广泛的开发工具之一,其学习难度并不比C++语言高,网络上有大量免费视频可供学习。

2.初次安装PROE时请选中J2RE(java 2 runtime enviroment)与J-link选项随PROE主程序一起安装,一般默认安装未选中此模块,所以请务必注意;自安装的JRE目录是D:\PTC\pr oeWildfire 5.0\i486_nt\obj\JRE;若已经安装了PROE但是没有安装J2RE(java 2 runtime e nviroment),也可以下载jdk6来安装(jdk7未试过)。

3.安装JAVA的集成开发环境IDE,可以下载Eclipse,选Java开发版即可,不要jee的(用于Web开发)。

4.配置开发环境:配置JVM,设置环境变量(如果网友安装目录与此不同请自行注意更改)5.学习J-link请参考PROE目录下*\jlink\jlinkug.pdf文档,也可以用浏览器打开*\jlin k\jlinkdoc\index.html,里面包含开发文档和api。

自此,J-link开发环境就配置完成!下面以Proe自带的入门的例子来测试一下J-link开发环境是否配置正确。

1. 打开eclipse(网上关于eclipse使用资料非常多,可自行查询),依次File->new->j ava project,建立new javaproject,工程名如:InstallTest,其他选项默认即可,点击fin ish;2. 在InstallTest工程中添加外部JAR包,将*\text\java\pfc.jar引入到project中;3.在InstallTest工程中,新建2个空的java class,name分别是StartInstallTest和pf cInstallTest,然后用win写字板或者EditPlus等工具分别打开*\jlink\jlink_appls\instal l_test下的StartInstallTest.java与pfcInstallTest.java两个文件中的内容复制到刚才创建的相应的class中,并覆盖原有内容;4. 点击run->run运行并编译,因为需和proe配合才能显示工作效果,所以其实就是确认完成编译罢了;5. 在本机上新建test文件夹,在第2步所创建的InstallTest工程目录下找到bin文件夹,复制其中所有的.class文件至test文件夹中。

proe5.0二次开发

proe5.0二次开发

Pro/ENGINEER Wildfire5.二次开发程序
安装 Pro/ENGINEER 时,一定要选取“API 工具包”安装 Pro/TOOLKIT
以上软件安装完成之后我们使用安装自带的测试代码
安装测试代码文件:make_install(D:\ptc\proeWildfire5\protoolkit\i486_nt\obj,根据个人安装Pro/E的路径为准)
打开修改Pro/TOOLKIT的安装位置(缺省为空白)
启动"Visual Studio 2008 命令提示",编译代码
切换目录(cd c:\ptc\proeWildfire5\protoolkit\i486_nt\obj)
编译语句:nmake /f make_install dll
编译完成
产生dll文件
修改Pro/E注册文件protk.dat
文件位置:c:\ptc\proeWildfire5\protoolkit
修改protoolkit安装目录(正确指向dll文件和text目录)
Pro/E注册应用二次开发程序
菜单:工具——辅助应用程序
注册
选择protk.dat文件
选中应用程序名称,单击启动
消息信息提示:启动成功
关闭“辅助应用程序”窗口
运行安装测试程序
菜单:文件——安装测试
弹出对话框,显示安装测试成功。

基于ProE环境下某型装载机工作装置参数化设计的二次开发

基于ProE环境下某型装载机工作装置参数化设计的二次开发

摘要Pro/Engineer操作软件是美国参数技术公司(PTC)旗下的CAD/CAM/CAE一体化的三维软件,以参数化著称,在目前的三维造型软件领域中占有着重要地位。

为了满足用户的自定义需求,Pro/Engineer提供了多种二次开发方法,其中Pro/Toolkit是目前比较常用的Pro/E自带的二次开发工具。

本设计将利用Pro/Toolkit程序,结合尺寸驱动和MFC对话框技术,开发出应用于Pro/E的某型装载机工作装置的设计插件,用以缩短设计周期和提高产品设计效率。

但Pro/TOOLKIT并不提供对MFC的支持,在Pro/TOOLKIT 中并不能直接应用MFC对话框。

本设计通过动态连接库(dll)开发了Pro/TOOLKIT与MFC的接口,利用MFC强大的功能实现对话框的开发,在Pro/ENGINEER环境中生成MFC 对话框,方便、自然、快捷地进行人机交互。

关键词:二次开发,Pro/TOOLKIT,MFC对话框,骨架模型AbstractPro/E operating software is a CAD/CAM/CAE integration 3d software from the Parameter Technology Company (PTC),it's famous for the parameterization. Occupies an important position in the current 3d modeling software. In order to meet the user's custom demand, Pro/E offers a variety of Application Development methods, including Pro/Toolkit.It's the relatively common Application Development tool Pro/E own. This design will use the Pro/Toolkit program, combined with the Dimension Driven and MFC dialog box technology, to develop a certain type of loader Working Device design plug-in using in Pro/E, To shorten the design cycle and improve product design efficiency. But Pro/TOOLKIT does not provide the support of MFC, in Pro/TOOLKIT and cannot be directly applied MFC dialog box. This design through the dynamic-link library (DLL) developed a routine interface between Pro/TOOLKIT and MFC, using powerful MFC realize the development of the dialog box, generation MFC dialog box in Pro/E environment. Conveniently, naturally and quickly in human-computer interaction.Key words : Application Development,Pro/Toolkit,MFC Dialog,Skeleton Pattern目录TOC \O "1-3" \H \Z \U 第一章绪论 (4)第一节本课题研究的背景和意义 (4)第二节装载机工作装置的技术分析和发展现状 (5)第三节主要的研究内容 (5)第二章二次开发总体方案的确定 (6)第一节开发工具的确定 (6)第二节PRO/TOOLKIT简介 (7)第三节总体设计框架 (7)第三章装载机工作装置参数化设计 (9)第一节概述 (9)第二节工作装置结构设计简介 (9)第三节建立骨架模型 (10)第四节动臂参数化建模 (19)第四章菜单与对话框的开发 (26)第一节配置VS2005 (26)第二节菜单设计 (29)第三节对话框设计 (33)第四节程序的注册与运行 (45)总结 (48)致谢 (49)参考文献 (50)附录:程序清单 (51)第一章绪论第一节本课题研究的背景和意义Pro/Engineer操作软件是美国参数技术公司(PTC)旗下的CAD/CAM/CAE一体化的三维软件。

Proe二次开发调用宏(轨迹文件)的方法总结

Proe二次开发调用宏(轨迹文件)的方法总结

ProToolkit调用宏(轨迹文件)方法总结Ryan 2012/6/19 一:轨迹文件的定义轨迹文件是指用户在使用Pro/ENGINEER时,在Proe启动目录文件夹中产生的名为trail.txt.阿拉伯数字的文件,其中阿拉伯数字表示轨迹文件产生的先后顺序。

二:轨迹文件记录的内容轨迹文件记录了用户在使用Pro/ENGINEER时所进行的一切动作,例如单击某个按钮,图形的放大缩小,Proe界面的最大最小化等等。

三:轨迹文件的作用(摘自《CAD软件二次开发丛书》吴立军浙江科技学院)1、查询操作的历史记录;2、获得所操作过的菜单和按钮名称;3、获得所单击的按钮在内部的调用函数名。

4、截取文件中所需内容作为宏来调用。

四:轨迹文件的使用方法及例子1、定义宏来实现用户利用Proe所要完成的功能(1)ProToolkit提供了两个调用宏的函数,分别为ProMacroLoad()和ProMacroExecute(),详细的函数定义和用法可参加ProToolkit帮助文件,若用户将Pro/ENGINEER安装在C盘目录下,则帮助文件的具体路径为C:\ProgramFiles\proeWildfire5\protoolkit\protkdoc\IENoSwing.html,若用户将Pro/ENGINEER安装于其它盘下,则帮助文件的具体路径为“用户Proe安装盘下文件夹名+ proeWildfire5\protoolkit\protkdoc\IENoSwing.html”。

此处我们采用ProMacroLoad()函数来完成我们的工作。

(2)实现的方法步骤:截取轨迹文件中所需的名利语句放在用户自定义的宏中,然后直接调用宏,Proe就将完成用户所要实现的功能。

(3)例子:调用宏,实现对Proe装配体的自动全局干涉检查,程序如下void mydlg::OnBnClickedButton1() //VS2008中自定义的一个对话框按钮{ProError status; //函数的返回值ProMacro w_macro; //自定义宏的名称(宽字符)char *zd_Macro=“~ Select `main_dlg_cur` `MenuBar1` 1 `Analysis`;\~ Select `main_dlg_cur` `Analysis.cas_na_model`;\~ Close `main_dlg_cur` `MenuBar1`;\~ Close `main_dlg_cur` `Analysis.cas_na_model`;\~ Activate `main_dlg_cur` `psh_na_model_global_interference`;“; //自定义的宏(普通字符)ProStringToWstring(w_macro,zd_Macro); //普通字符串转化为宽字符status=ProMacroLoad(w_macro); //调用宏}注:1、函数返回值及宽字符的定义可参见相关ProToolkit书籍;2、ProToolkit中用宽字符,因此程序中必须要有字符的转化的语句。

VS2008软件开发说明文档

VS2008软件开发说明文档

目录目录 (1)1.WinCE6.0特征介绍 (2)1.1 WinCE6.0与5.0的区别 (2)1.2 WinCE R3新特征 (3)2.软件编程说明 (4)3. VS2008软件开发 (6)3.1安装VS2008 (6)3.2 创建Hello World 实例 (VB 篇) (6)3.2.1 新建工程 (6)3.2.2 建立连接 (8)3.2.3 编译与下载 (11)3.2.4如何将可执行文件放到一体机设备中且可掉电保存 (13)3.3 创建Hello World 实例(VC++篇) (14)3. 3.1新建工程...........................................................................................................................14 3.3.2建立连接. (20)3.3.3编译与下载 (21)3.3.4如何将可执行文件放到一体机设备中且可掉电保存....................................................24 3.4 创建Hello World 实例 (C#篇).. (24)3.4.1 新建工程...........................................................................................................................24 3.4.2 建立连接...........................................................................................................................27 3.4.3 编译与下载.......................................................................................................................29 3.4.4如何将可执行文件放到一体机设备中且可掉电保存. (32)w w w .b l u e m c u .c o m1.WinCE6.0特征介绍1.1 WinCE6.0与5.0的区别Windows CE 6.0重新设计了Kernel,支持的进程数从32个扩展到32000 每个进程的地址空间从32MB扩展到2GB 很多系统模块(如文件系统和设备管理器)将运行在kernel模式,OAL也从kernel独立出来,driver可以运行在kernel模式和user模式 Visual Studio 2005专业版将包括一个被称为Platform Builder的功能强大的插件,它是一个专门为嵌入式平台提供的“集成开发环境”。

ProE5protoolkit二次开发环境设置

ProE5protoolkit二次开发环境设置

ProE5protoolkit二次开发环境设置ProE 5.0+VS2008Protoolkit二次开发环境配置From tkuser.pdf: All Creo Elements/Pro TOOLKIT applications on 32-bit and 64-bitWindows platforms must be built using the Microsoft Visual 2008 compiler. A new library ws2_32.lib has been added.The CC flags no longer need the -D_USE_32BIT_TIME_T flag on32-bit Windows platforms. These changes have been incorporatedin the sample makefiles.1、包含文件和库文件的设置(1)包含文件的添加点击“工具”→“选项”→“项目和解决方案”→“VC++目录”,选择“包含文件”依次添加:D:\PTC\Creo Elements\Pro5.0\protoolkit\includesD:\PTC\CreoElements\Pro5.0\prodevelop\prodev_appls\includesD:\PTC\Creo Elements\Pro5.0\prodevelop\includesD:\PTC\CreoElements\Pro5.0\protoolkit\protk_appls\includes(2)库文件的添加:步骤同包含文件的添加…D:\PTC\Creo Elements\Pro5.0\prodevelop\i486_nt\objD:\PTC\Creo Elements\Pro5.0\protoolkit\i486_nt\obj2、创建MFC DLL项目如图:3、进行工程属性配置(1)“项目”→“属性”→“配置属性”→“常规”,点击右上角的“配置管理器”,使用release。

ProE二次开发

ProE二次开发

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

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

Pro/TOOLKIT 是Pro/ENGINEER 软件系统自带的二次开发模块,可以直接访问Pro/ENGINEER 软件的最底层数据库资源,它几乎能够访问所有Pro/ENGINEER 的资源,可以说这是进行Pro/ENGINEER 二次开发最根本的方法。

但想用Pro/TOOLKIT进行二次开发,需要具有Visual C++或者C语言的编程功底。

现在的CAD/CAM系统,如Pro/ENGINEER、UG等,都是比较通用的大型软件系统,用这样的大型系统建立我们所需要的产品模型可能需要大量的时间。

如果能在此类软件的基础上,开发出适合本单位产品的应用程序,无疑会大大提高本单位产品的设计效率,加快产品的更新速度,从而提高企业的市场竞争能力。

所谓“二次开发”就是在商业应用软件系统的基础上开发本地化应用程序的过程。

编辑本段Pro/ENGINEER的二次开发方法Pro/ENGINEER的二次开发方法有五种:(1)基于Pro/TOOLKIT的二次开发过程Pro/TOOLKIT是针对Pro/ENGINEER功能强大的二次开发工具。

它封装了许多针对Pro/EN-GINEER底层资源调用的库函数与头文件,借助第三方编译环境(C语言、VC++语言等)进行调试。

使用Pro/TOOLKIT开发应用程序包含三个基本步骤:编写源文件(包括资源文件和程序源文件);生成可执行文件;可执行文件在Pro/ENGI-NEER中注册并运行。

proe二次开发初级教程

proe二次开发初级教程

第一章 PRO/TOOLKIT的安装及VC++环境的配置§1.1 PRO/TOOLKIT的安装PRO/TOOLKIT是PROE二次开发的接口,采用C语言的结构编程语言,本文假设PROE安装在E:\ProgramFiles\proeWildfire4.0,在PTC Set up的对话框如图1-1中选择API工具包,图1-1 PTC Set up的对话框选中PRO/TOOLKIT,点击右键选择安装该组件,安装完成后,可以在PROE 的安装目录下看到E:\Program Files\proeWildfire 4.0\protoolkit的文件夹,其中,里面的内容见图1-2所示。

图1-2 PRO/TOOLKIT 文件夹下的内容另外,选择E:\Program Files\proeWildfire 4.0\bin目录下的ptcsetup.bat文件可以再现PROE的安装界面,但是,该方法只能修改PROE的各个参数的配置,不能增加安装过程中的各个组件。

§1.2 VC++编程环境的设置§1.2.1 VC++目录设置当我们打开VC++2008时,我们在工具-选项-项目和解决方案中的VC++目录,得到如图1-3所示的对话框所示的界面。

图1-3 VC++中选项对话框目录设置对整个VC++中的各个项目均起作用,如果VC++不重新安装或者其他的较大的变化,目录设置可以不用改动。

目录的设置主要包括两个方面:包含文件的路径的设置及库文件的设置。

点击图1-3所示的可执行文件右边的下拉三角号,选择包含文件,如图1-4所示。

图1-4 VC++中包含文件对话框添加包含文件的路径。

具体的包含文件的路径主要有一下三个:E:\ProgramFiles\proeWildfire4.0\protoolkit\protk_appls\includesE:\Program Files\proeWildfire 4.0\protoolkit\includesE:\Program Files\proeWildfire 4.0\prodevelop\includes点击图1-3所示的可执行文件右边的下拉三角号,选择库文件,如图1-5所示,添加库文件的路径,如下所示:图1-5 VC++中库文件对话框E:\ProgramFiles\proeWildfire4.0\protoolkit\protk_applsE:\Program Files\proeWildfire 4.0\protoolkit\i486_nt\objE:\Program Files\proeWildfire 4.0\prodevelop\i486_nt\obj至此,PROE与VC++中的连接目录的设置已经结束。

ProE二次开发设置文档

ProE二次开发设置文档

Pro/E二次开发程序设置与调试安装Pro/E首先确保你正确安装了Pro/EPro/E开发工具Toolkit的目录结构:设置包含文件和库文件然后在你的VS2005IDE中设置好包含文件和库文件目录。

点击工具->选项菜单,弹出选项对话框1.加入包含文件:在安装目录下<安装目录>\protoolkit\includes2.加入库文件:在安装目录下<安装目录>\protoolkit\i486_nt\obj新建工程新建一个工程1.选择MFC DLL模板;2.填入项目名称,点击确定;3.在应用程序设置页,选择“使用共享MFC DLL的规则DLL”4.点击完成。

设置工程属性点击项目->属性菜单开始设置项目属性。

1.在C/C++标签下预处理器页面,预处理器定义中添加一条PRO_USE_VAR_ARGS宏。

3.在语言页设置将wchar_t视为内置类型为否(/Z c:wchar_t-)4.在连接器标签->输入页面a)附加依赖项中添加要附加的依赖库文件:protk_dllmd.lib,wsock32.lib,mpr.lib。

b)在忽略特定库中添加要忽略的库文件:msvcrt.lib。

5.在链接器->命令行标签->附加命令选择中填入/FORCE设置完成以上内容后即可编译成功。

编辑源文件重新编译你的工程注册和运行程序1.编写一个注册文件Protk.dat,该文件描述了二次开发程序的注册信息。

典型的文件结构如下:语法意义如下:name:为你的二次开发程序指定一个单独的名字。

startup:指定程序模式,这里是DLL模型。

exec_file:你编译出来的动态链接库的放置路径。

text_dir:应用程序使用的菜单和消息文件的放置路径。

allow_stop:程序运行停止。

delay_start:延迟启动。

end:注册文件结束2.在工程目录下新建一个Text文件夹,然后在Text文件夹下面,新建一个user_msg.txt启动Pro/E主程序,选择工具->辅助应用程序菜单(Tools->Auxiliary Application)4.然后点击注册(Register)按钮,选择前面编写的注册文件protk.dat。

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

用Microsoft Visual 2008对PRO/E4.0二次开发步骤
1.因为PRO/E4.0装在E盘,在二次开发时在E盘新建一个文件夹mytest3 (可以是其他名字的文件夹,注意mytest3必须与PRO/E4.0在同一盘里),在mytest3中在新建一个文件夹text(必须是text)。

2.如图(1),新建一个Hello.dll的文件
图(1)
3.如图(2),选中使用共享MFC DLL的规则DLL(D)
4.单击项目---属性,进行图(3)---图(10)的操作。

图(3) 属性配置,注意是在Release下进行编译的,Release配置1
图(4) Release配置2
图(5) 在字符集中选择使用多字节字符集
图(6) 对预处理器中的预处理器定义进行设置
图(7) 代码生成,设置运行时库为多线程DLL(/MD)
图(8) 语言的设置
图(9) 添加附加依赖项wsock32.lib
mpr.lib
psapi.lib
protk_dllmd.lib
prodev_dllmd.lib
netapi32.lib
图(10) 添加忽略特定库msvcrtd.lib
图(11) 单击主菜单上的工具----选项
图(12) 添加包含文件,四个includes
图(13) 添加库文件,两个obj
图(14) 双击Hello.cpp
图(15) 添加头文件
#include "ProMenubar.h"
#include "ProMenu.h"
#include "ProUtil.h"
#include <ProToolkit.h>
#pragma comment(lib,"netapi32")
图(16) 在Hello.cpp的最后添加程序
static uiCmdAccessState AccessDefault(uiCmdAccessMode access_mode) {
return(ACCESS_AVAILABLE);
}
void Test1()
{
AfxMessageBox(_T("轴"));
}
void Test2()
{
AfxMessageBox(_T("齿轮"));
}
extern "C" int user_initialize()
{
ProError status;
ProFileName MsgFile;
ProStringToWstring(MsgFile,"IconMessage.txt");
//注意此处的IconMessage与后面的text文件夹下的IconMessage.txt文件名必须相同uiCmdCmdId PushButton1_cmd_id,PushButton2_cmd_id;
status=ProMenubarMenuAdd("MainMenu","Function","Help",PRO_B_TRUE,MsgFile); ProCmdActionAdd("PushButton1_Act",(uiCmdCmdActFn)Test1,12,AccessDefault,PRO_B_TRUE,P RO_B_TRUE,&PushButton1_cmd_id);
ProMenubarmenuPushbuttonAdd("MainMenu","PushButton","FirstButton","this button will show a message",NULL,PRO_B_TRUE,PushButton1_cmd_id,MsgFile);
ProCmdActionAdd("PushButton2_Act",(uiCmdCmdActFn)Test2,uiCmdPrioDefault,AccessDefault,P RO_B_TRUE,PRO_B_TRUE,&PushButton2_cmd_id);
ProMenubarmenuPushbuttonAdd("MainMenu","PushButton2","SecondButton","this button will show a message",NULL,PRO_B_TRUE,PushButton2_cmd_id,MsgFile);
return status;
}
extern "C" void user_terminate()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
}
图(17) 选择生成Hello(U)
图(18) Hello(U)生成成功后在E:\mytest3\Hello\Release中可以看见Hello.dll文件,将Hello.dll 文件复制到E:\mytest3中。

图(19) 在E:\mytest3中创建protk.dat文件,内容是
NAME mytest3
STARTUP dll
EXEC_FILE E:\mytest3\Hello.dll
TEXT_DIR E:\mytest3\text
ALLOW_STOP TRUE
REVISION Wildfire
END
图(20) 在E:\mytest3\text中创建IconMessage.txt,内容是Function
UserFunction
#
#
FirstButton
Demo1
#
#
secondbutton
Demo2
#
#
this button will show a message
this button will show a message
#
#
show first button
show first button
#
#
图(21) 打开PRO/E4.0,单击Tools---Auxiliary Applications,注册protk.dat,然后选中mytest3,单击Start
图(22) 显示mytest3 Runing,单击Close,再单击UserFunction
图(23) 最终想要实现的结果。

相关文档
最新文档