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

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

3. ЛАБОРАТОРНАЯ РАБОТА № 3 СОЗДАНИЕ ПАРАМЕТРИЧЕСКИ ЗАДАННЫХ ОБЪЕКТОВ

Цель работы: научиться параметрически задавать параметры объектов, освоить операции «скругление» и «резьба».

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

3.1.1.Общий вид и порядок построения детали

Вид с положением осей представлен на рис. 3.1.

Рис. 3.1. 3D-модель объекта

Пунктирная окружность синего цвета, изображенная с нижнего торца болта, является отображением резьбы.

Рис. 3.2. Форма задания параметров болта

40

После создания нового проекта в Visual Studio необходимо добавить в него форму. Для этого нужно в окне Solution Explorer правой кнопкой мыши щелкнуть по названию проекта и выполнить последовательность Add – WindowsForm.

После этого следует добавить на форму необходимые элементы управления из окна ToolBox (панель элементов, находится в левой части интегрированной среды разработки Visual Studio). Добавим три элемента textBox, которые используются для ввода данных, три элемента Label, и кнопку.

В основном файле проекта Programm.cs добавим пространство имен:

using System.Collections;

для использования объекта ArrayList.

Ниже добавим переменные, значения которых будут вводиться с формы.

public static double height;//Высота, мм public static double Radius;//радиус, мм public static double step;//шаг резьбы, мм

Так будет выглядеть начало файла Programm.cs: using System;

using NXOpen; using NXOpen.UF;

using System.Collections;

public class Program

{

// class members

private static Session theSession; private static UI theUI;

private static UFSession theUfSession; public static Program theProgram; public static bool isDisposeCalled;

41

public static double height;//Высота, мм public static double Radius;//радиус, мм public static double step;//шагрезьбы, мм

Дважды щелкнув по кнопке на форме, создастся код обработчика события нажатия на кнопку, в нем добавим следующий код:

namespace NX7_Open_CS_Wizard6

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

Program.height = Convert.ToDouble(textBox1.Text); Program.Radius = Convert.ToDouble(textBox2.Text); Program.step = Convert.ToDouble(textBox3.Text); Close();

}

}

}

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

NX7_Open_CS_Wizard6.Form1 f = new NX7_Open_CS_Wizard6.Form1(); f.ShowDialog();

(Обратите внимание на цифру в конце имени проекта, котрая должна соответствовать ввашему номеру проекта).

При открытии DLL файла в NX откроется форма, в которую необходимо ввести необходимые значения и нажать

42

на кнопку. Далее будут использоваться переменные height, Radius, stepсодержащие введенные значения.

Создадим четырехугольник из которого вращением будет создан цилиндр (рис. 3.3).

//создание нового проекта

Tag UFPart1;

string name1 = "bolt"; int units1 = 1;

theUfSession.Part.New(name1, units1, out UFPart1);

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

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

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

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

segment0.start_point = new double[3]; segment0.start_point[0] = 0.00; segment0.start_point[1] = 0.00; segment0.start_point[2] = 0.00; segment0.end_point = new double[3]; segment0.end_point[0] = 0.00; segment0.end_point[1] = 0.00; segment0.end_point[2] = height;

segment1.start_point = new double[3]; segment1.start_point[0] = 0.00; segment1.start_point[1] = 0.00; segment1.start_point[2] = height; segment1.end_point = new double[3]; segment1.end_point[0] = Radius; segment1.end_point[1] = 0.00; segment1.end_point[2] = height;

segment2.start_point = new double[3]; segment2.start_point[0] = Radius; segment2.start_point[1] = 0.00;

43

segment2.start_point[2] = height; segment2.end_point = new double[3]; segment2.end_point[0] = Radius; segment2.end_point[1] = 0.00; segment2.end_point[2] = 0.00;

segment3.start_point = new double[3]; segment3.start_point[0] = Radius; segment3.start_point[1] = 0.00; segment3.start_point[2] = 0.00; segment3.end_point = new double[3]; segment3.end_point[0] = 0.00; segment3.end_point[1] = 0.00; segment3.end_point[2] = 0.00;

Tag[] BoltArray = new Tag[5]; theUfSession.Curve.CreateLine(ref segment0, out BoltArray[0]); theUfSession.Curve.CreateLine(ref segment1, out BoltArray[1]); theUfSession.Curve.CreateLine(ref segment2, out BoltArray[2]); theUfSession.Curve.CreateLine(ref segment3, out BoltArray[3]); 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, 0.00, 1.00 }; string[] limit1 = { "0", "360" };

Tag[] features1; theUfSession.Modl.CreateRevolved(BoltArray, limit1, ref_pt1, direction1, FeatureSigns.Nullsign, out features1);

44

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