(完整版)ProE_二次开发入门实例

合集下载

Pro_Engineer二次开发关键技术研究实例

Pro_Engineer二次开发关键技术研究实例
"""+ 5 *. + 5 2. + 5 ( (应用 ""6 E E A & # 2> & @ %@ / 3 6 9* 3 6 1* 3 6 U U
( ; <. = > ?: > 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环境下使用方法(下)

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二次开发教程

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二次开发

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野火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二次开发

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直齿轮二次开发

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二次开发—入门篇

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文件夹中。

proe二次开发教程

proe二次开发教程

proe二次开发教程——手把手教你如何二次开发本实例是针对proe4.0在VS2005环境下的开发,对于vs2003以上版本的开发本例均适用,本例从开始的打开vs2005软件开始讲解,一步不漏,并加入适当的解释和必要的说明,相信照着做完之后应该没有不成功的了!注:软件安装注意事项:proe的安装目录不能有空格,比如:“D:\Program Files\proeWildfire 4.0”是不对的,运行的时候会出错,要把路径中的空格去掉,如“D:\proeWildfire4.0”一、配置相关信息:打开VS2005,选择工具——》选项,在“项目和解决方案”中选择“VC++目录”,在“显示一下内容的目录”中选择“包含文件”,加入以下文件:D:\proeWildfire4.0\protoolkit\includesD:\proeWildfire4.0\protoolkit\protk_appls\includesD:\proeWildfire4.0\prodevelop\includes在“显示一下内容的目录”中选择“库文件”,加入以下文件:D:\proeWildfire4.0\protoolkit\i486_nt\objD:\proeWildfire4.0\prodevelop\i486_nt\obj注:这是开始前的环境配置,一次配置之后永久生效,以后再新建项目就不需要再配置了二、新建项目,进行项目设置:文件——》新建——》项目:选择MFC DLL 模板,输入项目名称:确定后点完成,项目生成后选择项目——》属性,进行属性设置:在test(本例的项目名称)属性页中选择配置属性——》连接器——》输入,在附加依赖项里加入:wsock32.libmpr.libpsapi.libprotk_dllmd.lib注:对于不同的环境附加依赖项是不同的,以上是VS2005版本的开发软件附加依赖项,如果是VC++6.0则是“protk_dll.lib protoolkit.lib mpr.lib wsock32.lib ”,同时还要加入忽略库“msvcrt.lib”,还要选择“强制输出”,否则程序会因为一些警告终止编译。

Proe二次开发入门教程

Proe二次开发入门教程

首先安装好proetoolkit和vc++6.0从windows2k的[开始][程序]中打开vc++6.0一、设置工作环境从菜单上打到tool=>options弹出对话框如下图选取Directories(1),选取添加(2),浏览、(3),在4号位置中找到X:\PROEWILDFIRE\PROTOOLKIT\INCLUDES目录。

按确定按钮(5)重复2、3、4、5,找到X:\PRO2001\PRODEVELOP\INCLUDES目录.按6号位置后选Library files用同样的方法对照下面两个图进行设置,注意红框中的内容不要搞错了。

最后按[OK].二、对照下图7、8、9、10 后按[OK;[Finish][OK].三、从菜单选Project=>setting后对照下图设置。

将下面这两行分别粘贴到图示位置中,同样要看清红框中的内容。

最后按[OK]. protk_dll.lib prodev_dll.lib wsock32.lib mpr.lib kernel32.lib MSVCRTD.lib四、按图上14号位的FileView.接着15号;16号;双击17号将下面这一段完整地粘贴到18号标明的那一行后面。

将工程全部保存后,从菜单上选Build;Rebuild All。

#include" ProToolkit.h"#include "ProMenu.h"#include "ProMenuBar.h"#include "ProUtil.h"static uiCmdAccessState TestAccessDefault(uiCmdAccessMode access_mode) {return (ACCESS_AVAILABLE);}void Check(){AfxMessageBox("CONSUMMATION!");}/*====================================================================*\ FUNCTION : user_initialize()PURPOSE : Pro/TOOLKIT程序的总入口,完成初始化工作\*====================================================================*/ extern "C" int user_initialize(int argc,char *argv[],char *version,char *build,wchar_t errbuf[80]){ProError status;uiCmdCmdId cmd_id;ProFileName mf;ProStringToWstring(mf,"usermsg.txt");status = ProMenubarMenuAdd ("Menu0", "USER Menu0","Help", PRO_B_TRUE, mf);status = ProMenubarmenuMenuAdd ("Menu0", "Menu1", "USER Menu1",NULL, PRO_B_TRUE, mf);status = ProCmdActionAdd("Menu2", (uiCmdCmdActFn)Check,uiCmdPrioDefault, TestAccessDefault, PRO_B_TRUE, PRO_B_TRUE, &cmd_id]status = ProMenubarmenuPushbuttonAdd ("Menu1", "Menu2","USER Menu2", "USER Menu2 help", NULL, PRO_B_TRUE,cmd_id, mf);return 0;}extern "C" void user_terminate(){}在vc++中按new按钮,将下面这段粘贴至其中,保存成为 protk.datNAME myfirstEXEC_FILE ./debug/myfirst.dllTEXT_DIR ./textSTARTUP = DLLFAIL_TOL = TRUEDELAY_START FALSEALLOW_STOP TRUEEND再一次在vc++中按new按钮,将下面这段粘贴至其中,保存名称为usermst.txt在Save as对话框中新建一个文件夹text,将usermst.txt保存在其中。

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文件夹中。

ProE_二次开发入门实例

ProE_二次开发入门实例

ProE 二次开发入门实例1.创建项目这个就不用多说了吧,新建–>项目–>C++->MFC DLL2.项目配置这个可以参考我以前的一篇文章: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最后,见两张示意图:。

Proe5.0二次开发

Proe5.0二次开发

单击“下一步”
选择“带静态链接带 MFC 的规则 DLL”,后点击“完成”
3、进行工程属性配置 (1)“项目” “选项” “配置属性” “常规”,点击 右上角的“配置管理器”,如图:
(2)“字符集”选用“使用多字节字符集”,如下图所示:
“预处理器定义”
代码生成:
语言:
连接器 输入 附加依赖项:
点击“辅助应用程序”之后显示:
选中之前写好的“protk.dat”文件,点击注册,后运行…
That’s all…
五、函数实现:
• • • • • • • •
添加头文件: #include "ProMenubar.h" #include "ProMenu.h" #include "ProUtil.h" #include <ProToolkit.h> #define MSGFILE "message.txt" #pragma comment(lib, "netapi32") static uiCmdAccessState UserAccessTestMenu (uiCmdAccessMode);
包含文件的添加:
(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);

Proe二次开发启蒙教程

Proe二次开发启蒙教程
▪ ProWcellTypeGet() 动作的类型,例如: ▪ Get: 直接从pro/e 的数据库中读取信息 ▪ Eval:提供简单的计算结果 ▪ Comቤተ መጻሕፍቲ ባይዱute:提供计算复杂结果,例如包含模型的几何分析等数据
第18页,共36页。
函数的返回值
▪ 绝大多数pro/toolkit函数的返回值类型是ProError。 ProError是枚举类型,使用不同的值表示各 种常见的各种情况。函数调用成功的正常值是PRO_TK_NO_ERROR.函数失败的原因可能是操 作中的实际问题,也可能是一些良性原因。
第21页,共36页。
Pro/toolkit应用程序的主体框架
▪ #include "ProToolkit.h"
▪ int user_initialize() ▪{
▪ return (0); ▪} ▪ Void user_terminate ▪{
▪}
第22页,共36页。
2.菜单文件
Pro/e的菜单有两种形式,
<machine>
Obj
includes
Pd-drill
Pd-example
Pd-install-test
第11页,共36页。
Pd-tinkertoy
<tk-loadpoint >
Pro/toolkit
prodev
includes
includes
readme
Protk-appls
<machine>
▪ 3.在installation configuration窗口中点击pro/help,再点击其中的add 按钮添加ptc/prohelp文件的路径。

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二次开发教程之VC篇Automation Gateway插件实现元件自动装配

proe二次开发教程之VC篇Automation Gateway插件实现元件自动装配

Automation Gateway元件的装配涉及两个主要的函数一个是AsmAddComponent 和AsmAddConstraint。

AsmAddComponent添加一个元件到装配体中(封装形式),再使用AsmAddConstraint约束添加的元件。

AsmAddConstraint为元件添加约束。

例子:这个例子是装配一个新的元件(a.prt)到装配体(asm1.asm)中首先是把零件模型"a.prt" 载入到PROE的内存中(程序行 lGwErr = gw.ModelRetrieve("a.prt") )添加元件的约束1. 对齐元件a中的MATE_SURF 基准平面和装配体中b元件的ASMMATE_SURF 基准平面。

2. 对齐元件a中的AX_A_1基准轴和装配体中b元件的A_1基准轴。

这样就把元件a装配到装配体asm1中了。

代码:Public gw As New GWayAX‘装配元件aPrivate Sub a_Click()Dim lGwErrAs LongDim lID(1 To 3)As Longgw.ModelRetrieve ("D:\VBasm\a.prt")lGwErr = gw.AsmAddConstraint(lID(1), ALGN, "D:\VBasm\a.prt", "MATE_SURF","D:\VBasm\asm1.asm/b.prt.40", "ASMMATE_SURF", 0)If Not (lGwErr = 0) Then GoTo ErrorTestlGwErr = gw.AsmAddConstraint(lID(2), ALGN, "D:\VBasm\a.prt", "AX_A_1","D:\VBasm\asm1.asm/b.prt.40", "A_1")If Not (lGwErr = 0) Then GoTo ErrorTestlGwErr = gw.AsmAddComponent(lID(3), "D:\VBasm\asm1.asm", "D:\VBasm\a.prt") ErrorTest:If lGwErr = 0 ThenMsgBox ("装配 - 成功")ElseMsgBox ("装配 - 失败" & vbCrLf & _"Error number: " & lGwErr)End IfEnd Sub‘打开装配体asm1Private Sub asm1_Click()gw.ModelRetrieve ("D:\VBasm\asm1.asm")gw.SessionSetCurrentModel ("D:\VBasm\asm1.asm")End Sub附件使用方法:把附件复制到D:盘,解压到当前文件夹(确保模型的路径符合代码的要求)——运行程序~~~(有安装AGW软件)。

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++中的连接目录的设置已经结束。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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
最后,见两张示意图:。

相关文档
最新文档