(完整版)ProE_二次开发入门实例
Pro_Engineer二次开发关键技术研究实例

( ; <. = > ?: > 6 6 ; 二次开发关键 技术研究实例
中国人民解放军 2-#1% 部队" ! 四川成都")$%%+$ " " 吴" 琥
""/ G L > & IT H IR R G 为用户提供了丰富的二次开发工具% 常用的有 / G L > / G L T G < , < , H M s. < nM R "# 用户自定 # 簇表 ! r 义特征 ! l ? r "# m 4E H I; 和 / G L > . _ _ E C a .等% 本文着重 介绍了用 / G L > . _ _ E C a .对 / G L > & IT H IR R G 进行开发时的步 骤$ 通过 * 齿轮快速设计系统+ 开发实例进一步说明开 发技巧% !" ( ; <. 1 //@ A1的运作方式 / G L > . _ _ E C a .应用程序代码集成进入 / G L > & IT H IR R G 的标准方法是通过 * 动态链接库 + ! ? s I< , H ^ < M E H I;R c E H nG < G H R K E E K G L > . _ _ E C a .应用程 $ ? " 完成的% 当编译 / 序的 A代码$ 并将其链接至 / G L > . _ _ E C a .库文件时$ 就 创建了一个可链接至 / G L > & IT H IR R G 可执行文件的对象库 G L > & IT H IR R G 启动时被执行% 文件$ 这个可执行文件将在 / 这种方法称为 ? E E模式% 此外$ / G L > . _ _ E C a .还支持第 二种方法的集成$ 即 * 多进程 + ! FuM = H :G L ^ R K K "$ 或称 为衍 生 模 式 ! @:< \ IR c FL cR "% 在 这 种 模 式 下$ / G L > . _ _ E C a .应用程序将被编译和链接$ 从而形成一个独立
PROE二次开发教程之VB篇AGW插件操作PROE尺寸对象及在VBA环境下使用方法(下)

【概述】:本文通过一个例子来说明如何在VBA环境下使用AGW插件来进行PROE的二次开发,这个例子是用EXCEL来建立GBT95-2002圆形平垫圈-C级的图库。
举这个例子的意图只是说明如何在VBA环境下使用AGW插件来进行PROE的二次开发的步骤与方法。
下面通过一个例子来说明如何在VBA环境下使用AGW插件来进行PROE的二次开发,这个例子是用EXCEL来建立GBT95-2002圆形平垫圈-C级的图库。
举这个例子的意图只是说明如何在VBA环境下使用AGW插件来进行PROE的二次开发的步骤与方法。
1.新建EXCEL文件,并输入GBT95-2002圆形平垫圈-C级的国标数据,数据可以导入CAXA软件提供的国标数据,或其它CAD软件的国标数据,或手动输入。
这里通过导入CAXA实体设计的有关数据实现,步骤如下。
选取CAXA中的数据新建EXCEL文件并导入数据,导入数据的过程中用“|”作为数据的分隔符。
编辑整理成如下图所示2.在EXCEL中添加一个命令按钮,将名称改为“生成模型”。
==更多精彩,源自无维网()3.为命令按钮建立宏命令右击“生成模型”按钮,然后选择『指定宏』,在弹出的对话框中接受默认的宏名“按钮1_单击”,然后单击『新建』按钮,进入VBA编辑器界面。
像之前我写的教程那样,引用AGW控件(GWAX Rand Automation Gateway WF V4.2)4.添加如图的代码代码解析:Selection.Row如选择单个单元格的,就返回所选择的单元格的所在行。
Cells(i, 3).Value获取单元格Cells(i, 3)的值,Cells(i, 3)代表第i行,第3列的单元格。
其中可以AGW插件的函数,在之前的教程已经有提到过了。
注意引号里面的是附件模型的路径.5.执行程序启动PROE 2.0软件(对于AGW操作PROE尺寸对象的函数,PROE4.0测试版会产生异常,达不到改变尺寸的结果,这里我用PROE2.0进行说明)后,进行如图操作结果如下OK,简简单单的例子就这样完成了,利用你的EXCEL来进行你的自动化设计吧。
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应用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野火2.0二次开发教程

ProE Wildfire2.0 ProToolkit安装测试作者:TomLee今天看见好多人讲二次开发,马上把Microsoft Visual C++ 6.0装上,来个安装测试检查一下环境首先安装Microsoft Visual C++ 6.0,做以下设置这里大家注意是wildfire2.0,因为wildfire3.0是和.net配的,所以只能玩wildfire2.0了(.net不会)ProE是基于C的,所以Protoolkit目录下有很多练习;用C++这些练习的文件就用不上了,不过创建对话框我还是会用MFC,因为ProT oolkit的对话框创建实在难用刚开始先来个安装测试,帮助回忆在安装目录下找到make_install.mak文件可以直接编辑,建议新建一个文件夹,将文件复制来新建工程vc中使用“打开工作空间”,选择*.mak的文件类型,加载make_install.mak保存,最后新的项目建立完成修改make_install.mak文件,因为这里只是安装检测,所以基本不涉及语句,所以我还记得,哈哈注意:ProE安装目录不要包含空格!编译生成pt_install_test.exe文件制作菜单文件,当然这里有现成的用从D:\ptc\proeWildfire2\protoolkit\protk_appls\pt_install_test\text目录下将chinese_cn目录复制到你的工程目录(或者不复制,在注册文件dat中指向这个位置从D:\ptc\proeWildfire2\protoolkit目录下将注册文件protk.dat文件复制到工程目录复制完成后的工程目录,三个重要部分修改dat文件(最好装个Uedit32 ,编程的都知道)NAME pt_intall_testEXEC_FILE D:\ptc\proeWildfire2\protoolkit\test\pt_install_test.exe TEXT_DIR D:\ptc\proeWildfire2\protoolkit\test\textSTARTUP exeREVISION wildfire2.0END启动Proe,转换工作目录到当前的工程目录,比如这里的test 工具——辅助应用程序在弹出的对话框中选择注册Protk.dat启动弹出命令窗口,将其最小化(不要关闭)菜单中出现“安装测试”运行结果。
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……
proe直齿轮二次开发

VERSIONREVNUM 23833LISTING FOR PART GEAR_AINPUTZ1 NUMBER /*齿轮1齿数"Enter Z1: "Z2 NUMBER /*齿轮2齿数"Enter Z2: "M NUMBER /*模数"Enter M: "X1 NUMBER /*齿轮1变位系数"Enter x1:"X2 NUMBER /*齿轮2变位系数"Enter x2:"ALPHA NUMBER /*压力角"Enter the pressure angle: "GEAR_WIDTH NUMBER /*齿轮宽度"Enter the gear width: "RAD_FILLET NUMBER /*齿槽圆角半径"Enter rad_fillet:"SHAFT_DIA NUMBER /*轴孔直径"Enter shaft_dia:"KEY_WIDTH NUMBER /*键槽宽度"Enter key_width:"KEY_HEIGHT NUMBER /*键槽高度"Enter key_height:"END INPUTRELATIONSINV A=TAN(ALPHA)-ALPHA*PI/180/*标准压力角时的渐开线函数值INV AP=2*(X1+X2)*TAN(ALPHA)/(Z1+Z2) +INV A/*计算啮合角时的渐开线函数值AP=10SOLVE /*解方程程序INV AP=TAN(AP)-AP*PI/180FOR APHA=1 /*齿顶高系数IF M<1 /*径向间隙系数的确定C=0.35ELSEC=0.25ENDIFR1 = 0.5*M*Z1 /*齿轮1分度圆半径R2 = 0.5*M*Z2 /*齿轮1分度圆半径D = R1+R2 /*标准中心距RD = D*COS(ALPHA)/COS(AP)/*实际中心距RB1 = R1*COS(ALPHA) /*基圆半径RF1 = R1-M*(HA+C-X1) /*齿根圆半径RA1 = RD-R2+M*(HA-X2) /*齿顶圆半径THICK1 = M*(0.5*PI+2*X1*TAN(ALPHA))/*分度圆上齿厚(弧长)TOOTH_THICK1=THICK1*COS(ALPHA)+2*RB1*INV A /*基圆上齿厚(弧长)ANG_TOOTH_THICK1=TOOTH_THICK1/RB1*180/PI /*基圆上齿厚角(度)D0=RA1 /*内部参数赋值D1=GEAR_WIDTHD2=360/Z1D3=ANG_TOOTH_THICK1D4=180/Z1D5=RB1D13=RF1D14=RAD_FILLETD15=360/Z1P16=Z1D36=SHAFT_DIAD37=KEY_HEIGHTD38=KEY_WIDTHEND RELATIONS…………………………5.2 b种情况的齿轮自动化设计Program原程序VERSIONREVNUM 60662LISTING FOR PART GEAR_BINPUTZ1 NUMBER /*齿轮1齿数"Enter Z1: "Z2 NUMBER /*齿轮2齿数"Enter Z2: "M NUMBER /*模数"Enter M: "X1 NUMBER /*齿轮1变位系数"Enter x1:"X2 NUMBER /*齿轮2变位系数"Enter x2:"ALPHA NUMBER /*压力角"Enter the pressure angle: "GEAR_WIDTH NUMBER /*齿轮宽度"Enter the gear width: "RAD_FILLET NUMBER /*齿槽圆角半径"Enter rad_fillet:"SHAFT_DIA NUMBER /*轴孔直径"Enter shaft_dia:"KEY_WIDTH NUMBER /*键槽宽度"Enter key_width:"KEY_HEIGHT NUMBER /*键槽高度"Enter key_height:"END INPUTRELATIONSINV A=TAN(ALPHA)-ALPHA*PI/180/*标准压力角时的渐开线函数值INV AP=2*(X1+X2)*TAN(ALPHA)/(Z1+Z2) +INV A/*计算啮合角时的渐开线函数值AP=10SOLVE /*解方程程序INV AP=TAN(AP)-AP*PI/180FOR APHA=1 /*齿顶高系数IF M<1 /*径向间隙系数的确定C=0.35ELSEC=0.25ENDIFR1 = 0.5*M*Z1 /*齿轮1分度圆半径R2 = 0.5*M*Z2 /*齿轮1分度圆半径D = R1+R2 /*标准中心距RD = D*COS(ALPHA)/COS(AP)/*实际中心距RB1 = R1*COS(ALPHA) /*基圆半径RF1 = R1-M*(HA+C-X1) /*齿根圆半径RA1 = RD-R2+M*(HA-X2) /*齿顶圆半径THICK1 = M*(0.5*PI+2*X1*TAN(ALPHA))/*分度圆上齿厚(弧长)TOOTH_THICK1=THICK1*COS(ALPHA) +2*RB1*INV A /*基圆上齿厚(弧长)ANG_TOOTH_THICK1=TOOTH_THICK1/RB1*180/PI/*基圆上齿厚角(度)D0=RA1 /*内部参数赋值D1=GEAR_WIDTHD2=360/Z1D3=ANG_TOOTH_THICK1D4=180/Z1D5=RB1D13=RF1D14=RAD_FILLETD15=360/Z1P16=Z1D116=SHAFT_DIAD117=KEY_HEIGHTD118=KEY_WIDTHEND RELATIONS……………………5.3 结合a和b两种情况后的齿轮自动化设计Program原程序VERSIONREVNUM 145LISTING FOR ASSEMBLY GEARINPUTZ1 NUMBER /*齿轮1齿数"Enter Z1: "Z2 NUMBER /*齿轮2齿数"Enter Z2: "M NUMBER /*模数"Enter M: "X1 NUMBER /*齿轮1变位系数"Enter x1:"X2 NUMBER /*齿轮2变位系数"Enter x2:"ALPHA NUMBER /*压力角"Enter the pressure angle: "GEAR_WIDTH NUMBER /*齿轮宽度"Enter the gear width: "RAD_FILLET NUMBER /*齿槽圆角半径"Enter rad_fillet:"SHAFT_DIA NUMBER /*轴孔直径"Enter shaft_dia:"KEY_WIDTH NUMBER /*键槽宽度"Enter key_width:"KEY_HEIGHT NUMBER /*键槽高度"Enter key_height:"END INPUTRELATIONSHA=1 /*齿顶高系数IF M<1 /*径向间隙系数的确定C=0.35ELSEC=0.25ENDIFR1 = 0.5*M*Z1 /*齿轮1分度圆半径RB1 = R1*COS(ALPHA) /*基圆半径RF1 = R1-M*(HA+C-X1) /*齿根圆半径END RELATIONS……………IF RF1/*a种情况齿轮,否则加入b种情况齿轮EXECUTE PART GEAR_A/*执行a种情况齿轮Z1 = Z1 /*外部参数输入Z2 = Z2M = MX1 = X1X2 = X2ALPHA = ALPHAGEAR_WIDTH = GEAR_WIDTHRAD_FILLET = RAD_FILLETSHAFT_DIA = SHAFT_DIAKEY_WIDTH = KEY_WIDTHKEY_HEIGHT = KEY_HEIGHTEND EXECUTEADD PART GEAR_A /*加入a种齿轮INTERNAL COMPONENT ID 39END ADDELSEEXECUTE PART GEAR_B/*执行b种情况齿轮Z1 = Z1 /*外部参数输入Z2 = Z2M = MX1 = X1X2 = X2ALPHA = ALPHAGEAR_WIDTH = GEAR_WIDTHRAD_FILLET = RAD_FILLETSHAFT_DIA = SHAFT_DIAKEY_WIDTH = KEY_WIDTHKEY_HEIGHT = KEY_HEIGHTEND EXECUTEADD PART GEAR_B /*加入b 种齿轮INTERNAL COMPONENT ID 40END ADDEND IF……………6 造型实例图5是本二次开发软件在Pro/ENGINEER软件中自动生成的圆柱齿轮实体模型。
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文件夹中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ProE 二次开发入门实例
1.创建项目
这个就不用多说了吧,新建–>项目–>C++->MFC DLL
2.项目配置
这个可以参考我以前的一篇文章:Pro/ENGINEER的二次开发(5)-Vc环境配置
3.初始化菜单文件
在这里,先创建一个菜单,作为演示,:
(1)在住文件添加Pro/TOOLKIT头文件。
由于在后面的操作中,都要用到这些头文件,故将头文件放到stdafx.h文件中。
(2)添加Pro/TOOLKIT程序的初始化函数和终止函数,
(3)创建一个窗体:右键单击解决方案的资源文件,然后点击添加Dialog,如图:
(4)添加一个按钮,然后双击添加类向导,创建CTestDialog类,然后再窗体中添加一个按钮,做测试之用,如图:
(5)双击按钮,添加一个按钮单击函数,写下一下代码:
void CTestDialg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
AfxMessageBox("Hello ,Pro/e second develop!!!~~~");
}
4.创建菜单
(1)将窗体头文件引入到主程序中,添加一些必要的声明定义:
//添加初始化启动函数
//这里附带将菜单的实现部分加进来
//定义菜单的命令函数
//1.窗体显示函数
void helloFormFn();
//2.用户菜单访问权限设置随时有效
static uiCmdAccessState helloFormAccessFn(uiCmdAccessMode access_mode){
return ACCESS_AVAILABLE;//设置全有效
}
//3定义全局对话框变量
CTestDialg * hellodlg=NULL;//窗体界面,后续更改
(2) 接下来,开始写菜单注册函数了,具体的都在下面,:
5.生成Dll文件
右键项目,然后点击生成,即可
6.编写菜单资源文件
在项目目录下创建一个text文件夹,然后再在里面分别创建chinese_cn和usascii两个文件夹.再分别
在里面创建一个文本文件message.txt,内容为:
Gear
毕业设计
#
#
Hello
演示测试效果
#
#
演示测试
演示测试
#
#
7.注册到Pro中,
详细说明见Pro/ENGINEER的二次开发(10)-注册到Proe
最后,见两张示意图:。