问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求助怎样用protoolkit和vc++ 做二次开发

发布网友 发布时间:2022-04-22 09:04

我来回答

4个回答

热心网友 时间:2023-07-03 17:22

我的开发和测试环境是:
 简体中文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:
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 <ProToolkit.h>
#include <ProMenu.h>
#include <ProMenuBar.h>
#include <ProUtil.h>

在文件末尾添加以下程序:

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;

//在Help菜单的左边添加Test菜单
status = ProMenubarMenuAdd("TestMenu", "Test", "Help", PRO_B_FALSE, menumsgfile);

status = ProCmdActionAdd("MyTest", (uiCmdCmdActFn)MyTest, uiCmdPrioDefault, UserAccessTestMenu, PRO_B_TRUE, PRO_B_TRUE, &cmd_id);

status = ProMenubarmenuPushbuttonAdd("TestMenu", "MainBtn1", "Hello", "Hello Help", 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
#
#
Hello Help
Hello! This is a Pro/TOOLKIT sample.
#
#

7、添加TOOLKIT程序注册文件

在Hello目录下添加protk.dat文件,内容如下:

name Hello
startup dll
allow_stop TRUE
exec_file .Releasehello.dll
text_dir .Text
revision 2001
description First Toolkit Application
end

8、测试程序

到这里,已经完成,如果你能够编译连接成功,会在Release目录下发现Hello.dll文件。
可以开始测试了。
你可以在Hello目录下直接启动Pro/E,或者启动Pro/E后再选择Hello目录下的protk.dat文件进行注册。
如果你能看到如上图所示画面,恭喜你,你的第一个使用VC++开发的TOOLKIT程序成功了。
单击Test菜单下的Hello菜单,你就可以看到使用AfxMessageBox实现的信息框。

9、中文菜单及提示

以上我们实现了英文的菜单及提示信息。
接下来我们来实现简体中文版的菜单及提示信息。
在Text目录下如上图所示创建chinese_cn子目录。
在chinese_cn目录下添加usermsg.txt文件,内容如下:

Test
&Test
测试(&T)
#
Hello
&Hello
你好(&H)
#
Hello Help
Hello! This is a Pro/TOOLKIT sample.
你好!这是第一个使用VC++开发TOOLKIT应用程序。
#

10、测试中文版菜单

无需更改程序。
直接进行测试,即可在中文Pro/E下看到了中文菜单及提示信息。

热心网友 时间:2023-07-03 17:23

基于Pro/TOOLKIT二次开发的基本过程

         Pro/TOOLKIT是Pro/ENGINEER软件功能强大的二次开发工具。它封装了许多针对Pro/ENGINEER底层资源调用的库函数与头文件,借助第三方编译环境(C语言、VC++语言等)进行调试。以VC++6.0为编译调试环境进行说明。
       使用Pro/TOOLKIT开发应用程序包含三个基本步骤:编写源文件(包括资源文件和程序源文件),生成可执行文件,可执行文件在Pro/ENGINEER中注册并运行。
       1、编写源文件
(1)资源文件包括菜单资源文件、窗口资源文件、对话框资源文件等。(2)程序源文件指我们所要编写的C++程序。Pro/TOOLKIT应用程序的核心是user_initialize()和user_terminate()两个函数。user_initialize()是Pro/TOOLKIT的初始化函数 ,此函数应包含用户或第三方开发的Pro/TOOLKIT应用程序所需的一切初始化信息 (例如对Pro/ENGINEER系统菜单的扩展、对话框的创建等)。user_terminate()是Pro/TOOLKIT的结束中断函数。
       2、生成可执行文件
一般需要制作Makefile工程文件,可以根据Pro/ENGINEER自带的Makefile修改。由该文件指定库文件、头文件、源文件的位置及要生成的可执行文件和动态连接库名称等。也可以在VC++6.0环境中指定上述各种项目。
Pro/ENGINEER为应用程序提供两种工作模式:同步模式(Synchronous Mode)和异步模式(Asynchronous Mode),由于后者使用复杂而很少使用。同步模式有分为Spawn(多进程模式)和dll(动态连接库模式)。动态连接库是将Pro/TOOLKIT应用程序集成到Pro/ENGINEER中的标准方法。在该模式下,Pro/TOOLKIT应用程序和Pro/ENGINEER的信息交换是通过直接函数调用实现的。
       3、可执行文件在Pro/ENGINEER中注册并运行
要使可执行文件能够集成到Pro/ENGINEER运行,必须制作一个后缀为.dat的注册文件。文件格式如下:
name<应用程序名称〉
startup<工作模式Spawn或dll〉
exec_file<可执行文件或动态连接库的位置>
text_dir<资源文件(菜单文件、对话框文件、窗口信息文件)的位置>
revision<版本号>
end<结束>
可以采用两种注册方式,一种为自动注册的方式,将注册文件放在指定的目录下(如放在Pro/ENGINEER的启动目录下),运行Pro/ENGINEER是将根据注册文件自动注册所指定的应用程序(此时注册文件必须名为protk.dat);另一种为手动注册,即在运行Pro/ENGINEER后,在UTILITIES菜单下选择Auxiliary Applications菜单项,然后再对话框中选取Register,指向所要注册的注册文件,点击启动便可以运行应用程序了(此时文件只要是后缀为.dat即可,并不是必须命名为protk.dat)。

热心网友 时间:2023-07-03 17:23

1. 创建新工程
启动VC++,新建工程。
选择 MFC AppWizard(dll)方式。
指定工程名称及存放路径。
然后按“OK”按钮。
2.设置包含文件路径
Pro/Toolkit头文件位于protoolkitincludes文件夹中。在VC++6.0的集成开发环境中选择VC主菜单Tools/Option(工具/选项)菜单,系统弹出的“Options(选项)”对话框,打开“Directories(目录)”选项卡,在"Shaw directories for:(目录[S]:)"下拉列表中选择“Includes files",在“Directories(目录)”中添加如下路径,设置PROTOOLKIT头文件所在文件夹:
D:PTCPROTOOLKITINCLUDES
D:PTC PROTOOLKITPROTK_APPLSINCLUDES
D:PTCPRODEVELOPINCLUDES
D:PTC

(注:“D:PTC”为Pro/E程序所在的主文件夹

此设置只需一次,下次打开c++新程序时不需重新设置了)
3.设置库文件路径
Pro/Toolkit的库文件位于protoolkiti486_ntobj文件夹中。在"Shaw directories for:(目录[S]:)"下拉列表中选择“Library files",加入如下路径,设置Pro/TOOLKIT库文件所在文件夹:

D:PTCPRODEVELOPI486_NTOBJ

D:PTCPROTOOLKITI486_NTOBJ

热心网友 时间:2023-07-03 17:24

通过VC++与ProTOOlkit接口强大的二次开发功能,能够对Pro/E零件几何信息特征的提取-By VC++ and ProTOOlkit Interface strong secondary development function, able to Pro/E part geometry feature extraction
http://www.pudn.com/downloads259/sourcecode/app/detail1193307.html
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
笔记本wifi能够联网,但是台式机插网线网络很差 为什么这个wifi就针对一台电脑卡。 电脑连wifi看电视很卡台式电脑连接无线wifi特别卡 为什么本身台式网速特别快,可是用笔记本wifi的网速就特别慢呢... wifi很快电脑很慢是怎么回事电脑和手机连接同一个WiFi手机网速快但是... ...6个梨,要把这些梨全部放在盘子里,至少需要多少个盘子? 看图列算式,一共有多少个梨? 列式:__ 哪些原因会导致长白头发 头上白发特别多是体内缺什么呢还是病还是别的原因 ACL访问控制列表应用 macbook pro 怎么启动zookeeper 四川的泡菜怎么弄? 想问下大家,华硕的小金刚Pro电竞显示器支持G-SYNC... 猪油如何保鲜 社交app是怎么开发出来的?? 请会写windows批处理文件和shell脚本的大神帮忙将... 我很喜欢吃皮蛋也经常吃 一加10Pro目前支持O-Sync超频响应功能的游戏有哪些? syncbackpro怎么备份sql BT sync home pro 如何删除文件夹? 牛皮杏鲍菇怎么吃 SyncBackPro 这个有免费的吗 请问有SyncBackPro(同步备份软件) V9.4.14.0 破解... 请问大佬有SyncBackPro(同步备份软件) V9.5.12.0 ... Good Sync Pro怎么在不同的电脑上面同步文件 各位老哥,有人知道华硕的VG27AQ小金刚Pro电竞显示... SyncBackPro好不好 如何确定allwaysync pro 是否激活 有人用过Sync Folders Pro吗?这个软件好用吗? 如何查看allwaysync pro 是否激活 set UGII_CAM_POST_OUTPUT_DIR=D:\NC 设置后处理文... 笔记本电脑的硬盘需要进行碎片整理吗? G-sync有必要开吗 本人暗影精灵4 pro 8750h 2070ma... 电脑磁盘碎片整理不了怎么办? NVIDIA RIVA TNT2 Model 64/Model 64 Pro用什么驱... 戴尔笔记本电脑磁盘碎片清理? 电脑有必要进行磁盘碎片整理吗? 我的笔记本电脑是WIN7系统,我的D盘有%19的磁盘碎... 笔记本磁盘清理在哪 为什么我的笔记本电脑现在反应变迟钝了而且清理磁... 笔记本无法进行磁盘碎片整理 笔记本电脑磁盘清理的好处和坏处! 笔记本电脑怎么清理磁盘碎片 我的笔记本电脑电脑太卡了 谁帮帮我怎么办 还有怎... 华硕笔记本磁盘清理无法进行怎么回事 皮沙发做法各个步骤名称 皮沙发的制作流程与方法简介 保养皮质沙发怎么做? 保养真皮沙发怎么做? 皮沙发怎么保养及真皮沙发保养方法