您的位置:网站首页 > Proe教程

对NGINEER二次开发中关键技术的探讨

时间:2011-02-24 09:39:34 来源:

  本文探讨了对NGINEER二次开发中关键技术的相关内容。

  NGINEER是CAD/CAM软件,Pro/TOOLK99v是PTC提供用于对NGINEER进行二次开发的软件包,这里有几个问题值得注意。

  NGINEER是美国PTC公司研制的CAD/CAM软件。Pro/TOOLK99v是PTC提供用于对NGINEER进行二次开发的软件包,Pro/TOOLK99v提供了大量的C语言函数,帮助我们利用C语言编程来增加NGINEER的功能。在NGINEER的二次开发过程中,有以下几个问题值得注意(笔者使用的是NGINEER 2000i)。

  1 编写应用程序

  可在Visual C++环境下编写Pro/TOOLK99v应用程序,此应用程序包含Pro/TOOLK99v提供的函数,必须和Pro/TOOLK99v提供的头文件编译(Compile)到一起,所以,必须在Visual C++的菜单“Tools→Options→Directories”中添加如下内容 :

  ~/PROTOOLK99v/INCLUDES

  ~/PROTOOLK99v/PROTK_APPLS/INCLUDES

  ~/PRODEVELOP/INCLUDES

  ~/PRODEVELOP/PRODEV_APPLS/INCLUDES

  其中,~表示NGINEER的安装路径。

  2 编译应用程序

  编译(Compile)通过的应用程序,还必须在命令提示符下编译和连接(nmake),以生成可执行的.exe或.dll文件。

  nmake命令是由第三方软件(Micosoft Visual C++)提供的。要在命令提示符下使用这个命令,必须在安装Visual C++时注册环境变量(安装时会有对话框“设置环境变量”提示,将“注册环境变量”选中),或者在Windows的“设置→控制面板→系统→高级→环境变量→用户变量”中,选取变量名“path”,在值中添加“ ~:/Microsoft Visual Studio/VC98/bin”,“~”表示Visual C++ 的安装路径(适用于 Windows 2000)。而且,运行“nmake”命令所在的路径为“~/protoolkit/i486_nt/obj”,此路径下必须要有一个对应于C应用程序的make文件,命令全形为“nmake -f *”,“*”为对应的make文件名。make文件的样板在“~/proe2000i/protoolkit/i486_nt/obj”下。

  3 运行应用程序

  要在NGINEER环境中运行自己的应用程序,必须在NGINEER中对该程序进行注册。注册分为手动注册和自动注册两种。手动注册就是在NGINEER界面上依次选取“Utilities→Auxiliary Application”对话框,加载该注册文件,自动注册有以下4个步骤。

  (1)将注册文件命名为protk.dat,并放在NGINEER的启动目录下。

  (2)将注册文件放在NGINEER的启动目录下,并在启动目录下创建一个config.pro文件,其中设置“TOOLK99v_REGISTRY_FILE * ”语句即可,“*” 就是要注册的注册文件名。

  (3)将注册文件命名为“protk.dat”,并放在路径“〈NGINEER〉/〈MACHINE〉/text/〈LANGUAGE〉”下,其中〈LANGUAGE〉是运行NGINEER时所选的语言类型。

  (4)将注册文件命名为“protk.dat”,并放在路径“〈NGINEER〉/text”下。

  这样,只要运行NGINEER就能自动加载该注册文件,并运行指定的应用程序。注册文件protk.dat的样板在“~/proe2000i/protoolkit”下。

  4 Config.pro文件的设置

  环境设置文件的内容是以文字形式将选项及参数值存在名为Config.pro的文件内,这些文件均可用一般的文本编辑软件编辑。

  Config.pro文件可设置系统的操作环境,如工具按钮设置、模型的显示方式、视角等。Config.pro文件应放在NGINEER的启动目录下,当启动NGINEER时,系统会自动加载环境设置文件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

  TOOLK99v_REGISTRY_FILE *

  5 添加自定义菜单

  在NGINEER的二次开发中,添加用户自定义菜单是最基本、最常用的技术。

  可以在NGINEER界面上现有的菜单条和菜单中添加用户自定义菜单,如在“文件”等菜单条菜单中添加,也可以在NGINEER界面上添加菜单条菜单,它和“文件”等菜单条菜单处于同等地位。或者也可以在模式菜单中添加自定义菜单。

  笔者建议在NGINEER界面上添加菜单条菜单,因为NGINEER是一个不断发展、不断更新的软件,某个版本下有的菜单条菜单或模式菜单,在另一个版本下可能没有,因此,如果用户自定义菜单依赖于某个菜单,很可能在另一个NGINEER的版本中不能正常使用。这样,只能修改应用程序来适应这种变化,软件的通用性较差。下面这个程序详细讲述如何在NGINEER界面上添加用户自定义菜单条菜单UserMenu以及在菜单条菜单UserMenu中添加按钮“A”。

  int user_initialize()

  { ProFileName message_file;

  uiCmdCmdId cmd_id;

  ProStringToWstring(message_file, "user_msg.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/TOOLK99v test

  commands", NULL , PRO_B_TRUE , cmd_id ,

  message_file); //在菜单条菜单UserMenu添加按钮A

  return(0);}