Selecting objects by name in NX Open
Selecting objects by name in NX Open
(OP)
Hello everyone!
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’?
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’?





RE: Selecting objects by name in NX Open
CODE
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 Modulewww.nxjournaling.com
RE: Selecting objects by name in NX Open
www.cadroad.com
RE: Selecting objects by name in NX Open
www.cadroad.com
RE: Selecting objects by name in NX Open
CODE
using Microsoft.VisualBasic; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using NXOpen; static class Module1 { public static void Main() { Session theSession = Session.GetSession(); if ((theSession.Parts.BaseWork == null)) { //active part required return; } Part workPart = theSession.Parts.Work; ListingWindow lw = theSession.ListingWindow; lw.Open(); CoordinateSystem refCsys = null; //find coordinate system named "REF" foreach (CoordinateSystem temp in workPart.CoordinateSystems) { if (temp.Name == "REF") { refCsys = temp; } } if ((refCsys != null)) { lw.WriteLine("REF csys found"); } else { lw.WriteLine("REF csys not found"); return; } //do something with it refCsys.Highlight(); //use part cleanup -> remove extraneous highlighting to get it back to normal lw.Close(); } public static Session.LibraryUnloadOption GetUnloadOption(string dummy) { //Unloads the image immediately after execution within NX return NXOpen.Session.LibraryUnloadOption.Immediately; } }www.nxjournaling.com
RE: Selecting objects by name in NX Open
www.cadroad.com
RE: Selecting objects by name in NX Open
In interactive mode, we can use Class Selection window, enter name there and get a selection. Is it possible to utilise this functionality programmatically? Or are we actually doing it in the above code?
www.cadroad.com
RE: Selecting objects by name in NX Open
The code above could be improved slightly (with respect to speed of execution) by exiting the loop when the named csys is found. As it is, even when the named csys is found, we continue looking at the rest of the csys objects.
www.nxjournaling.com
RE: Selecting objects by name in NX Open
www.cadroad.com