Proe应用ProTOOLKIT二次开发
基于Pro/TOOLKIT的Pro/E二次开发技术研究
锁 定 的 应 用 程 序 在 载 入 到 Po N NE R进 程 中 r/ GI E E
时 会 在 启 动 时 发 生 错 误 。 在 此 ,笔 者 建 议 大 家 用
一
种 新 方法 即可 解决这 个 问题 :在 P oE I E R r/NG N E
择 MF L项 目类 型 ,如 果 要使 用 多进 程 模 式 , CDL 则创 建程 序 时选择 MF XE项 目类型 Ⅲ。本 文主 CE
要 采 用 DL L模式 。
由参 考 文献 【】 3 可知 ,在 对 Po 4 r /  ̄进 行二 次 E 开发 的 VC软 件升级 至 V sa Su i 0 5 i l tdo2 0 ,因此在 u 开 发过 程 中势 必 有 一 些 变 化 。在 此 ,笔 者 针 对 其 开发 过程给 予 一 些讲 解 ,以供参 考 。
具 包 , 还 包 含 基 于 PoWe ik的 二 次 开 发 过 r/ bLn 程 ,这 种 方 法 使 用 的语 言 是 jv sr t 以 网 页 的 a aci , p 形 式 来 访 问 模 型 ;和 基 于 VBAP 的 二 次 I 开 发 过 程 。PoE Wi f e40开 始 可 以 采 用 V sa r / l i . dr i l u
r / P o NGI E E NE R系 统 同 步 运 行 。 同 步 运 行 并 非 并 行运 行 , 同步 的意 思是 Po O KI r / OL T应 用程 序 集 T
成 到 P oE I E R 系 统 中 , 若 Po NG N E r/NG N E r / E IE R
23 新 建项 目和设 置开 发环境 .
211异步模式 ..
Pro_TOOLKIT对Pro_E二次开发参数化设计系统研究
1 参数化设计系统结构组成
Pro/TOOLKIT 是针对 Pro/E 功能强大的二次开发工具。它封 装了许多针对 Pro/E 底层资源调用的库函数与头文件, 借助第三 VC++语言等 ) 进行调试。这里以常规的建模 方编译环境 (C 语言、 方式创建复合模型,并以 c++ 编译工具 VisualC++6.0 作为 Pro/ ENGINEER 的二次开发工具包 Pro/Toolkit 的第三方编译工具编 译参数化程序, 这些程序直接从模型读出所有约束参数, 通过交 互界面对有关参数进行修改, 再根据新的参数值生成新的模型。 本系统主要由主程序、 Pro/E 数据库、数据编辑、三维建模、 API 接口等 5 个模块组成。 如图 1 所示, 为结构形式。 主程序是数 据交换的枢纽, 连接 Pro/E 数据库、 数据编辑、 API 接口、 三维建模 Pro/E 数 等 4 个模块。从图 1 中可以看出。主程序能与数据编辑、 据库进行数据双向传递。通过主程序可以调用各模块。
2.2 生成可执行文件
通过编译程序生成可执行文件, 要生成可执行文件首先需要 (即.mak ) 的文件, 也可以由 Pro / ENGINEER 自 制作一个 makefile 带的 makefile 文件修改得到。Pro / ENGINEER 为应用程序提供 两种工作模式:同步模式和异步模式同步模式又包含两种模式: ) 和多进程模式 (Multiprocess mode, 也 动态连接库模式 (DLL 模式 称为派生模式 Spawned mode ) 。动态连接模式是将 Pro /Toolkit 应 先编译 c 应用程序。 用程序集成到 Pro /ENGINEER 中的标准方法, 与 Pro /Tolkit 库连接, 这种方法称为 DLL 模式。多进程模式是 Pro / Toolkit 支持的第二种将应用程序和 Pro / ENGINEER 集成的方法
基于PRO_TOOLKIT的PRO_E二次开发技术的应用_张红旗
基于PRO/TOOLKI T的PRO/E二次开发技术的应用张红旗,曹文钢,姜康,李宗照(合肥工业大学机械与汽车工程学院C AD/CAM中心,安徽合肥230009)摘要:本文论述了实施二次开发对企业的重要性。
对于即将在三维C AD软件上进行二次开发的企业提出了开发过程中值得注意的问题,如开发系统的目的、开发工具的选取等。
作者通过在软件PRO/E中以Pro/toolki t为开发工具开发的/汽车前轴零件设计系统0,进一步阐述了实施Pro/toolki t二次开发时基本步骤和源文件的编写、可执行文件的生成和可执行文件在PRO/E中的注册运行等关键技术。
最后,作者通过在PRO/E中的开发实践论证了二次开发是企业提高设计能力、增强竞争力的必要手段。
关键词:Pro/toolki t;二次开发;前轴Application of the Pro/toolkit-based Redevel Opment Technology in the PRO/EZhang Hongqi,Cao Wengang,Jiang Kang,Li Zongzhao(School of Mechanical and Automobile Engineering,Hefei University of Technology Hefei,230009) Abstract:Introduced by authors in the paper was the i mportance of the redevelop ment for the en terprise1It suggested those enterprises that were to apply the redevelop ment on the3D C AD software should pay more attention to the following factors,such as the ai m of the redevelopment, the tool of the redevelop ment,etc1By means of Pro/toolkit on the software PRO/E,it has redeveloped a design system of the front axle of the auto-mobile1Through this system,i t further expounded in detail the basic steps and the key technologies which including how to wri te,how to compile and link source files and how to register and run the resulting application in PRO/E1Finally,i t demonstrated that the redevelop ment was a necessary way for the enterpri se to improve developmen t abili ty and competitive capability,through develop ment practices in PRO/E1 Keywords:Pro/toolki t;Redevelopment;Front axle of the automobile0前言日益激烈的市场竞争要求现代企业必须低成本、高效率的开发新产品,全面提高对市场的快速响应能力。
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二次开发
PROE二次开发做PROE毕业设计,初始设置完VS2005中C++的各种设置,用protoolkit对PROE二次开发,但是这段程序在做完编译的时候出现了三个错误两个是未声明的标识符跟一个重新定义清帮我看看到底是哪里错了#include "ProMenu.h"#include "ProUtil.h"#include "ProMenubar.h"extern “C” int user_initalize(){ProError atatus;//用户接口程序return status;}extern “C” void user_terminate(){//结束代码}extern "C" int user_initialize(){ProError status;ProFileName message_file;uiCmdCmdId cmd_idl;ProFileName Msgfile;ProStringT oWstring(MsgFile,"Message 2.txt");status = ProMenubarMenuAdd("CHECK","CHECK","Utilities", PRO_B_TRUE,MsgFile);status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,PRO_B_TRUE,&cmd_idl);status = ProMenubarmenuPushbuttonAdd("CHECK","messagebox","mes sagebox","Active messagebox menu",NULL,PRO_B_TRUE,cmd_idl,ProStringT oWstring(message_file,"Message2.txt"));return status;}int messagebox()//消息框{AfxMessageBox(_T("第一个程序!"));//弹出一个消息框return(0);}由正常的齿轮三视图生成的代码,怎么能够改成全剖视图的呢下面是视图矩阵的一些代码static ProMatrix identity_matrix = { {1.0, 0.0, 0.0, 0.0},////单元矩阵{0.0, 1.0, 0.0, 0.0},{0.0, 0.0, 1.0, 0.0},{0.0, 0.0, 0.0, 1.0}};void ProUtilMatrixCopy(double input[4][4],double output[4][4]){int i,j;if(input == NULL){for(i=0;i<4;i++)for(j=0;j<4;j++)output[i][j] = identity_matrix[i][j];}else{for(i=0;i<4;i++)for(j=0;j<4;j++)output[i][j] = input[i][j];}}/*--------------------------------------------------------------------*\创建一般视图\*--------------------------------------------------------------------*/ProUtilMatrixCopy(NULL, matrix);pos[0] = 200.0;pos[1] = 600.0;pos[2] = 0.0;ProDrawingGeneralviewCreate(drawing, solid, sheet, PRO_B_FALSE,pos, 1, matrix, &view);应部分坛友短信我的要求,现将下列两个函数的代码附上:ParamGetAndShow() //功能:获取模型参数,显示并初始化对话框控件值ParamUpdate() //功能:修改对话框控件值,更新模型参数/*===================================== =============================*\函数:ParamGetAndShow()功能:从零部件模型中获得参数值,并在相应的输入框中显示\*===================================== =============================*/void ParamGetAndShow(char *dialog,char *component,char *Name){ProMdl mdl;ProModelitem modelitem;ProMdlCurrentGet(&mdl);ProMdlToModelitem(mdl,&modelitem);int iparam;double dparam;ProName pname;ProParameter param;ProParamvalue value;ProStringT oWstring(pname,Name);//根据指定的参数名获得参数对象指针ProParameterInit(&modelitem,pname,¶m);//获得参数值ProParameterValueGet(¶m,&value);//根据参数值的类型,显示在相应类型的输入框中if(value.type==PRO_PARAM_DOUBLE){dparam=value.value.d_val;ProUIInputpanelDoubleSet(dialog,component,dparam);}if(value.type==PRO_PARAM_INTEGER){iparam=value.value.i_val;ProUIInputpanelIntegerSet(dialog,component,iparam);}ProParameterValueSet(¶m,&value);}/*===================================== =============================*\函数:ParamUpdate()功能:更新参数值\*===================================== =============================*/void ParamUpdate(char *dialog,char *component,char *Name){ProMdl mdl;ProModelitem modelitem;ProParameter param;ProParamvalue value;ProName pname;ProStringT oWstring(pname,Name);int iparam;double dparam;ProMdlCurrentGet(&mdl);ProMdlToModelitem(mdl,&modelitem);ProParameterInit (&modelitem,pname,¶m); ProParameterValueGet(¶m,&value);if(value.type==PRO_PARAM_DOUBLE){ProUIInputpanelDoubleGet(dialog,component,&dparam); value.value.d_val=dparam;}if(value.type==PRO_PARAM_INTEGER){ProUIInputpanelIntegerGet(dialog,component,&iparam); value.value.i_val=iparam;}ProParameterValueSet(¶m,&value);}int ProUtilStringGet(wchar_t *p_wstr, wchar_t *p_default, int max_len){wchar_t str[PRO_PATH_SIZE];if(ProMessageStringRead(max_len, str)!=0){if (p_default == NULL)return (0);ProUtilWstrcpy(p_wstr, p_default);return (1);}ProUtilWstrcpy(p_wstr, str);return (1);}尺寸表示似乎只能从实体遍历中得到。
Pro_E二次开发在机构自动装配中的应用
1引言Pro/E 是当今最为流行的CAD/CAE/CAM 一体化软件之一,Pro/TOOLKIT 是其自带的二次开发工具包。
在Pro/TOOLKIT 中,PTC 向用户提供了大量的C 语言函数库,函数采用面向对象的风格。
通过调用这些底层函数,用户能方便而又安全地访问Pro/E 的数据库及内部应用程序,进行二次开发,扩展一些特定功能[1,2,3]。
本文通过实例说明了应用Pro/toolkit 开发机构自动装配模块的方法。
2自动装配模块的开发Pro/E 中通过Pro/TOOLKIT 工具包开发自动装配模块,首先就是要确定装配元件的位置,位姿和运动方式,通过一个位姿矩阵和运动矩阵就可以有效描述装配空间中装配模型的信息。
装配元件的位置和姿态是通过采用一个位4×4姿矩阵[P ]来决定的。
装配元件从当前的关键位姿点K p 运动到另一关键位姿点K p1,实际上是等价于原位姿发生了一个矩阵变换,到达了一个新的位姿[P 1]。
2.1确定坐标系的位置和姿态我们在两个零部件上设定坐标系,然后让两个坐标系重合实现自动装配。
通过在配合的两个零部件的对应位置建立名字一致的坐标系来实现的。
首先是选择确定两模板上坐标系的位置和姿态,保证零部件正确配合的坐标系位置和姿态是唯一的,选择的原则是保证两零部件在当两个对应的坐标系重合时两零部件能正确配合。
因为一个零部件可能需要与多个零部件之间形成装配关系,因此一个零部件模板上可能需要设定多个坐标系。
给坐标系取名的目的就是使两个零部件对应的坐标系重合,而不至于与其它的坐标系重合。
如图1所示在轴段上设计一键,可以在轴段模板的键槽位置处创建坐标系Shaft_Key_CS1,同时在键的模板匹配位置处也定义坐标系Shaft_Key_CS2,这样当这对坐标系重合时轴段上键槽能与键正确配合。
2.2编写伪代码以图2凸轮与轴装配为例,下面给出Assemble 函数的伪代码如下:Assemble (cam_shaft,cam,shaft ){……./*获取凸轮参考系句柄*/sprintf(acsys name,cam_shaft_CS1");pro_str_to_wstr(ref_csys_name,acsys_name );status=prodb_find_csys ((Prohandle )p_cam,ref_csys_name,&ref_csys );……./*获取凸轮参考系句柄*/pro_str_to_wstr(base_csys_name,"cam_shaft_CS2");status=prodb_find_csys((Prohandle )p_shaft,base_csys_name,&base_ref_csys );/*装配部件*/Asm_ref->offset=0;Asm_ref->orientl=0;asm_ref->orient2=0;status=prodb_assemble_component ((Prohandle )p_asm,(Prohandle )p_cam,1,asm_ref,&dim_id_array,&asm_status );…….}另外,在装配过程中,如果同一装配体中多个同样装配关系(如同一轴上装配多个键或轴承),在这里有一个交互处理的过程,具体如下:当载入一个键(或者轴承)时,用鼠标拾取欲装配的键槽轴段,那么通过坐标系重合,实现了该处的自动装配,其它地方同样处理。
ProENGINEER二次开发(protoolkit)
ProENGINEER二次(protoolkit)开发环境的搭建Pro/TOOLKIT是Pro/ENGINEER的一个应用程序接口(API),其的编程语言是C 语言,它可以对Pro/ENGINEER进行功能扩展,满足PTC客户的特定需求。
而且,Pro/TOOLKIT 提供了定制标准Pro/ENGINEER用户界面的能力,自动执行重复性的程序,通过Pro/ENGINEER集成的内部程序(Dll)或外部应用程序(Exe)可以为造型用户提供自定义的应用程序、设计规划和绘图自动化。
一、首先安装好VS2005与proeWildfire 4.0因为本文讲述的是在VS2005+proeWildfire 4.0的环境下,所以在进入实战之前先得自行安装好相关的工具。
至于VS2005和proeWildfire 4.0的安装,本文中就不再累述了。
二、VS2005包含文件和库文件设置打开VS2005,工具->选项->项目和解决方案->VC++目录,如图所示:包含文件(添加图中前三个目录即可)图1 包含文件设置包含文件在proeWildfire4.0安装目录下的protoolkit和prodevelop下。
例如,安装在D:\ptc\proeWildfire 4.0下,包含文件分别是:D:\ptc\proeWildfire 4.0\protoolkit\includesD:\ptc\proeWildfire 4.0\protoolkit\protk_appls\includesD:\ptc\proeWildfire 4.0\prodevelop\includes再选择库文件(添加图中前两个目录即可)图2 库文件设置库文件在proeWildfire4.0安装目录下的protoolkit和prodevelop下。
例如,安装在D:\ptc\proeWildfire 4.0下,包含文件分别是:D:\ptc\proeWildfire 4.0\protoolkit\i486_nt\objD:\ptc\proeWildfire 4.0\prodevelop\i486_nt\obj完成以前两步我们开发环境基本上算是配置完成了。
PROE二次开发中protoolkit连接Access数据库的例子
PROE二次开发中pro toolkit连接Access数据库的例子
在这个类中加入打开数据库与关闭数据库的成员函数,并在对话框初始化时打开数据库,在对话框关闭时关闭数据库,如例子中的函数OpenDatabase、
CloseDatabase、OnInitDialog DestroyWindow
本文介绍了PROE二次开发中pro/toolkit连接Access 数据库的一个例子。
测试环境:WinXP sp2 + vc6.0 + MS Access 2000
1、在工程的stdafx.h头文件中引入ADO库文件,如果系
统不在C盘,请修改盘符
#import "c:\program files\common files\system\ado\msad
o15.dll" \
rename_namespace("myado") \
rename ("EOF", "adoEOF")
2、在要操作数据库的类中加入数据库指针,例中为对话框类CDlgData
myado::_ConnectionPtr m_pConnection;
3、在这个类中加入打开数据库与关闭数据库的成员函
数,并在对话框初始化时打开数据库,在对话框关闭时关闭
数据库,如例子中的函数OpenDatabase、CloseDatabase、O
nInitDialog DestroyWindow
4、操作表,如例子中的函数InitListBox。
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进程对象的句柄。
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文件
选中应用程序名称,单击启动
消息信息提示:启动成功
关闭“辅助应用程序”窗口
运行安装测试程序
菜单:文件——安装测试
弹出对话框,显示安装测试成功。
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函数访问处理。
ProE5protoolkit二次开发环境设置
ProE5protoolkit二次开发环境设置ProE 5.0+VS2008Protoolkit二次开发环境配置From tkuser.pdf: All Creo Elements/Pro TOOLKIT applications on 32-bit and 64-bitWindows platforms must be built using the Microsoft Visual 2008 compiler. A new library ws2_32.lib has been added.The CC flags no longer need the -D_USE_32BIT_TIME_T flag on32-bit Windows platforms. These changes have been incorporatedin the sample makefiles.1、包含文件和库文件的设置(1)包含文件的添加点击“工具”→“选项”→“项目和解决方案”→“VC++目录”,选择“包含文件”依次添加:D:\PTC\Creo Elements\Pro5.0\protoolkit\includesD:\PTC\CreoElements\Pro5.0\prodevelop\prodev_appls\includesD:\PTC\Creo Elements\Pro5.0\prodevelop\includesD:\PTC\CreoElements\Pro5.0\protoolkit\protk_appls\includes(2)库文件的添加:步骤同包含文件的添加…D:\PTC\Creo Elements\Pro5.0\prodevelop\i486_nt\objD:\PTC\Creo Elements\Pro5.0\protoolkit\i486_nt\obj2、创建MFC DLL项目如图:3、进行工程属性配置(1)“项目”→“属性”→“配置属性”→“常规”,点击右上角的“配置管理器”,使用release。
基于ProToolkit的二次开发在ProE装配中的应用
采取面向对象设计风格的一款工具包。并且,它也是对于 展开研究。其主
Creo Parametric主要的应用程序编程接口。同时,其提供 要算法流程如图
了大量可以接入Creo Parametric数据库与用户界面的C语 1所示。
言函数库和外部应用,供用户及第三方人员通过编写C语 2.2 具体步骤
言代码进行二次开发,并将生成的应用功能无缝集成进
Pro/ENGINEER. The selective assembly function can be applied to a variety of standard parts, and the automatic assembly
function can be applied to parts that are referenced to specific assembly features during the modeling process. These two
LU Chengjia
(Ingersoll Rand Engineering Technology Center-Asia Pacific, Taicang 215400, China)
Abstract: This paper uses ProToolkit tool to develop the selective assembly function and automatic assembly function for
可能由于人为因素(如错选、漏选、多选约束要素)导致装 些 标 准 件 装 配
配错误。文中旨在运用PTC官方提供的ProToolkit工具对 的正确率。
Pro/E进行二次开发,节省装配零部件所需使用的时间,并
文中就以螺
Pro_E二次开发技术在机械零件参数化设计中的应用
・计算机技术应用・Pro /E 二次开发技术在机械零件参数化设计中的应用3郝彩红,尹明富(天津工业大学机械电子学院,天津 300160)摘 要:利用V isual C ++6.0开发环境和Pr o /E 自带的Pr o /T OOLKI T 开发模块进行二次开发的方法,以平行分度凸轮机构的转盘为例,重点介绍Pr o /E 二次开发中参数化设计的方法,实现既直观、方便,又快捷、准确地自动化设计。
该方法同样广泛适用于其它机械零件,从而提高产品的设计速度,加快对市场需求的响应速度。
关键词:Pr o /E;Pr o /T OOLKI T;二次开发;参数化中图分类号:T B21 文献标识码:A 文章编号:1007-4414(2006)04-0111-03Appli ca ti on of secondary develop m en t technology of Pro /E i n param etr i c desi gn of m echan i ca l partHao Cai -hong,Yin M ing -fu(School of m echanical and electric engineering,Tianjin polytechnic university,T ianjin 300160,China )Abstract:This paper intr oduces the way of Pr o /E secondary devel opment using VC ++6.0devel opment circu m stance and Pr o /T OOLKI T secondary devel opment t ool in Pr o /E .Taking a turing -p late in parellel indexing ca m mechanis m s,describes the method of Pr o /E secondary devel opment for para metric designing .This syste m is p r oxi m ate,rap id,and p recise as a visual design t ool .The method can als o app ly in other mechanical part widely .Theref ore ,it increases design s peed,successful rate and the res ponse s peed of market require ments .Key words:Pr o /E;secondary devel opment;Pr o /T OOLKI T;parametric Pr o /Engineer (以下简称Pr o /E )软件是美国PTC 公司开发的CAD /C AE /CAM 系统软件,主要用于产品的三维模型设计、加工、分析及绘图等[1]。
proe2.0 在VC++6.0环境下二次开发配置
proe2.0 在VC++6.0环境下二次开发配置proe开发环境设置问题1. 创建新工程启动VC++,新建工程。
选择 MFC AppWizard(dll)方式。
指定工程名称及存放路径。
然后按“OK”按钮。
2.设置包含文件路径Pro/Toolkit头文件位于protoolkit\includes文件夹中。
在VC++6.0的集成开发环境中选择VC主菜单Tools/Option(工具/选项)菜单,系统弹出的“Options (选项)”对话框,打开“Directories(目录)”选项卡,在"Shaw directories for:(目录[S]:)"下拉列表中选择“Includes files",在“Directories(目录)”中添加如下路径,设置PROTOOLKIT头文件所在文件夹:D:\PTC\PROTOOLKIT\INCLUDES\D:\PTC \PROTOOLKIT\PROTK_APPLS\INCLUDESD:\PTC\PRODEVELOP\INCLUDESD:\PTC(注:“D:\PTC”为Pro/E程序所在的主文件夹此设置只需一次,下次打开c++新程序时不需重新设置了)3.设置库文件路径Pro/Toolkit的库文件位于protoolkit\i486_nt\obj文件夹中。
在"Shaw directories for:(目录[S]:)"下拉列表中选择“Library files",加入如下路径,设置Pro/TOOLKIT库文件所在文件夹:D:\PTC\PRODEVELOP\I486_NT\OBJD:\PTC\PROTOOLKIT\I486_NT\OBJ4.设置连接所需库文件选择VC主菜单Project/Setting…(工程/设置)命令,选择“Link(连接)”选项卡,在“Category:(分类)”下拉列表中选择Input(输入),在" Object/Library modules(对象/库模块)”下加入protk_dll.lib (改成protoolkit.lib则生成exe文件) mpr.lib wsock32.lib。
史上最全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 Studio Tools2008命令提示符,打开。
第三步,在打开的这个界面里面敲下如下字符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二次开发
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二次开发初级教程
第一章 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二次开发设置文档
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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
手把手教你开发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中文版下载地址:最好安装下VS2008 SP1补丁,否则编译Debug版本时常会报错。
VS2008 SP1中文版下载地址:如果你需要开发64位的Pro/TOOLKIT程序,请确保安装X64 Compilers andTools,如下图所示:3二、新建工程点击【文件】->【新建】->【项目】菜单命令,创建MFC DLL工程。
输入工程名称:test_wf5。
单击【确定】,然后在弹出的对话框中单击【下一步 >】DLL类型:使用共享 MFC DLL单击【完成】完成创建工程。
4三、配置工程属性1.新增64位编译平台注意:如果只编译32位程序,请跳过此步骤。
单击【生成】->【配置管理器】菜单命令,然后依照下图操作。
如果没有x64选项,那说明安装VS2008时,没有安装X64 Compilers and Tools,重新安装此选项即可。
2.新增头文件路径单击【项目】->【属性】菜单命令,添加如下头文件路径。
【Pro/E安装目录】\prodevelop\includes【Pro/E安装目录】\protoolkit\includes注意:请先选择平台是Win32还是x64。
3.新增库文件路径32位:【Pro/E安装目录】\prodevelop\i486_nt\obj 【Pro/E安装目录】\protoolkit\i486_nt\obj64位:【Pro/E安装目录】\prodevelop\x86e_win64\obj 【Pro/E安装目录】\protoolkit\x86e_win64\obj4.添加附加依赖项mpr.libwsock32.lib psapi.libprotk_dllmd.lib prodev_dllmd.lib netapi32.lib5.设置工程字符集推荐优先采用Unicode。
5四、添加Pro/TOOLKIT代码在test_wf5.cpp文件的最后添加以下Pro/TOOLKIT代码。
该段代码的功能是:在Pro/E的【帮助】菜单后新增一个菜单【TestMenu】,然后在【TestMenu】下新增两个菜单项【Test】和【ShowCurrModelName】。
分别实现弹出测试对话框和获取当前模型的名称并弹窗显示。
注意:先只要大体理解代码的整体思路即可,本教程会在第三篇:手把手教你开发Pro/TOOLKIT应用程序(三) 中具体阐明代码的所有细节,在学习完本篇和第二篇后,再去学习第三篇会比较好。
// 包含常用头文件#include <ProToolkit.h>#include <ProUtil.h>#include <ProMenuBar.h>#include <ProMenu.h>#include <ProMode.h>1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344 // 包含常用头文件#include <ProToolkit.h>#include <ProUtil.h>#include <ProMenuBar.h>#include <ProMenu.h>#include <ProMode.h>#include <ProMdl.h>#include <ProSolid.h>#include <ProAsmcomp.h>#include <ProArray.h>#include <ProModelitem.h>#include <ProLayer.h>// 函数声明uiCmdAccessState TestAccess(uiCmdAccessMode access_mode); uiCmdAccessState ShowCurrModelName_Access(uiCmdAccessMode access_mode);int Test(uiCmdCmdId command,uiCmdValue *p_value,void *p_push_command_data);int ShowCurrModelName(uiCmdCmdId command,uiCmdValue *p_value,void *p_push_command_data);// Pro/TOOLKIT入口函数extern "C" int user_initialize(){ProError err;// 信息文件名称ProFamilyName MsgFile;ProStringToWstring(MsgFile, "Test_Msg.txt");// 添加菜单:TestMenuerr = ProMenubarMenuAdd("TestMenu", "TestMenu", "Help", PRO_B_TRUE, MsgFile);// 添加命令和菜单项// 测试命令uiCmdCmdId cmd_id1;err = ProCmdActionAdd("Test", Test, uiCmdPrioDefault, TestAccess, PRO_B_FALSE, PRO_B_FALSE, &cmd_id1);err = ProMenubarmenuPushbuttonAdd("TestMenu", "Test", "Test","Test_Help",4546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 NULL, PRO_B_TRUE, cmd_id1, MsgFile);// 显示并输出当前模型的名称uiCmdCmdId cmd_id2;err = ProCmdActionAdd("ShowCurrModelName", ShowCurrModelName, uiCmdPrioDefault,ShowCurrModelName_Access,PRO_B_FALSE, PRO_B_FALSE, &cmd_id2);err = ProMenubarmenuPushbuttonAdd("TestMenu", "ShowCurrModelName", "ShowCurrModelName","ShowCurrModelName_Help", NULL, PRO_B_TRUE, cmd_id2, MsgFile);return 0;}// Pro/TOOLKIT结束时调用的函数extern "C" void user_terminate(){}// 测试命令响应函数int Test(uiCmdCmdId command,uiCmdValue *p_value,void *p_push_command_data){AfxMessageBox(_T("Just For Test"));return 0;}// 命令:获取当前模型的名称并显示int ShowCurrModelName(uiCmdCmdId command,uiCmdValue *p_value,void *p_push_command_data){ProError err;// 获取当前模型ProMdl mdl;err = ProMdlCurrentGet(&mdl);if (PRO_TK_NO_ERROR != err){return -1;}89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 // 获取当前模型名称并显示ProName name;err = ProMdlNameGet(mdl, name);MessageBoxW(NULL, name, L"wf5 test", MB_OK);return 0;}// 测试命令 菜单权限函数// 任何情况下菜单都有效uiCmdAccessState TestAccess(uiCmdAccessMode access_mode){return ACCESS_AVAILABLE;/*ProError err;ProMode mode;err = ProModeCurrentGet(&mode);if (err != PRO_TK_NO_ERROR){return ACCESS_UNAVAILABLE;}if (mode == PRO_MODE_PART|| mode == PRO_MODE_ASSEMBLY){return ACCESS_AVAILABLE;}else{return ACCESS_UNAVAILABLE;}*/}// 获取当前模型名称并显示 菜单权限函数// 只有在当前打开的模型为PART 档,ASM 档或Drawing 档时菜单才有效uiCmdAccessState ShowCurrModelName_Access(uiCmdAccessMode access_mode) {ProError err;ProMode mode;err = ProModeCurrentGet(&mode);if (PRO_TK_NO_ERROR != err)133 134 135 136 137 138 139 140 141 142 143 {return ACCESS_UNAVAILABLE;}if (mode == PRO_MODE_PART|| mode == PRO_MODE_ASSEMBLY|| mode == PRO_MODE_DRAWING){return ACCESS_AVAILABLE;}else{return ACCESS_UNAVAILABLE;}}代码说明:1. user_initialize()为Pro/TOOLKIT 应用程序的入口函数,每个Pro/TOOLKIT 程序在被Pro/E 加载时,首先执行此函数。