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

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

//Начальный угол arc1.end_angle = arc1_end_ang; //Конечныйугол arc1.arc_center = new double[3]; //Центр дуги 1

arc1.arc_center[0] = arc1_centerpt[0]; //Координата центра дуги по X arc1.arc_center[1] = arc1_centerpt[1]; //Координата центра дуги по Y arc1.arc_center[2] = arc1_centerpt[2]; //Координата центра дуги по Z arc1.radius = arc1_radius; //радиусдуги

theUfSession.Csys.AskWcs(out wcs);

//Получение указателя на активную систему координат theUfSession.Csys.AskMatrixOfObject(wcs, out matrix); //Получение идентификатора матрицы, связанного с объектом, //указатель на который содержится в wcs

arc1.matrix_tag = matrix; //Определение указателя матрицы дуги

theUfSession.Curve.CreateArc(ref arc1, out objarray[0]); //рисование дуги

Результат выполенения программы представлен на рис. 1.7.

Рис. 1.7

20

Для того, чтобы нарисовать примитив «шар», необходимо к уже созданной дуге (полуокружности) применить операцию «вращение».

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

ref_pt[1] = 0.00; ref_pt[2] = 0.00;

double[] direction = { 1.00, 0.00, 0.00 }; string[] limit = { "0", "360" };

Tag[] f;

theUfSession.Modl.CreateRevolved(objarray, limit, ref_pt, direction, FeatureSigns.Nullsign, out f);

Строки 1 – 4 создают массив из 3 вещественных чисел и заполняют его нулями. В дальнейшем он будет использоваться для задания точки с нулевыми координатами, относительно которой будет осуществляться вращение. direction – аналогичный массив из трех элементов. В данной программе он отвечает за вектор (точнее его конечную точку), относительно которого осуществляется вращение. Начало вектора находится в начале координат. Переменная limit – массив строкового типа, в который заносится начальный и конечный угол для операции вращения, f – массив тэгов, выходной информации для операции «вращение». Последняя строка отвечает за операцию «вращение».

Аргументами данной операции являются:

1.objarray – массив элементов эскиза операции;

2.limit – начальный и конечный угол вращения;

3.ref_pt – базовая точка;

4.direction – вектор, относительно которого осуществляется вращение;

5.FeatureSigns.Nullsign – задает булеву операцию, в

данном случае операция отсутствует.

6.f – массив тэгов, выходная информация

21

Результат выполнения операции представлен на рис. 1.8.

Рис. 1.8

Для сохранения детали можно использовать: theUfSession.Part.Save(); - сохраняет деталь в файл с

именем, заданным переменной name1, по умолчанию путь к сохраненному файлу находится по адресу: C:\ProgramFiles\UGS\NX7.5\UGII.

Теперь освоим методику построения цилиндра с помощью операции «выдавливания». Для этого необходимо создать новый проект и нарисовать окружность.

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

Tag UFPart1;

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

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

Tag[] objarray = new Tag[7];

Tag wcs, matrix;

double[] arc1_centerpt = { 0, 0, 0 };

22

//Переменная, содержащая значения координат центра дуги

//{x,y,z}

double arc1_start_ang = 0;

//Переменная, содержащая значение угла начала дуги (в //радианах)

Double arc1_end_ang = 3.14159265358979324*2/*окружность*/; //Переменная, //содержащая значение угла конца дуги (в радианах) double arc1_radius = 50;

//Переменная, содержащая значение радиуса дуги (в радианах) UFCurve.Arc arc1 = new UFCurve.Arc();

arc1.start_angle = arc1_start_ang; //Начальный угол arc1.end_angle = arc1_end_ang; //Конечный угол arc1.arc_center = new double[3]; //Центрдуги 1

arc1.arc_center[0] = arc1_centerpt[0]; //Координата центра дуги по X arc1.arc_center[1] = arc1_centerpt[1]; //Координата центра дуги по Y arc1.arc_center[2] = arc1_centerpt[2]; //Координата центра дуги по Z arc1.radius = arc1_radius;

//радиус дуги

theUfSession.Csys.AskWcs(out wcs);

//Получения указателя на активную систему координат theUfSession.Csys.AskMatrixOfObject(wcs, out matrix); //Получение идентификатора матрицы, связанного с объектом, //указатель на который содержится в wcs

arc1.matrix_tag = matrix; //Определение указателя матрицы дуги

theUfSession.Curve.CreateArc(ref arc1, out objarray[0]); //рисование дуги

23

Рис. 1.9

Применим к созданной окружности уже знакомую операцию «выдавливания»:

double[] direction = { 0.0, 0.0, 1.0 };

//Переменная, задающая значения направления выдавливания //ось CZ

double[] ref_pt = new double[3]; //Требуемая, но не используемая переменная string taper_angle = "0.0";

//Переменная, определяющая значение уклона при //выдавливании

string[] limit = { "0", "80" };

//Переменная, определяющая параметры начала и конца //операции выдавливания

Tag[] f;

//f – переменная для записи указателя на объект, //получившийся в результате операции выдавливания theUfSession.Modl.CreateExtruded(objarray, taper_angle, limit, ref_pt, direction, FeatureSigns.Nullsign, out f);

Результат представлен на рисунке 10.

24

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