proe二次开发教程

合集下载

ProE40二次开发教程之VB篇

ProE40二次开发教程之VB篇

ProE4.0二次开发教程之VB篇:Pro/Toolkit(VC)和AGW插件配合使用(Wildfire野火4.0版本)好了,今天就把这个题目给结束掉啦~~这篇教程主要的是讲一下如何在VC环境下使用AGW插件来进行PROE开发。

先说两个好处吧,你可以使用VC强大的MFC类库;你还可以将AGW和PRO/TOOLKIT混合使用,AGW简单易用,代码量少,PRO/TOOLKIT功能强大。

废话少说,立马就入正题,进入正题之前,也是要提醒大家的,确保你的计算机已经安装好了VC6.0,PROE(这里是PROE 4.0 C000),AGW插件这几个重要的软件,还有你要了解PROE软件的一些基本术语和操作,了解VC的一些基础知识。

你可以一步一步地跟着这个例子(这个例子是打开一个PROE模型)做,到最后你就可以很方便地在VC环境下使用AGW插件的对象和方法了。

==更多精彩,源自无维网()1.启动VC6.0。

2.『文件』->『新建』命令,在弹出的对话框中进行如图操作。

3.在如图弹出的对话框中选中(基本对话框)选项,点完成,在弹出的对话框中点确定按钮。

这样就建立了一个基本对话框的应用程序了。

4.在VC环境进行如图操作,如图添加代码(绿色的为注释,可不添加)。

5.在VC环境进行如图操作,如图添加代码(绿色的为注释,可不添加)。

其中第一行代码#import "D:\RAND\GWAX.exe"中引号内的是AGW插件的安装路径。

6.在VC环境进行如图操作,如图添加代码(绿色的为注释,可不添加)。

7.在VC环境进行如图操作,如图添加代码(绿色的为注释,可不添加)。

8.在VC环境进行如图操作1、2;3:删去设计对话中的原有控件,并添加如图添加一个编辑框和一个按钮,其中编辑框的ID设为IDC_LOADMODEL_EDIT;按钮的ID设为IDC _LOADMODEL_BUTTON,标题为“在当前PROE窗口显示模型”。

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

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 '启动成功"。

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

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进程对象的句柄。

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

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

二次开方法和关键

二次开方法和关键

Pro/ENGINEER 的二次开发方法Pro/e提供的二次开发方法有很多如表族(Family Table),用户定义特征(UDF),Pro/Program, J-Link, Pro/toolkit,Rand公司开发的Automation Gateway等,在不同的应用场合,它们各有其优点。

根据模架的结构特点,先用较为合适Pro/ENGINEER 的二次开发方法。

2各种方法的简介2.1 族表(Family Table)Family Table 称为族表,通过族表可以方便的管理具有相同或相近结构的零件,特别适用于标准零件的管理。

族表通过建立通用零件为父零件,然后在其基础上对各参数加以控制生成派生零件。

整个族表通过电子表格来管理,所以又被称为表格驱动。

2.1.1标准模架库建立的过程(1)标准模架库的命,名组织标准模架库的使用是通过调用实体造型文件中的Instantiate(实例)来实现的,使用中必须遵循一定命名规则才能正确调用标准件库中所需的实例。

为此,把标准模架库的根目录建立在Pro/ENGINEER的安装目录下,按照模架的类型分别建立相应的子目录如Back pillar sets(后导柱模架)Center pillar sets(中间导柱模架)Diagonal pillar sets(对角导柱模架)等。

路径为<Pro/ENGINEER>\STDLIB\Back pillar sets。

Back pillar set 的下面又细分为各种型号的模架。

如图所示(2)建立模板利用Pro/e的实体造型功能,为标准模架所需的各个标准零件造型,如上模座、下模座、导柱、导套等,并存入到相应的子目录。

(3)装配模架利用步骤,所设计的标准零件,建立标准模架的装配图,存入到相应的子目录。

此装配图将作为通用组件,用来生成一系列标准模架。

(4)利用Pro/Program对模架的装配模板进行参数化编程2.1.2在装配模板中编程时,主要用到的语句有三种:①INPUT…END INPUT语句对于所设计零件的某些关键性尺寸或可以弹性化改变的尺寸,Pro/ENGINEER都会分别给它们一个变量如d0,d1等。

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文件的路径。

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

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

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

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”,还要选择“强制输出”,否则程序会因为一些警告终止编译。

至此,所有相关的设置都已经完成!三、添加代码:在test.cpp 文件下加入如下代码:#include <ProToolkit.h>#include <ProMenu.h>#include <ProMenuBar.h>#include <ProUtil.h>void MyTest();static uiCmdAccessState UserAccessTestMenu (uiCmdAccessMode);extern "C" int user_initialize(){AfxEnableControlContainer();ProError status;ProName menumsgfile;uiCmdCmdId cmd_id;//在Help菜单的左边添加Test菜单ProStringToWstring(menumsgfile,"usermsg.txt");status = ProMenubarMenuAdd("Test","Test","Help", PRO_B_FALSE,menumsgfile);status =ProCmdActionAdd("MyTest",(uiCmdCmdActFn)MyTest,uiCmdPrioDefault,UserAccessTestMenu,PRO_B_TRUE, PRO_B_TRUE,&cmd_id);status = ProMenubarmenuPushbuttonAdd("Test","Hello","Hello","HelloHelp",NULL,PRO_B_TRUE,cmd_id,menumsgfile);return(0);}static uiCmdAccessState UserAccessTestMenu(uiCmdAccessMode access_mode){return (ACCESS_AVAILABLE);}void MyTest(){AfxMessageBox(_T("祝贺你!测试成功!"));}extern "C" void user_terminate(){}四、添加消息菜单:在目录“D:\test”下新建文件夹“text”,在文件夹中新建一个txt文件,取名为usermsg.txt,内容为:Test&Test测试(&T)#Hello&Hello你好(&H)#Hello HelpHello! This is a Pro/TOOLKIT sample.你好!这是第一个使用VC++开发TOOLKIT应用程序。

#五、编译,生成解决方案:至此,程序编译完成!注:如果编译过程中出现“0已成功 1已失败”,则说明程序有错误,对不起,回头找找吧,找不清楚后面别看了……六、编写注册文件:新建一个dat文件,位置自定,加入内容:name teststartup dllallow_stop TRUEexec_file D:\test\debug\test.dlltext_dir D:\test\textrevision 1151end注:这是注册文件,相关信息的作用请自己翻书了,我前面的帖子也有介绍的,最好放在启动目录里,调用的时候省事!七、使用辅助应用程序:打开proe软件,选择工具——》辅助应用程序:在弹出的对话框中点注册,选择第六步所写的注册文件,点击启动,则菜单上就会出现“测试(T)”菜单了:点击测试——》你好,会弹出对话框“祝贺你!测试成功!”,如图:至此,菜单的测试完成,这说明这个插件可以用了!后面将介绍如何插入对话框!八、添加对话框:右击资源视图中的test.rc,选择“添加资源”,在弹出的添加资源对话框中选择“Dialog”,新建之!如图:将新建的对话框更名为预览窗口,右击窗口空白处,在快捷菜单下选择“添加类”选项:在弹出的MFC类向导对话框中添加名为“dlg”的类:在test.cpp 文件中加入头文件“#include "dlg.h"”,并将刚才弹出的测试成功对话框改成自己新建的对话框,即将“AfxMessageBox (_T("祝贺你!测试成功!"));”处改成AFX_MANAGE_STATE(AfxGetStaticModuleState());dlg dlg;dlg.DoModal();编译之,编译成功后打开proe软件,注册插件,在新建的测试菜单下选择“你好”,就会弹出自己编辑的对话框!至此,编辑完毕!需要加入控件或者其他的东西就可以在这个对话框中添加,那就是后续的东西了,在此不详述了……PRO/ENGINEER二次开发常见问题解答1、 PRO/ENGINEER二次开发中,如何实现自动注册要实现DLL程序文件的自动注册,需要把注册文件(.dat)文件放到PRO/ENGINEER指定的几个文件夹,取名为Protk.dat,下面是几个存放注册文件的位置。

(1) Pro/ENGINEER启动目录下的Protk.dat或Prodev.dat。

(2)在Pro/ENGINEER的配置文件中,指定的以“PROTKDAT”、“PRODEVDAT”或“TOOLKIT_REGISTRY_FILE”变量所存储的位置下的Protk.dat或Prodev.dat。

(3) $LOADDIR\$MACHINE_TYPE\text\<LANGUAGE>目录下的Protk.dat或Prodev.dat。

(4) $LOADDIR\text目录下的Protk.dat或Prodev.dat。

如果在这些文件夹下还无法实现自动注册,可能是PRO/ENGINEER版本存在问题,访问PTC公司的网站:/go/timeout/,并下载相关补丁,具体操作过程如下:(1)、打开windows系统的任务管理器,在进程中选中nmsd,结束该进程。

(2)、在/go/timeout/下载nmsd.exe,放在一个临时文件夹中。

(3)、用下载的nmsd.exe覆盖$LOADDIR\$MACHINE_TYPE\i486_nt\nms下的nmsd.exe;(4)、重新启动PRO/ENGINEER就能自动加载菜单,并且在WINDOWS的任务管理器的进程中出现nmsd。

2、如何调用PRO/ENGINEER已有的按钮要调用PRO/ENGINEER已有的按钮,有两种方法。

(1)、使用函数ProCmdCmdIdFind()函数。

(2)、使用函数ProMacroLoad()或ProMacroExecute(),执行记录的一段宏命令。

也可以实现原有菜单的调用。

3、调用自定义菜单后,为什么PRO/ENGINEER的工具栏菜单中的再生按钮会消失当使用自定义菜单调用一个界面之后,当前的窗口将会处于非激活状态,所以很多的操作将无法使用。

可以使用【窗口】菜单下的【激活按钮】,也可以在自定义的菜单的函数中添加如下的语句来激活当前窗口:Int CurrentWindowToActiveID;ProWindowCurrentGet(&CurrentWindowToActiveID);ProWindowActivate (&CurrentWindowToActiveID);4、如何在PRO/ENGINEER中调试DLL程序启动PRO/ENGINEER后,如果有注册运行某程序,但是中间停止了程序,并添加新的菜单项,如果要使这个修改生效,必须重新启动PRO/ENGINEER,因为当注册运行程序一次,这个程序的信息文件就被导入内存,如果程序被停止,但是信息文件并没有从内存中消除,所以当再一次启动程序的时候,仍然使用的是原来的信息文件。

5、如何在程序中修改工作目录要修改工作目录,可以使用Pro/Toolkit提供的函数ProDirectoryChange(),实例程序如下:#include “ProUtil.h” //函数的头文件ProFilename filename1;ProError status;Status=ProDirectoryChange(ProStringToWstring(filename,”d:\temp”));6、一个dat文件怎样才能永久的注册在PRO/ENGINEER中执行在PRO/ENGINEER的菜单中【工具】中的【选项】里面查找protkdat,并设置需要被永久注册的文件名,然后把这个设置保存为config.pro,注册文件需要存放到启动目录中。

相关文档
最新文档