I can’t understand how to select an object in NX using its name. For example, I have a CSYS named ‘Ref’ (not the CSYS feature, but the CSYS itself). How can I make a selection in NX Open if I know that the CSYS I need is named ‘Ref’?
Cycle through the coordinate systems in the part looking for the one named "REF". Save a reference to the one that you find.
Option Strict Off Imports System Imports NXOpen Module Module1 Sub Main() Dim theSession As Session = Session.GetSession() If IsNothing(theSession.Parts.BaseWork) Then 'active part required Return End If Dim workPart As Part = theSession.Parts.Work Dim lw As ListingWindow = theSession.ListingWindow lw.Open() Dim refCsys As CoordinateSystem = Nothing 'find coordinate system named "REF" For Each temp As CoordinateSystem In workPart.CoordinateSystems If temp.Name = "REF" Then refCsys = temp End If Next If Not IsNothing(refCsys) Then lw.WriteLine("REF csys found") Else lw.WriteLine("REF csys not found") Return End If 'do something with it refCsys.Highlight() 'use part cleanup -> remove extraneous highlighting to get it back to normal lw.Close() End Sub Public Function GetUnloadOption(ByVal dummy As String) As Integer 'Unloads the image immediately after execution within NX GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Immediately End Function End Module
Do I get it right that these UF wrappers cycle through any object? So that if I have body and datum with the same name, it will pick them both?
There is a related function that you can use to cycle by name, but only for a specified type: CycleByNameAndType(). You can find the types listed in ...\ugopen\uf_object_types.h
There is a sample on the Solution center called
Sample NX Open .NET C# program : find view with given name
You could also search for "nx_api3561" to find it quickly.