我有一个从旧版 NX UF(用户函数,基于古老的原始 C API)API 调用返回的标签,我想将它表示的对象传递给 NX Open API 调用。但是 NX Open 调用使用 NX Open 类(例如NXObject
或Part
)而不是标签。
如何将此标签转换为NXObject
?
我有一个从旧版 NX UF(用户函数,基于古老的原始 C API)API 调用返回的标签,我想将它表示的对象传递给 NX Open API 调用。但是 NX Open 调用使用 NX Open 类(例如NXObject
或Part
)而不是标签。
如何将此标签转换为NXObject
?
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...
NXObjectManager
在NXOpen.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...