NX和其他西门子PLM软件产品提供了许多软件工具包。NXOpen是指提供直接与NX对象模型一起工作的过程API。每个API支持特定的编程语言。一组相对较新的语言都共享一个共同的对象模型,称为通用的API(Common API)。其他三种API已经存在多年,统称为遗留或经典API(Classic APIs)。
一、Common API
这个NX架构向NX开发人员提供一个公共对象的特性和功能。使用这个公共对象模型,可以自动生成多语言绑定。这意味着来自通用api的所有语言都具有相同的对象集、对象属性和方法。此外,对于所有公共API,类层次结构是相同的。
这种体系结构比传统api使用的体系结构有许多优势。例如:
- 所有通用api语言在NX功能方面都是平等的。这意味着您可以自由地选择适合您特定需求的实现语言,而不必担心缺少的功能。
- 在NX中引入新的功能和自动化功能;交互方式和编程方式之间的功能不再延迟。
- 现在您可以访问NX开发人员使用的同一个对象模型。
通用api可以使用以下语言绑定:
1.NX Open for .NET - 这个API使用微软的.NET框架。这个API可以使用.NET兼容的语言创建任何自动化程序,包括Visual Basic .NET和C #。用户可以充分利用.NET框架提供的所有好处,包括本地Windows对话框开发工具和VisualStudio集成开发环境(IDE)的所有功能。如果Windows是你选择的平台,这个API是理想的。
2.NX Open for Java - 这个API使用甲骨文的java平台。java提供了许多好处,包括平台独立性和巨大的现有类库。java抽象窗口工具包(AWT)和Swing提供了工具构建平台无关的对话框。java远程方法调用(RMI)方法提供的工具来构建基于客户机/服务器应用程序。此外,还可以提供诸如Eclipse这样的免费开发环境。如果正在开发多个平台客户机/服务器应用程序,则此API是理想的。
3.NX Open for C++ - 这个API提供了NX的C++接口。这个新的C++库兼容Open C and Open C++ APIs。如果你需要提高现有的C / C++应用程序,这个API是理想的。
4.NX Open for Python - 这个API提供了一个NX的Python接口。Python是一种脚本语言,它使用现代编程范式,如面向对象编程和反射。它使用较简介的语法,并有一些用于科学和数值编程的扩展包。没有提供Python的远程API。
二、Journaling(录制功能)
虽然Journaling不是一个工具包,在这里介绍是因为它可以用来记录自动化解决方案或使用大型应用程序生成代码。
Journaling是一种快速的自动化工具,记录、编辑和回放,交互式NX。它从通用API构建,在NX的交互式会话生成一个脚本文件,它可以在稍后时间重放。这些Journaling可以通过简单的编程结构和用户界面组件进行编辑和增强,以快速生成定制程序。
虽然日志重播目前仅限于# Python,C,Visual Basic .NET,用户可以选择记录在任何常用的API的语言。这种技术可以用来生成示例代码,然后可以在较大的应用程序中使用。
三、Classic APIs
在NX采用通用api之前,开发了这三个api。这些API仍然可用,但不再对它们增强。
1.Open C - Open C API(ufunc)是NX的直接编程接口,它允许用户使用流行的C编程语言创建自定义应用程序。NX开发人员、客户和合作伙伴已经使用它来生成独特的应用程序来增强NX或充当完全独立的实用程序。Open C还提供了一个完全可扩展的数据模型,允许客户定义类似于标准NX对象的新类型的对象,并持久保存在NX部分文件中。
Open C API已经发展了很多年,由5000多个函数组成。这些函数统称为用户函数。这个API通常被称为ufunc。开放的C函数通常有命名约定:UF_
考虑到这个API的历史,它提供了广泛的功能。为了确保新的应用程序都可以访问这些功能.net,java,Python提供了包装器。
2.Open C++ - 这个API为NX提供了第一个面向对象的接口。用C++写的,这个API充分利用了面向对象的特征包括继承、封装和多态性。OpenC++提供完整的访问的类层次结构,使客户能够重写方法,派生自己的类,并创建全新NX的持久对象。OpenC++完全兼容Open C API。
3.NX Open GRIP - GRIP(图形交互编程)是一种用于自动化CAD/CAM任务的中间脚本语言。用户可以创建应用程序来实现数控操作,创建几何和绘图对象,控制系统参数,执行文件管理功能和修改现有的几何图形。
四、KF(Knowledge Fusion)
Knowledge Fusion (KF) - 此API是嵌入在NX中的解释型、面向对象的语言。KF允许您通过创建规则,将工程知识添加到任务中,这些规则是语言的基本组成部分。语言是声明性的,而不是过程性的,这意味着规则在需要时执行,不管顺序如何。知识融合规则引擎根据规则之间的依赖关系确定正确的规则触发序列。此外,该语言还具有访问外部知识库(如数据库或电子表格)的能力,以及与其他应用程序(如分析和优化包)的接口。此API非常适合于需要参与模型更新的关联、持久对象的应用程序。有关更多信息,请参见知识融合和知识融合帮助和最佳实践。
五、其他的NX开发工具包
除了上面提供的NX开放API工具包之外,西门子PLM软件还提供了以下的NX自动化工具。本文档将大致介绍NX开放的这些工具包。每个工具箱的完整信息可以在各自的用户指南中找到。
1.Block Styler (UI Styler) - 这是一个视觉用户界面生成器,可以交互设计的便携式NX风格对话框。它由NX开发人员在内部使用,外部由用户和第三方开发人员使用。这提供了一个运行在NX内的对话框生成器。由生成器产生的对话框定义文件是在运行NX会话期间自动加载,并提供程序处理用户交互的必要事件回调。更多信息见BlockStyler用户指南。
2.MenuScript - 此工具允许终端用户和第三方开发人员创建和编辑NX菜单。MenuScript是一个文本语言,可以用来自定义NX菜单项,用于从NX启动应用程序。菜单文件支持定制的主菜单栏和快速查看弹出菜单。标准的NX菜单可以定制,以满足特定的工作流程,可添加Block Styler创建对话框到新的菜单项。更多信息请查看菜单用户指南。
3.Open User Interface Styler (UI Styler) - UI Styler是可视化的用户界面生成器,用于维护Block Styler之前创建的基于UI Styler的对话框。新的对话框,应使用Block Styler.定义。更多信息见UI Styler用户指南。
六、其他的西门子PLM软件工具包
西门子PLM软件提供了许多其他自动化和系统集成工具包。这里提到了两个工具包,因为它们与NX一起使用的频率比较高。这些工具包的使用超出了本手册的范围。有关更多信息,请参见它们各自的用户指南,它们不是NX帮助库的一部分。
1.Parasolid - Parasolid是世界领先的生产验证的几何建模软件,允许用户模拟行业最复杂的部件和组件。作为在不同计算机上的几何引擎的辅助设计、制造和工程(CAD/CAM/CAE)应用,Parasolid已在全球产品设计建立一个行业标准。Parasolid是用NX实体建模内核。
2.Teamcenter Engineering Integration Tool Kit (ITK) - 这个API提供用于定制Teamcenter支持组织的特定的数据管理功能和公用事业的需求。Teamcenter是客户端-服务器架构为基础的系统。可以对服务器和客户机部分进行定制。如果必须直接与Teamcenter自动化保存或检索产品数据通过NX和其他第三方应用程序生成过程中的应用,那么这个API是理想的。
参考资料
官方例子
链接:UFUN中文API 密码:pjc1
链接:NXJavaAPI离线文档 密码:494s
Java官方API