/// <summary> /// 测量两个组件集之间的距离 /// </summary> /// <param name="measureManager"></param> /// <param name="components1">组件集1</param> /// <param name="components2">组件集2</param> /// <returns>距离值</returns> public static double MeasureDistance(this MeasureManager measureManager, Component[] components1, Component[] components2) { NXOpen.Unit lengthUnit = WorkPart.UnitCollection.FindObject("MilliMeter"); ComponentGroup group1 = WorkPart.ComponentGroups.CreateComponentGroup(System.DateTime.Now.ToLongTimeString() + "_1"); for (int i = 0; i < components1.Length; i++) { group1.AddComponent(components1[i], false); } ComponentGroup group2 = WorkPart.ComponentGroups.CreateComponentGroup(System.DateTime.Now.ToLongTimeString() + "_2"); for (int i = 0; i < components2.Length; i++) { group2.AddComponent(components2[i], false); } double distanceValue = measureManager.NewDistance(lengthUnit, group1, group2).Value; group1.Delete(); group2.Delete(); return(distanceValue); }