Материал: Параметрическое моделирование с использованием NX API. учебно-метод. пособие. Барабанов В.Ф., Нужный А.М

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

double[] ref_pt1 = new double[3]; ref_pt1[0] = 0.00;

ref_pt1[1] = 0.00; ref_pt1[2] = 0.00;

double[] direction1 = { 0.00, 1.00, 0.00 }; string[] limit1 = { "0", "360" };

Tag[] features1;

theUfSession.Modl.CreateRevolved(objarray1, limit1, ref_pt1, direction1, FeatureSigns.Nullsign, out features1);

/////////////////////////////////////////////////////

double[] l11_endpt1 = { 0, 2.5, 0.00 }; double[] l11_endpt2 = { 20, 2.5, 0.00 }; double[] l21_endpt1 = l11_endpt2; double[] l21_endpt2 = { 20, 157.5, 0.00 }; double[] l31_endpt1 = l21_endpt2; double[] l31_endpt2 = { 0, 157.5, 0.00 }; double[] l41_endpt1 = l31_endpt2; double[] l41_endpt2 = { 0, 2.5, 0.00 };

UFCurve.Line line11 = new UFCurve.Line(); UFCurve.Line line21 = new UFCurve.Line(); UFCurve.Line line31 = new UFCurve.Line(); UFCurve.Line line41 = new UFCurve.Line();

line11.start_point = new double[3]; line11.start_point[0] = l11_endpt1[0]; line11.start_point[1] = l11_endpt1[1]; line11.start_point[2] = l11_endpt1[2]; line11.end_point = new double[3]; line11.end_point[0] = l11_endpt2[0]; line11.end_point[1] = l11_endpt2[1]; line11.end_point[2] = l11_endpt2[2]; line21.start_point = new double[3]; line21.start_point[0] = l21_endpt1[0];

75

line21.start_point[1] = l21_endpt1[1]; line21.start_point[2] = l21_endpt1[2]; line21.end_point = new double[3]; line21.end_point[0] = l21_endpt2[0]; line21.end_point[1] = l21_endpt2[1]; line21.end_point[2] = l21_endpt2[2]; line31.start_point = new double[3]; line31.start_point[0] = l31_endpt1[0]; line31.start_point[1] = l31_endpt1[1]; line31.start_point[2] = l31_endpt1[2]; line31.end_point = new double[3]; line31.end_point[0] = l31_endpt2[0]; line31.end_point[1] = l31_endpt2[1]; line31.end_point[2] = l31_endpt2[2]; line41.start_point = new double[3]; line41.start_point[0] = l41_endpt1[0]; line41.start_point[1] = l41_endpt1[1]; line41.start_point[2] = l41_endpt1[2]; line41.end_point = new double[3]; line41.end_point[0] = l41_endpt2[0]; line41.end_point[1] = l41_endpt2[1]; line41.end_point[2] = l41_endpt2[2];

Tag[] objarray2 = new Tag[7]; theUfSession.Curve.CreateLine(ref line11, out objarray2[0]); theUfSession.Curve.CreateLine(ref line21, out objarray2[1]); theUfSession.Curve.CreateLine(ref line31, out objarray2[2]); theUfSession.Curve.CreateLine(ref line41, out objarray2[3]); theUfSession.Modl.CreateRevolved(objarray2, limit1, ref_pt1, direction1, FeatureSigns.Negative, out features1);

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

Tag UFPart;

string name1 = "Filter"; int units = 1;

76

theUfSession.Part.New(name1, units, out UFPart); /*В переменную parent_part, записывается результат

возвращаемый функцией AskDisplayPart. В свою очередь данная функция возвращает tag текущей модели. Для не сборочной модели это рабочая модель. Если в настоящее время нет рабочей модели, то возвращается NULL_TAG. */ Tag parent_part = theUfSession.Part.AskDisplayPart(); //переменные error_status, в которые будет записываться //статус загрузки моделей

UFPart.LoadStatus error_status, error_status2, error_status3; //объявление переменных в которые происходит запись tag-а //нового объекта модели

Tag instance, instance1, instance2;

/*Объявление и запись значений в переменные. Переменные origin содержат позиции каждой из моделей в родительской сборочной модели.

Переменные matrix определяют ориентацию каждой из моделей в системе координат родительской сборочной модели.*/

double[] origin1 = { 0, 220, 0 }; double[] matrix1 = { 1, 0, 0, 0, 1, 0 }; double[] origin2 = { 0, 0, 0 }; double[] matrix2 = { 1, 0, 0, 0, 1, 0 }; double[] origin3 = { 0, 7.5, 0 }; double[] matrix3 = { 1, 0, 0, 0, 1, 0 };

//поочередное добавление моделей деталей фильтра, которые //входят в сборочную модель конструкции

/*Структура параметров функции AddPartToAssembly:

1)parent_part – tag модели для добавления деталей;

2)part – имя добавляемой модели;

3)refset_name – наименование множества частей модели для добавления;

77

4)instance_name - Name of new instance;

5)origin [ 3 ] – позиция в родительской модели;

6)csys_matrix [ 6 ] – ориентация в родительской модели;

7)layer – слой (0) – текущий слой;

8)instance – tag новой детали в сборке;

9)error_status – статус ошибки добавления.

*/

theUfSession.Assem.AddPartToAssembly(parent_part, "Krishka", null, null, origin1, matrix1, 0, out instance, out error_status);

theUfSession.Assem.AddPartToAssembly(parent_part, "Korpus", null, null, origin2, matrix2, 0, out instance1, out error_status2);

theUfSession.Assem.AddPartToAssembly(parent_part, "cylindr", null, null, origin3, matrix3, 0, out instance2, out error_status3);

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

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

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

Пример 1. В лабораторной работе предлагается

выполнить сборочную модель штампа для жидкой штамповки, представленную на рис. 4.6.

Рис. 4.6. Сборочная модель штампа для жидкой штамповки

78

Пример 2. В лабораторной работе предлагается выполнить сборочную модель пневмогидравлического клапана, представленную на рис. 4.7.

Рис. 4.7. Сборочная модель пневмогидравлического клапана

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

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

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

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

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

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

6.Выводы.

79

Источник: https://studfile.net/preview/16563646/