Вопросы для самостоятельного контроля знаний

1. Что такое тэг?

2. Как осуществляется работа с динамическими массивами в C#?

3. Назовите основные параметры операции “Вращение”?

4. Что такое булевы операции в 3D инженерной графике?

5. Какова функция вектора в операции “Вращение”?

 

Задание на лабораторную работу

 

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

 

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

 

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

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

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

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

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

6. Выводы



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

Создание фасок и скруглений с помощью соответствующих операций средствами NXOpen/API на примере крышки пневмоцилиндра

 

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

 

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

 

В данной лабораторной работе предлагается доработать деталь, представленную на рис. 2.1, до состояния детали, показанной на рис. 3. Для этого необходимо создать две фаски и скругление:

Внимание: теоретически имеется возможность создания фасок и скруглений в эскизе, что сокращает количество операций. Данный подход в корне неверен, так как значительно увеличивается потребление вычислительных ресурсов и снижается гибкость создаваемой модели. Поэтому фаски и скругления всегда следует создавать на твердом теле с помощью специализированных операций.

Рассмотренный далее программный код целесообразно разместить перед строкой, выполняющей сохранение детали.

Начальный блок программного кода отвечает за объявление переменных. Все типы представленных здесь переменных рассмотрены в предыдущей лабораторной работе.

 

Tag feat = features1[0];

Tag cyl_tag, obj_id_camf, blend1;

Tag[] Edge_array_cyl, list1, list2;

int ecount;

Интерес представляет первая трока. В ней из массива тэгов features1 выбирается нулевой тэг, который записывается в переменную feat, теперь в переменной feat находится тэг нулевого тела детали. В рассматриваемом случае он единственный. Однако возможности NX позволяют сохранять в оном файле детали несколько отдельных тел.

 Далее следует блок, который анализирует ребра рассматриваемой детали.

 

theUfSession.Modl.AskFeatBody(feat, out cyl_tag);

theUfSession.Modl.AskBodyEdges(cyl_tag, out Edge_array_cyl);

theUfSession.Modl.AskListCount(Edge_array_cyl, out ecount);

 

Первая строка выделяет из тэга тела тэг объектов тела, который являются входными данными во второй строке. Выходными данными второй строки является массив тэгов ребер объекта, используемый в качестве аргумента в третьей строке. Выходной информацией третьей строки является количество объектов в массиве (в нашем случае число ребер детали).

Далее создаем два объекта типа ArrayList.

 

ArrayList arr_list1 = new ArrayList();

ArrayList arr_list2 = new ArrayList();

 

Первый объект в дальнейшем будет использован для сохранения в него ребер, на которых будут выполнены фаски, второй по аналогии используется для скругления.

Представленный ниже цикл повторяется количество раз, равное число ребер рассматриваемого тела.

 

for (int ii = 0; ii < ecount; ii++)

{

  Tag edge;

              

  theUfSession.Modl.AskListItem(Edge_array_cyl, ii, out edge);

 

  if ((ii == 1) || (ii == 2))

      {

       arr_list1.Add(edge);

      }

  if (ii == 0)

      {

       arr_list2.Add(edge);

       }

}

 

Вторая строка тела цикла выбирает из массива ребер каждое отдельное ребро с порядковым номером в массиве ii (номера ребер перебираются в цикле последовательно). Далее следуют две конструкции оператора if. При выполнении условия первого оператора выбранное на текущем шаге цикла ребро добавляется в arr_list1 (то есть на нем будет создана фаска). Второй оператор if аналогично реализует конструкцию формирования листа ребер для скруглений.

Последующие две строки текста осуществляют конвертирование типов данных.

 

list1 = (Tag[])arr_list1.ToArray(typeof(Tag));

list2 = (Tag[])arr_list2.ToArray(typeof(Tag));

 

Полученные переменные list1 и list 2 относятся к типу массив тэгов.

Далее следует фрагмент текста, в котором создается скругление и задается ряд его параметров.

 

int allow_smooth = 0;

int allow_cliff = 0;

int allow_notch = 0;

double vrb_tol = 0.0;

 

theUfSession.Modl.CreateBlend("3", list2, allow_smooth,

allow_cliff, allow_notch, vrb_tol, out blend1);

 

Аргументами для скругления являются:

1. “3” – радиус;

2. list2 – массив ребер, на которых необходимо выполнить скругление;

3. allow_smooth - Smooth overflow/prevent flag: 0 = Allow this type of blend; 1 = Prevent this type of blend;

4. allow_smooth - Cliffedge overflow/prevent flag: 0 = Allow this type of blend; 1 = Prevent this type of blend;

5. allow_notch - Notch overflow/prevent flag: 0 = Allow this type of blend; 1 = Prevent this type of blend; 

6. vrb_tol - Variable radius blend tolerance.

 

Последующий текст содержит операцию “Фаска” и задает ее отдельные параметры.

 

string offset1 = "1";

string offset2 = "1";

string ang = "45";

theUfSession.Modl.CreateChamfer(3, offset1, offset2, ang,

list1, out obj_id_camf);

 

Аргументами для фаски являются:

1. 3 – тип входных данных (в данном случае по стороне и углу);

2. offset1 и offset2 – стороны фаски;

3. ang – угол фаски в градусах;

4. list1 – массив ребер, на которых необходимо выполнить фаски.

 

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

 

Вопросы для самостоятельного контроля знаний

 

1. Что такое ребро, грань, поверхность?

2. Синтаксис оператора if в C#?

3. Какие способы задания фасок вы знаете?

 

Задание на лабораторную работу

 

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

 

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

 

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

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

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

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

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

6. Выводы



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

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

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

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


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



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