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
Post a Comment