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



 

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

 

Содержание отчета по лабораторной работе

1. Название и цель работы

2. Скриншоты с кратким описанием, соответствующие основным шагам выполненной работы

3. Скриншоты, демонстрирующие работоспосбоность созданной библиотеки

4. Листинг прграммы с комментариями на русском или английском языке

5. Скриншоты 3D модели, сформированной Вашей библиотекой

6. Выводы

 


Лабораторная работа № 5

Создание детали с помощью операции “Вырезание вращением” средствами NXOpen / API на примере корпуса пневмоцилиндра

Цель работы: Освоение методики построения операции получения отверстия вырезаниемсредствами NX Open API на примере цилиндра.

Теоретическая часть

 

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

 

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

Эскиз элемента вращения представлен на рисунке 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) Что содержит переменная, в которую записывается выходной параметр операции вырезания вращением?

 


Дата добавления: 2021-05-18; просмотров: 149; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!