Code:
using System;
using System.Collections;
using NXOpen;
using NXOpen.Assemblies;
using NXOpen.Positioning;
using NXOpen.Utilities;public class Program
{
// class members
private static Session theSession;
private static UI theUI;
private static ListingWindow lw;
public static int Main(string[] args)
{
theSession = Session.GetSession();
theUI = UI.GetUI();
lw = theSession.ListingWindow;
try
{
lw.Open();
// check for existing target work part
Part disp_part = theSession.Parts.Display;
if (disp_part == null)
{
lw.WriteLine("No displayed part...exit.");
return 1;
}
ComponentAssembly ca = disp_part.ComponentAssembly;
lw.WriteLine("ComponentAssembly = " + ca);
Positioner pos = ca.Positioner;
lw.WriteLine("Positioner = " + pos);
ConstraintCollection conscol = pos.Constraints;
IEnumerator iEnum1 = conscol.GetEnumerator();
Constraint cons;
iEnum1.Reset();
while( iEnum1.MoveNext() )
{
cons = (Constraint) iEnum1.Current;
lw.WriteLine("\n" + cons.ToString() + ", Type: " + cons.ConstraintType);
ConstraintReference[] consrefs = cons.GetReferences();
IEnumerator iEnum2 = consrefs.GetEnumerator();
iEnum2.Reset();
while (iEnum2.MoveNext())
{
ConstraintReference consref = (ConstraintReference)iEnum2.Current;
lw.WriteLine(" Associated Geometry: " + consref.GetGeometry().ToString());
}
}
}
catch (NXOpen.NXException ex)
{
// NX5
UI.GetUI().NXMessageBox.Show("Message", NXMessageBox.DialogType.Error, ex.Message);
// NX4
// lw.Open(); lw.WriteLine(ex.Message);
}
return 0;
}
public static int GetUnloadOption(string arg)
{
return System.Convert.ToInt32(Session.LibraryUnloadOption.Immediately);
}
}