打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一文熟悉NX二次开发NXOpen对象模型
userphoto

2022.08.31 湖北

关注

NX二次开发NXOpen对象模型介绍

理解 NX 通用对象模型以及其中各个对象之间的关联关系是开发人员掌握NXOpen应用程序开发的关键,下图显示了一个基本的通用对象模型片段。完整的NXOpen对象模型,可以参照 NXOpenC++/Java/.NET 参考手册。


NXOpen对象模型和其他面向对象的开发语言类似,所有的对象类都按照不用应用环境的命名空间进行管理,如Annotations,Features,Preferences,BlockStyler等。

  • TaggedObject:所有 NX对象的基类。它主要用于标识NX 里面所有的永久对象,也就是所有随着部件保存同时保存的 NX对象。由于UGOpen应用 Tag对象标识对所有的NX 对象进行映射和管理,为了同时支持 UGOpen关联的开发,一些NX临时对象也会从该类继承。

  • NXObject:从 TaggedObject继承,提供了设置和获得对象名称、属性 (Attribute)的方法,是所有NX 详细对象的基类。

  • TransientObject: NX 临时对象的基类,这些对象没有Tag 对象标识,在部件保存时也不会被保存。对于没有垃圾自动回收的开发语言,如 C++,临时对象使用结束之后必须要显示调用Dispose 方法来处置。ppTaggedObjectCollection:NXTag 对象集合的基类。该类通常包含以下功能,创建新的 NX对象,获得该对象集合中的所有NX 对象。

  • Session & UI:NXOpenAPI 的入口类,NXOpen中所有其他的类对象都可以直接或者间接的通过这两个类的方法和属性(Method)得到。在任何一个独立的NX 运行环境中,只有一个独立的 Session实例,可以通过 Session的静态函数GetSession获得该实例UI和 Session一样,在NX 运行环境中也只有一个实例,可以通过 UI的静态函数GetUI获得该实例。由于UI 包含的是所有和 NX 交互界面相关的类对象和方法,因此,只能在NX 交互界面相关的应用程序中被调用,UI不可以应用于NXOpen批处理开发模式中。

  • Part:NX 部件类。该类包含了绝大部分NX 对象的集合,也就是获得继承自TaggedObjectCollection的对象。例如,Part类对象可以通过Features 方法获得包含所有 Feature的 FeatureCollection对象。其中,FeatureCollection对象从TaggedObjectCollection继承,可以获得FeatureBuilder来完成Feature 的创建和编辑。

  • Builder:所有的特征(Feature)以及绝大多数其他的NX Entity 都是通过 Builder对象来实现创建和编辑操作。Builder对象提供了一系列的get 和 set方法来定义需要创建和编辑的NX Entity。这些方法通常和用户在 NX用户界面中交互式创建和编辑实体的输入一致。Builder对象也可以用来获取NX Entity 的参数属性。应用 Builder对象来创建或编辑NX Entity,需要先设置或修改 Builder对象中的参数设置,然后调用Commit 方法来实现 NXEntity 的创建和编辑。同时,在结束应用Builder对象之后,必须要调用Destroy 方法来销毁 Builder对象。

  • SmartObject:SmartObject是一类特殊的NX Entity,这些Entity 定义中可以“记住他们的父对象”以及其生成方式。例如,一个通过两条线相交得到的Smart Point 对象,记录了生成该店的两条线以及相交生成点的方式。如果任意一条线有了移动,在保持相交的情况下,这个Smart Point也会更新到新的坐标点。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
今日福利:最全最经典的UG二次开发教程
UG NX二次开发中常用的ufun API函数大集合,熟悉这些就够了
实战揭秘:开发.Net平台应用系统框架
论文浅尝 - CIKM2020 | Relation Reflection Entity Align...
基于知识的拖拉机制动器智能化设计系统研究
OKHttp使用详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服