PROE二次开发

合集下载

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_二次开发入门实例

ProE_二次开发入门实例
un)h«lloFceesFn
」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二次开发步骤

基于VC++的ProE3.0二次开发步骤
#include "ProMenu.h"
#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二次开发(附代码)

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二次开发测试及环境配置方法

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系统二次开发技术

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

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入门简介

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函数访问处理。

Proe.Creo二次开发未解锁问题总结

Proe.Creo二次开发未解锁问题总结

1.问题:
Example2_1项目未能在Creo2.0软件的辅助应用程序中打开
2.尝试方法:
1.阅读API中内容,查找API中解锁相关内容
2.对比在proe5.0上搭建好的功能,解锁proe5.0的Example2_1.dll文件,希望通过解锁其dll 文件来移植到creo新的环境中。

3.发现未解锁原因为提供者问题,重新新建项目,将之低版本文件一个个复制进去。

4.重新下载creo2.0版本软件(觉得有可能是creo安装包的问题)
5.重新配置vs2010的环境
6.百度:
7.询问qq群:
群里开发人员认为缺少高级授权,认为这个无法解决。

3.存在问题
1.解锁结果:需要高级的选项(TOOLKIT-3D_Drawings),这部分盗版creo
2.0安装中
均无此模块;
2.Proe5.0通过cmd 运行protk_unlock.dat解锁Example2_1.dll同样出现Unlocking application requires option Creo Parametric TOOLKIT-3D_Drawings的问题;
3. 重新建立项目还是失败。

项目是本人创建,但未解锁原因一直显示联系提供者。

4.其他方案均未能解决。

Pro-e(野火版)二次开发之MTool功能应用(YFB-GY-03)

Pro-e(野火版)二次开发之MTool功能应用(YFB-GY-03)

Pro/e(野火版)二次开发之MTool功能应用一.MTool的安装以及Pro/e中文的转换1.MTool的安装把“M:\mtool安装文件”里面的6个文件复制到“C:\Windows(或Winnt)\system32”下;2.Pro/e中文转换安装(更新安装)如已安装则不需要执行该步。

步骤如下:a.找到:“C:\Program Files\proeWildfire 2.0\bin\ptcsetup.bat”文件并双击,出现以下的界面并连续点击4次“下一个”(或next)按钮,如下图所示:b.把“Pro/ENGINEER”进行“编辑”:c.找到“Chinese_Translation”并添加到右边的“启动扩展名及浮动许可证”栏:d.安装完成后,确认退出即可。

3.系统语言中文显示设置“我的电脑”→“属性”(右键点击下拉菜单)→“高级”→“环境变量(N)”→“新建”变量名和变量值:二.文件的Update打开M:盘,找到“”文件并拷贝到桌面,双击后弹出如下对话框:完成以上步骤后会发现在D盘下多了“tmpl”和“Edm”文件夹。

三.当M盘已连上,这时打开PRO/E(野火版),你会发现菜单栏中多了一个MTOOL下拉菜单,里面有很多实用的功能,如下图所示:这时表示MTOOL安装成功。

四.MTOOL功能的介绍✧重命名装配通常在确定模胚规格后,应将总装配、模胚装配、模胚装配中的所有零件名的“MOLD”改为实际模号。

步骤:1.把总装配以及和总装配所对应的图纸、bom表打开再返回总装配;2.点击下拉菜单“MTool”→“重命名装配”,弹出如下对话框,将“MOLD”改为实际模号;3.点击“修改”按钮,系统即可将各装配以及装配中所有零件名全改为实际模号,并自动存盘。

注意:1.总装配所对应的图纸以及bom表在改好实际模号后再单独改名,点击图标改名后保存关闭即可。

2.用全3D设计的模,如果遇到有一部份零件名没有修改成功,要先把文件备份一份,但是图纸和bom表不能备份出来,要自行拷贝到备份的文件里,然后打开备份的装配改名。

ProE二次开发

ProE二次开发

Pro/E二次开发Pro/E在提供强大的设计、分析、制造功能的同时,也为用户提供了多种二次开发工具。

常用的二次开发工具有:族表(Family Table)、用户自定义特征(UDF)、 Pro/PROGRAM、J—Link和 Pro/TOOLKIT等。

(1)族表 (Family Table)。

族表是一个用表格来驱动模型的工具,通过族表可以方便地管理具有相同或相近结构的零件,特别适用于标准零件的管理。

族表可以将事先定义好的模型(称为“GENERIC”的零件)中可供驱动的尺寸参数、特征、模型参数等放入表格中,通在表格中输入参数值就可创建一个新的零件(称为“INSTANCE”的零件)。

族表的产生过程是,首先建立一个具有代表性的零件,此零件称为通用零件或原始零件 (GENERCI RART)。

然后,根据可变情况编辑族表项目,可变项目可以是:尺寸(Dimension)、参数 (Parameter)、特征(Featrue)、与组件(Component)等。

完成族表内容后,需进行校验,然后系统会自动一一再生,从而生成若干子零件(Instance Part)。

(2)用户定义特征(UDF)。

用户定义特征是将若干个系统特征融合为一个自定义特征,使用时作为一个整体出现。

UDF适用特定产品中的特定结构,有利于设计者根据产品特征快速生成几何模型。

(3)Pro/PROGRAM应用简单易操作,但主要用于开发简单的控制程序,实现一些简单的功能,无法实现与Pro/E集成,无法与外部数据库相连,不适合于开发大型的CAD系统,只可用于开发一些简单的具有高度重复性的零件。

(4)J—Link是对Pro/E进行封装,功能上与Pro/TOOLKIT相近,能完成较复杂的程序的开发,但相比较于Pro/TOOLKIT,有些功能目前还没有实现,还有待于以后的继续发展。

( 5)Pro/TOOLKIT是美国PTC公司为Pro/E软件提供的开发工具包,其主要目的是让用户或第三方通过C程序代码扩充Pro/E的系统功能,开发基于Pro/E系统的应用程序模块,从而满足用户的特殊要求。

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

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

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。

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

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