I have a tag_t
returned from an NX Open C API call, and I want to use it in an NX Open C API call, but the C API call uses an NX Open class, e.g. NXOpen::NXObject
or NXOpen::Part
.
How can I convert this tag_t
into an NXOpen::NXObject
?
CodePudding user response:
Use nxopen.TaggedObjectManager
in Java, and you must get an instance of it from the nxopen.Session
class:
Tag myTag = ...;
Session session = (Session)SessionFactory.get("Session");
TaggedObject myObj = session.taggedObjectManager().get(tag);
Part myPart = (Part)myObj;
// Do something with myPart...
CodePudding user response:
In C#, NXObjectManager
is in the NXOpen.Utilities
namespace:
NXOpen.Tag tag = ...;
NXOpen.TaggedObject myObj = NXOpen.Utilities.NXObjectManager.Get(myTag);
Part myPart = (Part)myObj;
// Do something with myPart...
CodePudding user response:
NXOpen::NXObjectManager::Get
was specifically designed for this. It returns an NXOpen::TaggedObject*
, which needs to be dynamic_cast<>
ed to the appropriate type.
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...