CS_NXOpen_0010_ExtrudeCurves





using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Collections; // Calling Array List
using NXOpen;
using NXOpen.UF;


namespace Extrude
{
    public class EX_Extrude
    {
         private static UFSession theUfSession;
        private static Session theSession;

        // Constants

        public const double PI = 3.14159265358979324;


        public static void Main(string[] args)
        {

            theSession = Session.GetSession();
            theUfSession = UFSession.GetUFSession();

            // Create Line1



            UFCurve.Line line1 = new UFCurve.Line();


            double[] l1_endpt1 = { -1.4476606170268, 2.3788333712953, 0.0 };
            double[] l1_endpt2 = { 1.5471310496399, 2.2539419253757, 0.0 };


            line1.start_point = new double[3];
            line1.start_point[0] = l1_endpt1[0];
            line1.start_point[1] = l1_endpt1[1];
            line1.start_point[2] = l1_endpt1[2];
            line1.end_point = new double[3];
            line1.end_point[0] = l1_endpt2[0];
            line1.end_point[1] = l1_endpt2[1];
            line1.end_point[2] = l1_endpt2[2];

            Tag[] objarray = new Tag[5];

            theUfSession.Curve.CreateLine(ref line1, out objarray[0]);


            // Create Line2


            UFCurve.Line line2 = new UFCurve.Line();


            double[] l2_endpt1 = { -1.4476606170268, 1.2548103580189, 0.0 };
            double[] l2_endpt2 = { 1.5471310496399, 1.3797018039385, 0.0 };
           

            line2.start_point = new double[3];
            line2.start_point[0] = l2_endpt1[0];
            line2.start_point[1] = l2_endpt1[1];
            line2.start_point[2] = l2_endpt1[2];
            line2.end_point = new double[3];
            line2.end_point[0] = l2_endpt2[0];
            line2.end_point[1] = l2_endpt2[1];
            line2.end_point[2] = l2_endpt2[2];


            theUfSession.Curve.CreateLine(ref line2, out objarray[1]);



            // Create Line3


            UFCurve.Line line3 = new UFCurve.Line();


            double[] l3_endpt1 = { -1.4710981170268, 1.8168218646571, 0.0 };
            double[] l3_endpt2 = { 1.5289018829732, 1.8168218646571, 0.0 };

           
            line3.start_point = new double[3];
            line3.start_point[0] = l3_endpt1[0];
            line3.start_point[1] = l3_endpt1[1];
            line3.start_point[2] = l3_endpt1[2];
            line3.end_point = new double[3];
            line3.end_point[0] = l3_endpt2[0];
            line3.end_point[1] = l3_endpt2[1];
            line3.end_point[2] = l3_endpt2[2];

           
            theUfSession.Curve.CreateLine(ref line3, out objarray[4]);


            // Definition of WCS


            Tag wcs_tag;
            Tag matrix_tag;

            theUfSession.Csys.AskWcs(out wcs_tag);
            theUfSession.Csys.AskMatrixOfObject(wcs_tag, out matrix_tag);


            // Create Arc1


            UFCurve.Arc arc1 = new UFCurve.Arc();
           
            arc1.matrix_tag = matrix_tag;


            double arc1_start_ang = (PI / 180) * 87.611984536731;
            double arc1_end_ang = (PI / 180) * 272.38801546327;
            double arc1_rad = 0.5625;


            arc1.start_angle = arc1_start_ang;
            arc1.end_angle = arc1_end_ang;
            arc1.arc_center = new double[3];
            arc1.arc_center[0] = l3_endpt1[0];
            arc1.arc_center[1] = l3_endpt1[1];
            arc1.arc_center[2] = l3_endpt1[2];
            arc1.radius = arc1_rad;


            theUfSession.Curve.CreateArc(ref arc1, out objarray[2]);


            // Create Arc2

            UFCurve.Arc arc2 = new UFCurve.Arc();

            arc2.matrix_tag = matrix_tag;

            double arc2_start_ang = (PI / 180) * 272.38801546327;
            double arc2_end_ang = (PI / 180) * 447.61198453673;
            double arc2_rad = 0.4375;


            arc2.start_angle = arc2_start_ang;
            arc2.end_angle = arc2_end_ang;
            arc2.arc_center = new double[3];
            arc2.arc_center[0] = l3_endpt2[0];
            arc2.arc_center[1] = l3_endpt2[1];
            arc2.arc_center[2] = l3_endpt2[2];
            arc2.radius = arc2_rad;

            theUfSession.Curve.CreateArc(ref arc2, out objarray[3]);


            // Create Extrude

                        //Create loop list


            int i;
            int count = 4;

            Tag[] loop_list;


            ArrayList arr_loop_list = new ArrayList();

            for (i = 0; i < count; i++)
            {
                arr_loop_list.Add(objarray[i]);
            }

            loop_list = (Tag[])arr_loop_list.ToArray(typeof(Tag));



            string taper_angle = "0.0";
            string[] limit1 = { "1.0", "1.25" };
            double[] ref_pt = new double[3];
            double[] direction = { 0.0, 0.0, 1.0 };

            Tag[] features;


            theUfSession.Modl.CreateExtruded(loop_list, taper_angle, limit1,
                 ref_pt, direction, FeatureSigns.Nullsign, out features);



        }

    }
}


Comments

Popular posts from this blog

CS_NXOpen_0011_MoveBodies2Components

CS_NXOpen_0003_ProjectCurve