如何在 NX Open 中将标签转换为 NXObject?

How can I convert a tag to an NXObject in NX Open?

我有一个从遗留 NX UF(用户函数,基于古老的原始 C API)API 调用返回的标记,我想将它代表的对象传递给NX 打开 API 调用。但是 NX Open 调用使用 NX Open 类(例如 NXObjectPart)而不是标签。

如何将此标签转换为 NXObject

C++

NXOpen::NXObjectManager::Get 就是专门为此设计的。它 returns 一个 NXOpen::TaggedObject*,需要 dynamic_cast<>-ed 到适当的类型。

#include <NXOpen/NXObjectManager.hxx>
#include <NXOpen/Part.hxx>

tag_t myTag = ...;
NXOpen::TaggedObject *myObj = NXOpen::NXObjectManager::Get(myTag);

// Cast it to the appropriate type:
NXOpen::Part* myPart = dynamic_cast<NXOpen::Part*>(myObj);
// Do something with myPart...

C#

NXObjectManagerNXOpen.Utilities 命名空间中:

using NXOpen.Part;
using NXOpen.Tag;
using NXOpen.TaggedObject;
using NXOpen.Utilities;

Tag myTag = ...;
TaggedObject myObj = Utilities.NXObjectManager.Get(myTag);

Part myPart = (Part)myObj;
// Do something with myPart...

Java

在Java中使用nxopen.TaggedObjectManager。您必须从 nxopen.Session class:

中获取它的一个实例
using nxopen.Part;
using nxopen.Session;
using nxopen.SessionFactory;
using nxopen.Tag;
using nxopen.TaggedObject;

Tag myTag = ...;

Session session = (Session)SessionFactory.get("Session");
TaggedObject myObj = session.taggedObjectManager().get(myTag);

Part myPart = (Part)myObj;
// Do something with myPart...