8

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

如何将此标签转换为NXObject?

4

1 回答 1

11

C++

NXOpen::NXObjectManager::Get是专门为此设计的。它返回一个NXOpen::TaggedObject*,它需要被dynamic_cast<>编辑为适当的类型。

#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...

爪哇

nxopen.TaggedObjectManager在 Java 中使用。您必须从nxopen.Session类中获取它的实例:

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...
于 2021-10-30T21:13:15.923 回答