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

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

c_face = face; //UI.GetUI().NXMessageBox.Show("Message", NXMessageBox.DialogType.Information, "Cylindrical face");

}

}

double[] thread_direction = { 0.00, 0.00, 1.00 }; // направление резьбы

thread.cyl_face = c_face; thread.start_face = s_face; thread.axis_direction = thread_direction; thread.rotation = 1;

thread.num_starts = 1;

thread.length = Convert.ToString(height);// длина резьбы thread.form = "Metric";// метрическая система thread.major_dia = Convert.ToString(2 * Radius);

//внешний диаметр резьбы

thread.minor_dia = Convert.ToString((2 * Radius) -1); //внутренний диаметр резьбы

thread.tapped_dia = Convert.ToString(2 * Radius);//диметр резьбы

thread.pitch = Convert.ToString(step);//шаг резьбы thread.angle = "60";//угол резьбы

try

{

theUfSession.Modl.CreateSymbThread(ref thread, out

feat);

}

catch (NXOpen.NXException ex)

{

UI.GetUI().NXMessageBox.Show("Message", NXMessageBox.DialogType.Error, ex.Message);

}

50

Рис. 3.6. Символическая резьба на цилидре

Осталось только добавить прорезь под шлицевую отвертку в «шляпке», для этого построим прямоугольник над шляпкой и продавим его вниз с параметром Negative.

UFCurve.Line segment8 = new UFCurve.Line(); UFCurve.Line segment9 = new UFCurve.Line(); UFCurve.Line segment10 = new UFCurve.Line(); UFCurve.Line segment11 = new UFCurve.Line();

segment8.start_point = new double[3]; segment8.start_point[0] = Radius * 1.5; segment8.start_point[1] = Radius * 0.2; segment8.start_point[2] = height * 1.25; segment8.end_point = new double[3]; segment8.end_point[0] = Radius * 1.5; segment8.end_point[1] = -(Radius * 0.2); segment8.end_point[2] = height * 1.25;

segment9.start_point = new double[3]; segment9.start_point[0] = Radius * 1.5;

51

segment9.start_point[1] = -(Radius * 0.2); segment9.start_point[2] = height * 1.25; segment9.end_point = new double[3]; segment9.end_point[0] = -(Radius * 1.5); segment9.end_point[1] = -(Radius * 0.2); segment9.end_point[2] = height * 1.25;

segment10.start_point = new double[3]; segment10.start_point[0] = -(Radius * 1.5); segment10.start_point[1] = -(Radius * 0.2); segment10.start_point[2] = height * 1.25; segment10.end_point = new double[3]; segment10.end_point[0] = -(Radius * 1.5); segment10.end_point[1] = Radius * 0.2; segment10.end_point[2] = height * 1.25;

segment11.start_point = new double[3]; segment11.start_point[0] = -(Radius * 1.5); segment11.start_point[1] = Radius * 0.2; segment11.start_point[2] = height * 1.25; segment11.end_point = new double[3]; segment11.end_point[0] = Radius * 1.5; segment11.end_point[1] = Radius * 0.2; segment11.end_point[2] = height * 1.25;

Tag[] BoltArray2 = new Tag[5]; theUfSession.Curve.CreateLine(ref segment8, out BoltArray2[0]); theUfSession.Curve.CreateLine(ref segment9, out BoltArray2[1]); theUfSession.Curve.CreateLine(ref segment10, out BoltArray2[2]);

theUfSession.Curve.CreateLine(ref segment11, out BoltArray2[3]);

string glub = Convert.ToInt32(height * 0.125).ToString(); string taper_angle = "0.0";

string[] limit3 = { "0", glub }; double[] ref_pt3 = new double[3];

52

double[] direction3 = { 0.0, 0.0, -1.0 };

theUfSession.Modl.CreateExtruded(BoltArray2, taper_angle, limit3, ref_pt3, direction3,FeatureSigns.Negative, out features2);

Рис. 3.7. Добавленная прорезь на «шляпке»

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

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

Получить следующие объекты болтов. Вариант, геометрическая фигура

1. 6.

2. 7.

53

3. 8.

4. 9.

5. 10.

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

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

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

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

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

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

6.Выводы.

54

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