NX二次开发-建模-抽取等参数曲线

  /// <summary>
        /// 抽取等参数曲线
        /// </summary>
        /// <param name="face"></param>
        /// <param name="parameterDirection"></param>
        /// <param name="number"></param>
        /// <param name="curves"></param>        
        public static void GetIsoparametricCurves(Face face, IsoparametricCurvesBuilder.DirectionTypes parameterDirection,int number,out Curve []curves)
        {

            curves = new Curve[0];
            NXOpen.Session theSession = NXOpen.Session.GetSession();
            NXOpen.Part workPart = theSession.Parts.Work;
            NXOpen.Part displayPart = theSession.Parts.Display;

            NXOpen.Features.IsoparametricCurves nullNXOpen_Features_IsoparametricCurves = null;
            NXOpen.Features.IsoparametricCurvesBuilder isoparametricCurvesBuilder1;
            isoparametricCurvesBuilder1 = workPart.Features.CreateIsoparametricCurvesBuilder(nullNXOpen_Features_IsoparametricCurves);
           
            NXOpen.Face face1 = face;

            Point3d point3D = new Point3d();
            Vector3d vector3D = new Vector3d();
            double[] paramters = new double[2] { 0.5, 0.5 };
            GetFacePointBasedParameters(face,paramters,out point3D,out vector3D);      

            isoparametricCurvesBuilder1.SelectObject.SetValue(face1, workPart.ModelingViews.WorkView, point3D);
         
            isoparametricCurvesBuilder1.Direction = parameterDirection;          

            isoparametricCurvesBuilder1.UpdateIsoparametricCurves();

            isoparametricCurvesBuilder1.Number = number;

            isoparametricCurvesBuilder1.UpdateIsoparametricCurves();

            isoparametricCurvesBuilder1.UpdateIsoparametricCurves();

            NXOpen.NXObject nXObject1;
            nXObject1 = isoparametricCurvesBuilder1.Commit();

            IsoparametricCurves isoparametricCurves = (IsoparametricCurves)nXObject1;

            NXObject []nXObjects = isoparametricCurves.GetEntities();
           
            foreach(var nx in nXObjects)
            {
                Array.Resize(ref curves,curves.Length+1);
                curves[curves.Length - 1] = (Curve)nx;
            }
            isoparametricCurvesBuilder1.Destroy();

        }

猜你喜欢

转载自blog.csdn.net/yang19861007/article/details/108817690