/// <summary> /// 设置层为可见 /// </summary> /// <param name="view"></param> /// <param name="layers"></param> public static void SetLayerVisible(int[] layers, params NXObject[] view) { Part workPart = theSession.Parts.Work; NXOpen.Layer.StateInfo[] stateArray1 = new NXOpen.Layer.StateInfo[layers.Length]; for (int i = 0; i < layers.Length; i++) { stateArray1[i] = new NXOpen.Layer.StateInfo(layers[i], NXOpen.Layer.State.Visible); } for (int i = 0; i < view.Length; i++) { workPart.Layers.SetObjectsVisibilityOnLayer((NXOpen.Drawings.DraftingView)view[i], stateArray1, true); } }
/// <summary> /// 设置所层不可见 /// </summary> /// <param name="view"></param> /// <param name="layers"></param> public static void SetLayerHidden(params NXObject[] view) { Part workPart = theSession.Parts.Work; NXOpen.Layer.StateInfo[] stateArray1 = new NXOpen.Layer.StateInfo[256]; for (int i = 0; i < 256; i++) { stateArray1[i] = new NXOpen.Layer.StateInfo(i, NXOpen.Layer.State.Hidden); } for (int i = 0; i < view.Length; i++) { workPart.Layers.SetObjectsVisibilityOnLayer((NXOpen.Drawings.DraftingView)view[i], stateArray1, true); } }
public void ConstraintCreate() { System.IO.StreamWriter SW = new System.IO.StreamWriter("D:\\GIT\\AUTO_BOLTS_PLACE\\NXDebugLog.log"); Component Comp = Assembly.ComponentAssembly.RootComponent; //now what does NX tags do? Need to know. //how to make use of tags to obtain the parts //https://community.plm.automation.siemens.com/t5/NX-Programming-Customization-Forum/Creating-Assesbly-Constraint-using-NXopen/td-p/476978 NXOpen.Layer.StateInfo[] stateArray1 = new NXOpen.Layer.StateInfo[1]; stateArray1[0] = new NXOpen.Layer.StateInfo(32, NXOpen.Layer.State.Selectable); Assembly.Layers.ChangeStates(stateArray1, false); foreach (Component C in Comp.GetChildren()) { string name = C.Name; Part owningpart = (NXOpen.Part)C.OwningPart; owningpart.LoadFully(); DatumCollection dc = owningpart.Datums; try { foreach (DatumPlane d in dc) { string nam2 = d.Feature.Name; string nam3 = d.Layer.ToString(); SW.WriteLine(nam3); //string nam3 = d. } } catch (Exception E3) { } } SW.Close(); }