NX二次开发应用.docx_第1页
NX二次开发应用.docx_第2页
NX二次开发应用.docx_第3页
NX二次开发应用.docx_第4页
NX二次开发应用.docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

NX二次开发应用 一 、NX API简介 NX是一款功能强大的CAD/CAM/CAE软件,它不仅可以通过UI操作来控制各种功能,还提供了多种应用程序开发包(API)对NX内部对象进行访问。在这些API基础上,用户可以开发各种自动程序,定制NX功能,甚至可以在现有NX功能之上二次开发新的CAD/CAM/CAE软件产品。 1. NX API 具有如下特点: (1) 支持多种开发语言:C, C+, Java, .Net, Python。 (2) 支持多种操作系统平台:Windows,Linux,Unix。 (3) 超过90%的NX功能覆盖率。 2. NX API架构与统一对象模型 NX内部采用统一对象模型来描述NX内部任一对象及其操作。NX UI操作和NX API都是构建于NX统一对象模型之上,以确保NX API与从UI操作访问的是统一的NX内部对象模型。基于不同语言的NX API都是由同一个NX内部对象转化而来,无论用户采用哪一种语言的API其最终调用的是同一个内核函数,从而真正实现了平台无关性和开发语言无关性。 3. 现有NX API 自1976 年,UG (NX 的前身)提供了第一个API GRIP起,NX陆续了提供了UGOpen(1997 年),KF(2000 年),NXOpen(2004 年)等多种 API。 (1) GRIP(Graphics Interactive):一种类似LISP的简单交互式图形编程语言。GRIP程序以其运行效率高、简单易学和不长驻内存的特点深受工程人员的喜爱,但其可实现NX的功能比较少,有一定的局限性。一般适用企业简单的二次开发。 (2) UGOpen(也被称为 UFUN):一种基于C的NX二次开发API,包括3000多个C函数,其功能强大的特点适合企业或第三方软件公司进行系统、高级的开发。由于它是直接在 NX的内部代码的基础上建立的,所以可实现大部分NX的功能,但它需要有C语言和软件工程等技术的支持,相对比较难学。 (3) KF(Knowledge Fusion):一种应用于知识熔接技术的由求解需求驱动的解释性面向对象的语言,是基于知识工程的智能化的NX二次开发API,其灵活、易学、可以知识 驱动的特点适合企业或第三方软件公司进行专家系统的开发。但是目前它的功能不是很全,所以往往和 UGOpen和NXOpen 结合起来进行开发。 (4) NXOpen:一种完全基于面向对象的新一代NX二次开发API。它支持多种开发语言与多种操作系统平台,覆盖了NX绝大部分功能。可从Journal功 能直接录制NX的操作生成代码,开发更为简单,适合工程人员进行简单快速的开发,也适合企业和第三方软件公司进行高级复制的功能定制。 4. NX API 比较 用户在进行NX二次开发时需要了解各API的特点,结合项目开发的需求,选用适合的API进行开发。以下在对不同NX API就易用性,主流性和可扩展性方面进行了较为客观的比较: o q易用性:开发语言是否清楚,直观,并有较好的帮助文档与代码例程。 o q主流性:是否支持主流的开发语言与主流的IDE(集成开发环境)。 o q可扩展性:代码是否容易移植到新的NX API。 o q发布的NX版本:要开发的NX版本应该高于NX API的发布版本。 二、 NX开发环境设置 1. 基本环境变量 环境变量在NX的运行过程中有着重要的应用,一些环境变量在安装NX之后便已经设置。其中最常用的基本环境变量包括: UGII_BASE_DIR NX 安装的文件夹路径 UGII_ROOT_DIR NX 安装文件夹中UGII的位置 UGS_LICENSE_SERVER 28000# UGII_LANG ENGLISH 其它常用的环境变量在ugii_env_ug.dat 文件中定制,该文件默认位于$UGII_ROOT_DIR目录下,不建议用户修改。用户可以修改同目录下的ugii_env.dat 文件,添加一些环境变量覆盖已有的环境变量以控制NX的运行方式,该文件可以通过环境变量UGII_ENV_FILE进行设定。 2. 用户环境变量 NX用户通常应用环境变量指向一个根目录来配置开发的应用程序。常用的环境变量包含以下两个: UGII_USER_DIR:用户二次开发程序根目录的完整路径。该环境变量在NX安装之后处于未定义状态,定义之后,NX Open就可以从这些目录得到二次功能扩充。该环境变量主要应用于单个应用程序的开发过程中。 UGII_CUSTOM_DIRECTORY_FILE:指向一个包含所有用户二次开发程序根目录完整路径。该环境变量在NX安装后默认指 向$UGII_ROOT_DIRmenuscustom_dirs.dat文件。用户可以修改该文件,在文件中添加任意多个NX二次开发程序根目录路 径,以便用户对二次开发程序进行系统的管理和配置。二次开发应用程序的发布推荐使用该方法,尤其适用于企业级客户多系统开发的应用。通过拷贝文件可以方便 的实现多NX用户配置以及以后的NX版本升级维护。 3. 应用程序运行目录 通过环境变量设置的用户二次开发程序根目录,即通常所说的应用程序运行目录。NX在运行过程中将遍历这些根目录的子目录,加载其中定义的客制化菜单、工具条、对话框、二次开发应用程序以及UDO用户自定义库。该根目录包含的子目录如下图所示: 每个子文件夹的功能如下表所示:4. 运行模式 (1) 远程运行模式 远程运行模式允许用户在一个独立的NX环境进程中执行应用程序。该NX环境可以是运行在本机上的也可以是连接到另一台机器上的进程。由于远程运行模式的实 现过程基于.NET或者Java架构所提供的服务,因此,该模式不支持C+版本的NXOpen API。 5. 卸载方式 NXOpen API 为用户提供了一个入口函数(GetUnloadOption),NX自动获得该入口返回参数来控制应用程序的卸载方式。提供的卸载方式包括: GetUnloadOption代码格式:应用C+语言开发NXOpen时,其卸载方式入口函数定义为: extern int ufusr_ask_unload( void ) /return (int)Session:LibraryUnloadOptionExplicitly; /显示卸载方式 /return (int)Session:LibraryUnloadOptionImmediately; /立即卸载方式 return (int)Session:LibraryUnloadOptionAtTermination; /NX终止卸载方式 在某些情况下,如应用NXOpen C+向导生成工程时,其卸载方式也可能定义为: extern int ufusr_ask_unload( void ) /return( UF_UNLOAD_SEL_DIALOG ); /显示卸载方式 /return( UF_UNLOAD_IMMEDIATELY ); /立即卸载方式 return( UF_UNLOAD_UG_TERMINATE ); /NX终止卸载方式 注意:应用程序注册了部件或者UDO相关回调函数,必须使用NX终止卸载方式。 6. 用户入口 (1) 用户入口概念 用户入口(User Exit)是NXOpen API的一个重要概念,是NX在某些特定的位置预定义了一些特定功能的入口。NX运行到这些入口时,将自动检测用户是否已定义了指向内部程序位置的环境。 若没有定义,则以NX默认的方式运行;若已定义,则从该处自动加载并运行用户开发的程序。不同的用户入口具有不同的User Exit名称,用户应用程序以不同的User Exit作为入口点, 就能决定应用程序在NX运行的特定阶段被激活并运行。 (2) 函数定义格式 每个用户入口都有唯一的入口名称,以便用户在应用程序中调用。在通常情况下,用户入口函数的参数和返回值都相同,其函数定义格式如下: void entry_point(char *param, int *retcod, int param_len); 其中,param是输入参数,param_len为参数param的长度,由NX系统处理; retcod为输出参数。 (3) 用户入口函数实现方法如下: 在NXOpen帮助文档中查找符合应用程序加载需求的用户入口,在应用程序中添加该用户入口函数定义。 编写程序实现代码并编译生成动态链接库(DLL)文件。 在NXOpen帮助文档中找到用户入口函数对应的环境变量名称,添加新的环境变量“环境变量名=DLL 全路径”。 运行NX到该特定入口时将自动加载并运行用户程序。 (4) 常用用户入口介绍 NX提供的用户入口有很多,详细的可以参考NX帮助文档。常用的用户入口如下表所示: 7.创建工程开发环境 向导创建过程: (1) Project Wizard是NX为用户提供的向导自动生成开发工程的工具,其VC+向导文件保存在%UGII_BASE_DIR%ugopenvs_filesVC 目录下。 2)复制%UGII_BASE_DIR%ugopenvs_filesVCvcprojects下面所有的文件到到%MSVS9%VCvcprojects。 3)复制%UGII_BASE_DIR%ugopenvs_filesVCVCWizards下面所有的文件到%MSVS9%VCVCWizards。 4)运行 VS2008,在 VC+工程模板中选择 NX7 Open Wizard 向导创建工程。 5) 进入向导欢迎界面。6)进入工程设置界面设置工程类型。7)进入工程设置界面设置工程类型。 手动创建过程: (1) 运行VS2008,创建一个空的VC+工程。 (2)运行VS2008,创建一个空的VC+工程。 (3)运行VS2008,创建一个空的VC+工程。(4)为工程添加一个空的文件,添加交互运行模式代码。 8. UF License所有的UF程序在运行时都需要NX/Open API License的支持,因此程序必须正确地初始化以获得一个NX/Open API License,在终止时也要归还曾占用的License以供下次调用UF函数时使用,初始化和终止化的操作使用以下的函数: int UF_initialize (); /*UF初始化*/ int UF_terminate (); /*UF终止化*/ UF_initialize () 函数的调用应该紧跟程序中的变量声明部分,而UF_terminate () 则应在程序最后才被调用,对于外部模式和内部模式都是如此,这说明外部模式的运行虽然脱离NX Gateway,但仍离不开API License的支持。 三、 NX二次开发应用案例 1. NX配合Moldflow应用的二次开发 在Moldflow中对复杂水路的建模很耗时间和精力,一不小心可能造成后续冷却分析失败,如何才能提高效率呢?我们在NX软件中进行了相应的二次开发, 自动抽取中心线,自动创建BAFFLE,自动计算水路长度,自动打断等,方便为后续MOLDFLOW做准备,从而节约时间,提高效率。 自动抽取中心线,自动创建Baffle 自动计算水路长度 具体功能如下: (1) 抽取单个面中心线 (2) 抽取多个体的中心线 (3) 从相交位置打断交叉线 (4) 删除线段,输入值为要删除线段的最大长度 (5) 生成baffle所需线段 2. NX在伟创力二次开发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论