Программная реализация операции вырезания выдавливанием

 

Завершающим элементом построения детали цилиндр, является поверхность, образованная путем вычитания элемента вращения, образующего центральное отверстие цилиндра под поршень.

Эскиз элемента вращения представлен на рисунке 5.1.

Рисунок 5.1 – Эскиз операции «Вырезания»

 

В данном случае, эскиз и сама операция, создается аналогично представленной выше функции построения детали «Корпус» (см. ЛР №4), с одним основным отличием в параметре, определяющем вид булевой операции при вызове функции вращения эскиза.

theUFSession.Modl.CreateRevolved(loop_list6, limit6, ref_pt6, direction6, FeatureSigns.Negative, out features6);

При этом параметр FeatureSigns функции CreateRevolved должен быть определен как Negativ (вычитание), а не Nullsign (операция отсутствует).

Рассмотрим подробно программную реализацию этой функции.

{//Переменная задающая значения направления выдавливания ось CX

   double[] direction6 = { 1.00, 0.00, 0.00 };

//Задание координат начальной точки вращения

    double[] ref_pt6 = new double[3];

    ref_pt6[0] = 0.00;

    ref_pt6[1] = 0.00;

    ref_pt6[2] = 0.00;

//Задание пределов вращения

    string[] limit6 = { "0", "360" };

//объявление массива объектов вращения

    Tag[] objarray6 = new Tag[5];

//Объявление и определение переменны содержащих координаты точек отрезков эскиза

    double[] l1_endpt1 = { 5, 0, 0.00 };

    double[] l1_endpt2 = { 200, 0, 0.00 };

    double[] l2_endpt1 = { 200, 0, 0.00 };

    double[] l2_endpt2 = { 200, 22.85, 0.00 };

    double[] l3_endpt1 = { 200, 22.85, 0.00 };

    double[] l3_endpt2 = { 20, 22.85, 0.00 };

    double[] l4_endpt1 = { 20, 22.85, 0.00 };

    double[] l4_endpt2 = { 5, 0, 0.00 };

// Переменная для записи указателя на объект, получившийся в результате операции вырезания вращением

    Tag[] features6;

//Создание структур NX соответствующих отрезкам эскиза

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

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

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

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

//-----------Задаются конечные точки отрезков----------------

    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];

 

    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];

 

    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];

 

    line4.start_point = new double[3];

    line4.start_point[0] = l4_endpt1[0];

    line4.start_point[1] = l4_endpt1[1];

    line4.start_point[2] = l4_endpt1[2];

    line4.end_point = new double[3];

    line4.end_point[0] = l4_endpt2[0];

    line4.end_point[1] = l4_endpt2[1];

    line4.end_point[2] = l4_endpt2[2];

//---------------------------------------------------

//Построение отрезков в 3D пространстве

theUFSession.Curve.CreateLine(ref line1, out objarray6[0]);

theUFSession.Curve.CreateLine(ref line2, out objarray6[1]);

theUFSession.Curve.CreateLine(ref line3, out objarray6[2]);

theUFSession.Curve.CreateLine(ref line4, out objarray6[3]);

//Создание операции вырезания вращением

theUFSession.Modl.CreateRevolved(objarray6, limit6, ref_pt6, direction6, FeatureSigns.Negative, out features6);

}

 

Практическая часть

Вопросы для самоконтроля

 

1) Чем определяется операция вырезание в NX?

2) Какое необходимое и достаточное количество переменных следует задать для создания операции вырезания вращением?

3) Какова функция начальной точки в операции “Вырезание вращением”?

4) Что содержит переменная, в которую записывается выходной параметр операции вырезания вращением?

 

Задания для выполнения лабораторной работы

 

Задание выдается преподавателем по вариантам.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: