Exemple #1
0
        /// <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);
        }