iCAx开思网

标题: 【分享】Pro/E TOOLKIT 相关资料 [打印本页]

作者: cam    时间: 2002-9-9 14:06
标题: 【分享】Pro/E TOOLKIT 相关资料
Pro/E 二次开发中的若干问题  
Pro/E是美国参数技术公司(PTC)研制的CAD/CAM软件。Pro/TOOLKIT是PTC提供专门用于对Pro/E进行二次开发的软件包。Pro/TOOLKIT软件包提供了大量的C语言函数,使得我们利用C语言编程来增加Pro/E的功能。在Pro/E的二次开发过程中,有以下几个问题值得注意(以Pro/E2000i):  
1.可在Visual C++(4.0、5.0、6.0)环境下开发Pro/TOOLKIT应用程序  
此C应用程序包含Pro/TOOLKIT提供的函数,必须和Pro/TOOLKIT提供的头文件编译(compile)到一起。所以,必须在Visual C++的菜单tools→Options→Directories中添加如下内容:  
~\PROTOOLKIT\INCLUDES  
~\PROTOOLKIT\PROTK_APPLS\INCLUDES  
~\PRODEVELOP\INCLUDES  
~\PROTOOLKIT\PRODEV_APPLS\INCLUDES  
其中,~表示Pro/E的安装路径。  
2.编译(compile)通过的应用程序,还必须在命令提示符下编译、连接一遍(nmake),以生成可执行的.exe或.dll文件  
nmake命令是由第三方软件(micosoft Visual C++)提供的。要在命令提示符下使用这个命令,必须在安装Visual C++时注册环境变量(安装时会有对话框“设置环境变量”)提示,将“注册环境变量”选中),或者在Windows的“设置→控制变量→系统→高级→环境变量→用户变量”中,选取变量名path,在值中添加~:\Microsoft Visual Studio\VC98\bin,其中~表示Visual C++的安装路径(适用于Windows 2000).而且,命令提示符的默认路径为~:\protoolkit\i486_nt\obj,此路径下必须要有一个对应于C应用程序的make文件,命令全形为nmake-f*.*为对应的make文件名。make文件的样板在~proe 2000i\protoolkit\i486_nt\obj下。  
3.在Pro/E环境中要运行自己的应用程序,必须在Pro/E中对该程序进行注册  
注册分为手动注册和自动注册两种。手动注册就是在Pro/E界面上选取Utilities→Auxiliary Application 对话框加载该注册文件。自动注册有四种:一是将注册文件命名为protk.dat并放在Pro/E的启动目录下,并在启动目录下创建一个config.pro文件,其中设置一句:TOOLKIT_REGISTRY_FILE*就可,*就是要注册的注册文件名;三是将注册文件命名为protk.dat并放在路径//text/下,其中< LANGUAGE >是运行Pro/ ENGINEER就能自动加载该注册文件并运行指定的应用程序。注册文件protk.dat的样板在~proe 2000i\protoolkit下。  
4.Config.pro文件的设置  
  环境设置文件的内容是以文字模式将选项及参数值存在名为Config.pro的文件内,这些文件均可用一般的文本编辑软件编辑。Config.pro文件可设置系统的操作环境,如工具按钮位置、模型的显示方式、视角等。Config.pro文件应放在Pro/E的启动目录下,当启动Pro/E时,系统会自动加载环境设置文件Config.pro。若应用程序是一个大量组装零、部件的二次开发程序,下面的Config.pro将十分有用:  
BELL NO  
DISPLAY SHADE  
DATUM_DISPLAY NO  
DATUM_POINT_DISPLAY NO  
DISPLAY_COORDINATE_SYS NO  
AXIS_DISPLAY NO  
SPIN_CENTER_DISPLAY NO  
TOOLKIT_REGISTRY_FILE*  
5.在Pro/E的二次开发中,添加用户自定义菜单是最基本、最常用的技术  
可以在Pro/E界面上现有的菜单条添加用户自定义菜单,如在“文件”等菜单条菜单中添加;也可以在Pro/E界面上添加菜单条菜单,它和“文件”等等菜单条菜单处于同等地位。笔者建议在Pro/E界面上添加菜单条菜单,因为Pro/E是一个不断发展、不断更新的软件,某个版本下有的菜单在另一个版本下可能没有,因此,如果用户自定义菜单依赖某个菜单条菜单,很可能在另一个Pro/E的版本中不能正常使用。这样,只能修改应用程序来适应这种变化,软件的通用性较差。  
  下面这个程序详细讲述如何在Pro/E界面上添加用户自定义菜单条菜单UserMenu以及在菜单条菜单UserMenu中添加按钮A:  
int user _initialize( )  
{ProFileName message _file;  
uiCmdCmdId cmd _id;  
ProStringToWstring(message_ file,”use_rmsg.txt”);  
ProMenubarMenuAdd(“UserMenu”,”UserMenu”,”Help”,PRO_B_TRUE,message_file);(添加用自定义菜单条菜单UserMenu并放在菜单条菜单“帮助”之后)  
ProCmdActionAdd(“A”, (uiCmdCmdActFn)Action,uiProe2ndImmediate, NULL, PRO_B_TRUE, PRO_B_TRUE, [$cmd _id)](给按钮A设定动作Action)  
ProMenubarmenuPushbuttonAdd(“UserMenu”,“A”,“A”,“Non-mode-specific Pro/TOOLKIT test commands”,NULL,PRO_B_TRUE,cmd_id, message_file); (在菜单条菜单UserMenu添加按钮A)  
return(0);}  
其中user_msg.tst文件的内容为:  
UserMenu  
UserMenu  
#  
#  
A  
A  
#  
#  
user_msg.tst文件通放在~\text\usascii下,它的路径对应于protk.dat注册文件的TEXT_DIR项。  
6.结语Pro/E的第二次开发功能十分强大。本文主描述了Pro/E二次开发的整体过程(编写C程序→VC++下编译→命令提示符下编连→Pro/E中注册)以及所遇到的关键性问题,用户可在此基础上,在Pro/TOOLKIT二次开发程序中通过编写各种功能函数来实现其他具体要求。
作者: 风缘    时间: 2002-9-11 09:58
楼上的大哥做过proE的二次开发吗?现在我遇到一些麻烦
作者: icdrs    时间: 2002-9-12 12:57
我贴过的,你第二次了,最好不要加分!!!
作者: EMeiMonkey    时间: 2002-9-13 15:47
风缘老兄回学校了,暑假过得好吗?
作者: 风缘    时间: 2002-9-16 12:22
是问我吗?
作者: EMeiMonkey    时间: 2002-9-17 09:21
哈哈,难道这儿还有两个“风缘”不成?




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3