您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > UG NX 5.0二次开发基础
22UGNX5.0二次开发基础内容提要UG/OpenAPI基础概念和语法知识UG/OpenAPI常用对话框及其应用提示消息的发布与获取Open/API(用户函数)是一个程序集合,使得程序员能够访问和操作NX对象模型。除此之外,Open/API还提供了工具用来编辑和连接与UGNX5.0风格一致的程序。UG/Open二次开发模块是UGNX5.0软件的二次开发工具集,可用于各种二次开发工作。利用该模块可对UGNX5.0系统进行用户化剪裁和开发,满足用户的开发需求。使用UGNX5.0的二次开发时,用户需要具有一定的C语言基础。UG/Open包括以下几个部分。(1)UG/OpenAPI开发工具:提供UGNX5.0软件直接编程接口,支持C、C++、Fortran和Java等主要高级语言。(2)UG/OpenUIStyle开发工具:是一个可视化编辑器,用于创建类似于UGNX5.0的交互界面。利用该工具,用户可为UG/Open应用程序开发独立于硬件平台的交互界面。(3)UG/OpenMenuscript开发工具:对UGNX5.0软件操作界面进行用户化开发,使得用户无须编程即可对UGNX5.0标准菜单进行添加、重组、剪裁或在UGNX5.0中集成自己开发的软件功能。(4)UG/OpenGRIP开发工具:是一个类似于APT的UGNX5.0内部开发语言,用户可利用该工具生成NC自动化或自动建模等特殊应用。22.1UG/OpenAPI语法基础由于UG/OpenAPI是UGNX5.0中最常用的二次开发工具,因此国内外有大量的UGNX5.0CHAPTER第22章UGNX5.0二次开发基础473用户投入了大量的精力对UG/OpenAPI的编程进行研究,而且已经掌握了大量的编程技巧,并开发了许多实际的应用。本书在编写过程中,参考了他们的许多经验。22.1.1概述作为UGNX5.0与外部应用程序之间的接口,UG/OpenAPI是一系列函数的集合。通过UG/OpenAPI的编程,用户几乎能够实现所有的UGNX5.0功能。开发者可以通过用C++语言编程来调用这些函数,从而实现用户的需求。(1)对UGpart文件及相应模型进行操作,包括建立UGNX5.0模型、查询模型对象、建立并遍历装配体及创建工程图等。(2)在UGNX5.0中创建交互式程序界面。(3)创建并管理用户定义对象等。应用函数时应注意,所有的UG/OpenAPI应用必须及时进行初始化和终止,以确保获取或释放UG/OpenAPI的执行许可权限。初始化函数是UF_initialize,开始调用UG/OpenAPI的函数时应先调用UF_initialize来获取执行许可权限。一般来说,变量声明完成后,第一个调用的UG/OpenAPI函数就是UF_initialize。终止函数是UF_terminate,不再需要调用UG/OpenAPI的函数时,必须先调用UF_terminate来释放执行许可。UG/OpenAPI程序能在两种不同的环境(依赖于程序的连接方式)下运行,即Internal环境(也叫“Internal开发模式”)和External模式。其中Internal环境下的程序只能在UGNX5.0的界面环境(session)下运行,在运行这些程序时它们被加载到UGNX5.0的运行空间中(UGNX5.0分配的内存)。External模式开发的程序能在各种操作系统(WindownsNT/2000/XP及UNIX)下运行,不在UGNX5.0环境中或作为UGNX5.0的子进程运行。尽管没有图形显示,但UG/OpenAPI提供了函数用于打印机或绘图仪输出,也可以输出成CGM文件或其他数据文件。下面在VisualC中创建一个基于UG/OpenAPIAppWizard的项目,来说明初始化函数和终止函数的应用。【例22-1】UG/OpenAPI中初始化函数和终止函数的应用。操作步骤如下。检查VisualC的安装目录MicrosoftVisualStudio\common\msdev98\Template下是否有文件ugopen.awx及ugopen.hlp,若有,进入步骤2;否则从UG安装目录$UG_BASE_DIR/ugopen下将这两个文件复制并粘贴到目录MicrosoftVisualStudio\common\msdev98\Template下。启动VisualC++,选择【File】|【New】命令,弹出【New】对话框,如图22-1所示。一册通UGNX5.0474图22-1【New】对话框选择选项卡,在选项卡下面的列表框中选择【UG/OpenAPPWizardV18】,在文本框中输入项目名称“Example”,单击按钮。在弹出的对话框中按图22-2所示设置选项。图22-2设置选项1单击按钮,在弹出的对话框中设置选项,如图22-3所示。第22章UGNX5.0二次开发基础475图22-3设置选项2单击按钮,系统弹出【NewProjectInformation】窗口,如图22-4所示。窗口中列出了用户选择的所有信息。确认无误后单击按钮,系统将在指定的目录下创建一个UGNX5.0二次开发框架。图22-4【NewProjectInformation】对话框按快捷键F7,编译Example工程,一般会出现编译成功的信息,如图22-5所示。一册通UGNX5.0476图22-5编译成功的界面打开【FileView】选项卡,单击【Examplefiles】前的+。然后单击【SourceFiles】前面的+,双击【Example.cpp】,文件的内容如图24-6所示。下面给出“Example.h”和“Example.cpp”两个文件的内容,在“Example.cpp”文件中可以找到函数:externCDllExportvoidufusr(char*parm,int*returnCode,intrlen)其函数体中包含着UG/OpenAPI中的初始化函数UF_initialize和终止函数UF_terminate。在进行应用开发时,只需要把相应的代码(代码中的黑体部分)添加到相应的位置,即可完成应用开发。图22-6打开Example.cpp文件第22章UGNX5.0二次开发基础477Example.h文体内容如下:/*********************************************************************************Example.h****Description:**Exampleheaderfile.*******************************************************************************/staticvoidPrintErrorMessage(interrorCode);Example.cpp文件内容如下://////////////////////////////////////////////////////////////////////////////////Example.cpp////Description://ContainsUnigraphicsentrypointsfortheapplication.//////////////////////////////////////////////////////////////////////////////////Includefiles#includeuf.h#includeuf_exit.h#includeuf_ui.h#if!defined(__hp9000s800)&&!defined(__sgi)&&!defined(__sun)#includestrstreamusingstd::ostrstream;usingstd::endl;usingstd::ends;#else#includestrstream.h#endif#includeiostream.h#includeExample.h//----------------------------------------------------------------------------//ActivationMethods//----------------------------------------------------------------------------//ExplicitActivation//Thisentrypointisusedtoactivatetheapplicationexplicitly,asin//File-ExecuteUG/Open-UserFunction...externCDllExportvoidufusr(char*parm,int*returnCode,intrlen){/*InitializetheAPIenvironment*/interrorCode=UF_initialize();if(0==errorCode){一册通UGNX5.0478/*TODO:Addyourapplicationcodehere*//*TerminatetheAPIenvironment*/errorCode=UF_terminate();}/*Printoutanyerrormessages*/PrintErrorMessage(errorCode);}//----------------------------------------------------------------------------//Utilities//----------------------------------------------------------------------------//UnloadHandler//ThisfunctionspecifieswhentounloadyourapplicationfromUnigraphics.//Ifyourapplicationregistersacallback(fromaMenuScriptitemora//UserDefinedObjectforexample),thisfunctionMUSTreturn//UF_UNLOAD_UG_TERMINATE.externCintufusr_ask_unload(void){return(UF_UNLOAD_UG_TERMINATE);}/*PrintErrorMessage****PrintserrormessagestostandarderrorandtheUnigraphicsstatus**line.*/staticvoidPrintErrorMessage(interrorCode){if(0!=errorCode){/*Retrievetheassociatederrormessage*/charmessage[133];UF_get_fail_message(errorCode,message);/*Printoutthemessage*/UF_UI_set_status(message);//Constructabuffertoholdthetext.ostrstreamerror_message;//Initializethebufferwiththerequiredtext.error_messageendlError:endlmessageendlendlends;//Writethemessagetostandarderrorcerrerror_message.str();}}在创建几何模型、遍历模型或执行其他一些基本操作时,必须首先创建或打开一个第22章UGNX5.0二次开发基础479UnigraphicsPart文件。
本文标题:UG NX 5.0二次开发基础
链接地址:https://www.777doc.com/doc-6005889 .html