PROE二次开发
proe二次开发教程

proe二次开发教程——手把手教你如何二次开发经历了千辛万苦才把图片截取完整,现在就把它贴出来吧……本实例是针对proe4.0在VS2005环境下的开发,对于vs2003以上版本的开发本例均适用,本例从开始的打开vs2005软件开始讲解,一步不漏,并加入适当的解释和必要的说明,相信照着做完之后应该没有不成功的了!注:软件安装注意事项:proe的安装目录不能有空格,比如:“D:\Program Files\proeWildfire4.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_二次开发入门实例

」rsc_5_muE
J;
xtitus=froMfrnubar m tnuFushbut t onAd4「畀sr"
‘■Mir
」gio"
.KULL
PM_E_TRUE
,niCmdBt.nl
/話
eturn0;
eKtern"C"voiltvfli dj
returnTRUE:
}…『extern intuier_initi aliiefint
jchar*』char*jchar*
*vchar_t电rrbnf[so])
r eturia.L;
】
初始化函数
t匸lX'r?ide
终
⑶创建一个窗体:右键单击解决方案的资源文件,然后点击添加Dialog,如图:
ms®
零Accelerator
S§Bitmap
SfeCursor
SHTML
FJIcon自M@nu
*fcStrrg Tatile到到Toolbar
Ol\ ersion
蜀Resource.h
©stdafx.h
g zenun,h
3 TestDelg.h□资潺立件
3zenun.rc
31zeraun.rc?
IS ReadMe.txt
#inclndtoR«lSet.
ffdncl'udfl<Pr oSalactioklh>includegVEC■吐h>
#include^?r^Notify,
^include<FroFopupmenu. h.>
Sinclude~<Pr oS^llufftr. h>
基于VC++的ProE3.0二次开发步骤

#include "ProMenuBar.h"
#include "ProMdl.h"
#include "ProModelitem.h"
#include "ProDrawing.h"
#include "ProFeature.h"
#include "ProFeatType.h"
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
}
五、打开PROE,工具->辅助程序->注册->运行
#include "ProNotify.h"
#include "ProRefInfo.h"
#include "ProRelset.h"
#include "ProSelection.h"
#include "ProUICmd.h"
#include "ProPopupmenu.h"
#include "ProSelbuffer.h"
//访问权限函数
static uiCmdAccessState UsrAccessDefault(uiCmdAccessMode access_mode)
{
return ACCESS_AVAILABLE;
}
//开始函数
extern "C" int user_initialize(int argc,char* argv[],char* version,char* build,wchar_t errbuf[80])
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二次开发测试及环境配置方法

32位系统preo5.0二次开发测试及环境配置首先,proe5.0是配合VC++2008来进行二次开发的,因此首先得安装VS2008,其次,要确保proe5.0中已经安装了protoolkit,安装方法略。
如何测试Pro/Toolkit 安装成功第一步,找到proe安装目录下的protooltik文件夹,并找到..\protoolkit\i486_nt\obj 这个路径下的一个叫做make_install的文件,用写字板打开,找到如下# Pro/Toolkit Source & Machine Loadpoint (EXTERNAL USE - DEFAULT)这么一行字,然后把它下面的PROTOOL_SRC=../攻成PROTOOL_SRC = ...\PTC\protoolkit,保存下关闭就好了。
第二步,在"开始"中找到Microsoft Visuall Studio Tools Visual Studio Tools Visual StudioTools2008命令提示符,打开。
第三步,在打开的这个界面里面敲下如下字符cd ...\PTC\protoolkit\i486_nt\obj ,然后回车,再敲上如下字符:nmake /f make_install dll ,然后再回车,等其运行完毕,关掉命令提示符,然后再回到...\PTC\protoolkit\i486_nt\obj 文件夹中,会发现多了一个pt_inst_test.dll文件,证明前面的工作全是成功的。
第四步,回到...\PTC\protoolkit文件夹,找到protk.dat文件,用写字板打开,将第二行和第三行前面的"."改成路径...\PTC\protoolkit,将第五行后面的"18”改成"wildfire5.0 ”, 其他保持不变,保存,关闭。
第五步,启动proe5.0,找到工具辅助应用程序,打开,点"注册",找到...\PTC\protoolkit , 里的protk.dat ,打开,选中,点"启动",发现左上角出现"pt_inst_test.dll '启动成功"。
基于Pro/E的CAD系统二次开发技术

各样应 用程序 的开 发 , 界面设计 到数据 库访 问 , 从 能满 足不同
用户 C D系统 的要求 。 A 我们 以 Wi o N / 00为平 台 ,C++ 60为开发环境 , n w T 20 ds v .
体, 可以用 c语 言 中访 问结 构 体成 员 的方 法 , 行其 相 关 的 执 行 为。对象 的大部 分是存 在于 Po E中的数据库项 , r / 如特征 、
No , 0 2 v. 2 0
基 于 Po E的 C D系统 二 次 开发 技 术 r/ A
贺 菲 , 子 建 刘 ( 南 大学 机械 与汽 车 工程 学 院 , 南 长 沙 408 ) 湖 湖 102
摘
要: 着重研 究了基 于 P / r E的 C D系统二 次开发技 术 , o A 介绍 了 PoT O KT开发技 术, r O LI / 探讨
PoT O KT中最常 用 的两 个 基 本 概 念是 对 象 和行 为 , r/ O L I
结果和 Po E的元 缝集成 , 富和扩充 Po E的功能 。 r / 丰 r / 每个 PoT O KT的 c库 函数都执行 一个特定 对象 的一种行 r/ O L I
为。PoT O KT中的对象 是明确 定义且 独 立 的 C语 言结 构 r O LI /
成实体特征 , 而每 个企业在 一定时期 内的产 品大都是不 变的 ,
E C F L | r e 0 0 | mto kt| XE - I E d p o2 0 p o li p k pl mt -a p s\u r r g a \u r\De u sp o r m s b g\u . U d TX E T_ D R I |p o 2X 0 |p oo l i r e t) r to kt|
proe二次开发

一、基于Pro/TOOLKIT的二次开发Pro/TOOLKIT是Pro/ENGINEER软件功能强大的二次开发工具,也称为应用程序接口。
它封装了许多针对Pro/ENGINEER底层资源调用的库函数与头文件,能够使外部应用程序安全有效地访问Pro/E的数据库和应用程序,通过C语言编程及应用程序与Pro/E的无缝集成,客户和第三方能够在Pro/E系统中添加所需的功能。
Pro/ENGINEER 为应用程序提供两种工作模式:同步模式(Synchronous Mode)和异步模式(Asyn—chronous Mode),由于后者使用复杂而很少使用。
同步模式又分为Spawn(多进程模式)和dll(动态连接库模式)。
动态连接库是将Pro/TOOLKIT应用程序集成到Pro/ENGINEER中的标准方法。
在该模式下,Pro/TOOLKIT应用程序和Pro/ENGINEER的信息交换是通过直接函数调用实现的。
使用Pro/TOOLKIT开发应用程序包含3个基本步骤:编写源文件(包括资源文件和程序源文件),生成可执行文件,可执行文件在Pro/ENGINEER中注册并运行。
二、基于J—Link的二次开发Java 是一种面向对象的、多线程的与操作系统平台无关的编程语言,它功能强大,表达能力强。
Java是从C++发展而来的,语法比C++更简单,减轻了编程人员的负担。
J—Link是由PTC公司提供的基于Java的二次开发程序接口,它是Pro/E自带的一个开发工具包,通过这个程序可以开发出一个可以获取Pro/E进程中内部资源的程序。
J—Link也提供了丰富的库函数,可以实现Pro/E系统的大部分功能。
J—Link开发过程类似于Pro/TOOLKIT的开发过程,首先在开发前设置好Java和J—Link 开发的环境变量,选定采用同步模式还是异步模式,一般采用同步模式,然后进行源代码编写和程序的编译。
任何J—Link程序在操纵Pro/E数据之前,必须要先获取一个当前Pro /E进程对象的句柄。
ProToolkit入门简介

Pro/Toolkit入门简介一、ProE客制化开发工具ProE的二次开发工具主要有以下四种(1)Pro/Toolkit基于C/C++语言的二次开发工具包,功能最强大,但学习的难度也最大。
(2)Pro/J-Link基于Java语言的二次开发工具包。
(3)Pro/WebLink基于javascript语言的二次开发工具包,通过编写基于javascript的Web程序,使用户能通过内嵌在ProE中的网页和ProE进行交互操作。
(4)Pro/VB基于Visual Basic语言的二次开发工具包。
Pro/Toolkit与其他二次开发工具包最大的区别在于提供了创建特征的能力,而其他3种工具包则只能创建UDF特征。
但Pro/Toolkit也不是万能的,它能大概实现ProE 80%的功能,而Pro/J-Link&Pro/WebLink&Pro/VB只能实现Pro/Toolkit 60%的功能。
还有一点关系到开发者的切身利益,Pro/J-Link&Pro/WebLink&Pro/VB 是完全免费的,而开发Pro/Toolkit程序需要从PTC公司购买Pro/Toolkit License。
(从网络论坛上得知,2006年的时候,一个Pro/Toolkit License大概需要2万美金。
)二、Pro/Toolkit介绍。
Pro/Toolkit是PTC公司为Pro/E提供的客制化开发包。
它使用户和第三方使用者有能力通过编写C语言程式扩展ProE的功能并无缝集成到ProE中。
Pro/Toolkit提供了大量的C函数库以供外部程式安全地控制和访问ProE。
Pro/Toolkit是ProE客制化开发的首选开发工具。
三、Pro/Toolkit风格Pro/Toolkit采用面向对象的编程风格。
Toolkit应用程序与ProE程序之间传递信息的数据结构,对应用程序而言,并不是直观可见的。
这些数据只能通过Pro/Toolkit函数访问处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//在 Help 菜单的左边添加 Test 菜单 status = ProMenubarMenuAdd("TestMenu", "Test", "Help", PRO_B_FALSE, menumsgf ile); status = ProCmdActionAdd("MyTest", (uiCmdCmdActFn)MyTest, uiCmdPrioDefault, PRO_B_TRUE, &cmd_id); status = ProMenubarmenuPushbuttonAdd("TestMenu", "MainBtn1", "Hello", "Hello Hel p", NULL, PRO_B_TRUE, cmd_id, menumsgfile); return(0); } static uiCmdAccessState UserAccessTestMenu (uiCmdAccessMode access_mode) { return (ACCESS_AVAILABLE); } int MyTest() { AfxMessageBox("祝贺你!"); return 0; } extern "C" void user_terminate() { } 6、添加菜单资源文件 在 Hello 文件下创建 text 子文件夹,用来存放资源文件; 在 text 下添加 usascii 子文件夹,同时创建 usermsg.txt 文件,内容如下: Test &Test # # Hello &Hello #
采用 VC++6.0 的 MFC 类库对用户界面进行二次开发,同时也利用 VC++开发相关的数据库,开发的实 质是在 Pro/ E 系统中调用 MFC 应用程序。在开发中使用 MFC Application(exe) 方式实现 Pro/E 系统、Pro/ Toolkit 应用程序、MFC 应用程序三者之间的通信,通信是通过直接调用函数实现的。Pro/ Toolkit 与 MFC 连接在系统中为每个 Pro/ Toolkit 应用程序都开发了对话框界面,在应用程序加载到 Pro/ E 系统后,点 击定制菜单项即可调用对应的应用程序及其界面。图 1 说明了 Pro/E 系统与 MFC 应用程序的连接方式。
OP 仍可以和 Pro/TOOLKIT 混合在一起使用。 PTC 提供的例子程序和培训教材都是使用 C 语言来进行开发,自己手工编写 makefile
文件,然后通过 nmake 命令在命令行直接编译、连接。这样的方式对于已经习惯于使用 V C++编程的程序员来说,确实受到很多限制。
经过测试,我发现其实也可以在 VC++环境下编写 Pro/TOOLKIT 程序,你会发现比使 用 makefile 的方式更简单,更容易入门。
msvcrt.lib 否则在编译连接时由于库冲突会出错。 5、开始编写程序 接下来,你就可以开始编写程序了。 Pro/TOOLKIT 的程序需必须包括 user_initialize() 和 user_terminate()函数。 user_initialize() 函数中必须至少调用一个 Pro/TOOLKIT API 函数。如果调用失败将导 致 Pro/TOOLKIT 应用程序失败,并返回 PRO_TK_GENERAL_ERROR。 所以,我们在 Hello.cpp 程序中添加以下程序: #include "ProToolkit.h" int user_initialize() { return (0); } void user_terminate() { } 在 Hello.cpp 文件中, 包含需要的头文件: #include #include #include #include 在文件末尾添加以下程序: static int status; static uiCmdAccessState UserAccessTestMenu(uiCmdAccessMode access_mode); int MyTest(); extern "C" int user_initialize() { static wchar_t menumsgfile[] = { 'u','s','e','r','m','s','g','.','t','x','t',''}; uiCmdCmdId cmd_id;
在 VB 和 Pro/ENGINEER 之间起到桥梁和纽带的作用。通过 A,就可以利用 VB 访问 PRO /ENGINEER 的大部分底层资源文件。
(3)基于 J-Link 的二次开发过程
基于 JAVA 语言的二次开发工具,用户通过 JAVA 编程实现在软件 Pro/ENGINEER 中 添加功能。
0 前言 Pro/E 是目前最常用的一款及 CAD/CAM/CAE 为一体的大型参数化软件,其内容涵盖了从概念设计、
工业造型设计、三维模型设计、分析动态模拟与仿真到生产加工成产品的全过程广泛应用于机械电子航空 航天等工业领域。齿轮是机械行业广泛应用的典型零件。通过 VC++和 Pro/Toolkit 二次开发,建立人机交 互界面很方便地实现齿轮参数化设计。利用其提供的 NC 加工模块,设置刀具及各种加工参数,可将设计好 的齿轮进行铣削加工;利用检测模块对刀具路线模拟,观察工件的切削情况,通过后置处理模块进行数据 转换,得到适合机床实际加工所需要的数控程序即 NC 代码,实现齿轮的自动编程。 1 参数化设计 1.1 二次开发简介
Pro/TOOLKIT 是 Pro/ENGINEER 的一个应用程序接口(API),其编程语言是 C 语言,它可 以对 Pro/ENGINEER 进行功能扩展,满足 PTC 客户的特定需求。而且,Pro/TOOLK 提供 了定制标准 Pro/ENGINEER 用户界面的能力,自动执行重复性的程序,通过 Pro/ENGINEER 集成的内部程序(Dll)或外部应用程序(Exe)可以为造型用户提供自定义的应用程序、设计 规划和绘图自动化。
(2)基于 Automation GATEWAY 的二次开发
Automation GATEWAY 是 RAND 公司开发的针对 Pm/ENGINEER 软件的二次开发 工具,与 Pro/ENGINEER 系统自带的二次开发工具 Pro/TOOLKIT 相比,具有简单易用 的优点。应用 AutomationGATEWAY 可以自动实现 Pm/ENGINEER 任务,创建用户界面, 完全实现自动设计任务;应用 AutomationGATEWAY 可以把任何支持 ActiveX 的应用程序 和 Pm/ENGINEER 建立直接联系。利用 VB,可以使 Microsoft Ofice 产品(如 Word,Excel 等)和 Pro/ENGINEER 对象之间进行数据交换。在这个过程中,Automation GATE WAY
以下我来手把手教各位如何 VC++编写第一个 Pro/TOOLKIT 程序。 我的开发和测试环境是: 简体中文 Windows 2000 + SP4 Pro/E 2001 2003010 Visual C++ 6.0 Pro/E 二次开发 1、创建新工程 启动 VC++,新建工程。 选择 MFC AppWizard(dll)方式。 指定工程名称及存放路径。 然后按“OK”按钮。 2、完成新工程的创建 接受缺省设置。 按“Finish”按钮完成。 3、配置开发环境 接下来,你需要配置用来编译、连接 Pro/TOOLKIT 程序的开发环境。 1)设置 Pro/TOOLKIT 和 Pro/DEVELOP 头文件路径; 2)设置库文件路径; 4、当前工程设置 选择 Win32 Release。 设置 Pro/TOOLKIT 程序所需要的几个库文件。 还有很重要的是,需要设置 Ignore libraries:
Pro/TOOLKIT 是 Pro/ENGINEER 软件系统自带的二次开发模块,可以直接访问 Pro/ENGINEER 软件的最底层数据库资源,它几乎能够访问所有 Pro/ENGINEER 的资源, 可以说这是进行 Pro/ENGINEER 二次开发最根本的方法。但想用 Pro/TOOLKIT 进行二次 开发,需要具有 Visual C++或者 C 语言的编程功底。
现在的 CAD/CAM 系统,如 Pro/ENGINEER、UG 等,都是比较通用的大型软件系统, 用这样的大型系统建立我们所需要的产品模型可能需要大量的时间。如果能在此类软件的基 础上,开发出适合本单位产品的应用程序,无疑会大大提高本单位产品的设计效率,加快产 品的更新速度,从而提高企业的市场竞争能力。所谓“二次开发”就是在商业应用软件系统的 基础上开发本地化应用程序的过程。
Pro/TOOLKIT 是 Pro/E 软件自带的二次开发模块,可以直接访问 Pro/E 软件的最 底层数据库资源,这是进行 PRO 二次开发最根本的方法,但要求开发人员具有相当 C 语言 的编程能力;它是 PTC 公司为 Pro/E 提供的用户化工具箱(18 以前的版本为 Pro/ DEVELOP),该工具箱为用户程序、软件及第三方程序提供了与 Pro/E 的无缝联接。用户 程序和第三方程序是用 c 语言编写的,Pro/T OOLKIT 提供了大量的 c 语言的库函数,能 够使外部应用程序安全有效地访问 Pro/E 的数据库和应用程序。通过 c 语言编程及应用程 序与 Pro/ENGINEER 的无缝集成,用户和第三方能够在 Pro/E 系统中增加所需的功能。
图 1 Pro/E 系统调用 MFC 应用程序