Измерение и вычисление геометрических характеристик

Материал из GEOS_WIKI
Перейти к: навигация, поиск

Команды данного раздела вычисляют различные геометрические характеристики объектов.

Определение координат точки

Этот раздел — о координатах точки в макропрограммировании. О координатах точки в интерфейсе К3-Мебель читайте здесь

Информация об измеренной точке

coordinate <Point> [info] done

Команда coordinate определяет координаты точки <Point> и выводит их в окно ввода команд. Необязательный ключ info позволяет отобразить параметры точки в диалоговом окне (см. рисунок).

Чтобы сохранить координаты в массиве, нужно перед ключевым словом ввести имя массива из трех и более элементов. Массив должен быть предварительно описан.

Пример:

defarr c[3];
#c coordinate 10,20,40 done;
=c[1];
10
=c[2];
20
=c[3];
30

Определение расстояния

Информация об измеренном расстоянии

distance point <Point1> | object <Object1> point <Point2> object <Object2> [info] [mark] done

Команда distance измеряет расстояние между точкой (point) <Point1> или объектом (object) <Object1> и другой точкой <Point2> или объектом <Object2>. Ключ info отображает данные о расстоянии в диалоговом окне (см. рисунок). Ключ mark создает две точки на концах отрезка, соединяющего точки или объекты, между которыми измерено расстояние.



Примечание. Ключи point и object взаимоисключающие. По умолчанию измеряется расстояние между точками.



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

Пример:

#par distance 0,0,0 100,0,0 done;
=par
100

Вычисление длины кривой

clength <Object> done

Команда clength вычисляет длину кривой <Object>.

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

Определение угла

Информация об измеренном угле

Команда angle имеет несколько режимов работы, которые представлены ниже.

angle [acuteangle | normal <Point0>] <Point1> <Point2> <Point3> [info] done

Команда измеряет угол, определяемый точками <Point1>, <Point2> и <Point3>. Точка <Point1> является вершиной измеряемого угла, а точки <Point2> и <Point3> определяют его стороны. Стоит отметить, что измеряется угол, направленный против часовой стрелки между лучами из точки <Point1> в точки <Point2> и <Point3>.Этот угол может быть как больше, так и меньше 180 градусов. Если задан необязательный ключ acuteangle, то измеряется всегда угол меньше 180 градусов.

Если задан ключ normal, то угол измеряется не между точками, а между проекциями точек на плоскость, нормаль к которой задается вектором <Point0>.

Ключ info отображает данные об угле в диалоговом окне (см. рисунок).


angle 2segment <Object1> <Object2> [info] done

Команда определяет минимальный угол между прямыми, определяемыми отрезками <Object1> и <Object2>. Указанные прямые должны пересекаться.


angle 2plane [point <Point1>]<Object1>, ... [point <Point>] <Object2>, … [info] done

Команда определяет угол между двумя плоскостями. Плоскости могут задаваться либо одним объектом (дуга или окружность), либо двумя отрезками, лежащими в одной плоскости, либо отрезком и точкой, либо тремя точками.

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

Определение угла вектора

Информация об углах вектора

vangle axis | plane | xy | yz | zx <Object> [info] done

Команда vangle измеряет углы вектора (отрезка) <Object> с координатными осями (axis), либо с координатными плоскостями (plane), либо углы проекции вектора на соответствующую координатную плоскость с координатными осями (xy, yz, zx). Вместо объекта <Object> допускается указание координат ловушки (<^x,y,z>), в которую должен попасть выбранный объект. Принципиальное значение имеет тот конец отрезка, который оказался ближе к ловушке, поскольку он определяет направление вектора.

Ключ info отображает данные об угле в диалоговом окне (см. рисунок).

Чтобы сохранить координаты в массиве, нужно перед ключевым словом ввести имя массива из двенадцати элементов. Интерпретация информации в массиве представлена на рисунке. Массив должен быть предварительно описан.



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



Определение масс-инерционных характеристик

Масс-инерционные характеристики твердого тела

mix [density <Dens>] [nodc] <Objects> done

Команда mix определяет масс-инерционные характеристики объектов <Objects> типа «Тело». Результат работы команды представлен на рисунке.

Ключ density позволяет задать плотность тел <Dens>. Данный ключ используется, если у тел плотность не задана явно атрибутом $Density.

Ключ nodc запрещает вывод информации в диалоговое окно.

Чтобы сохранить координаты в массиве, нужно перед ключевым словом ввести имя массива из девятнадцати элементов. Интерпретация информации в массиве представлена в таблице. Массив должен быть предварительно описан.

Масс-инерционные характеристики объекта
Номер элемента
Назначение
1

Площадь поверхности (S)

2

Объем тела (V)

3

Масса тела (m)

4

Вес тела (P)

5

Статический момент (Sxy)

6

Статический момент (Syz)

7

Статический момент (Szx)

8

Осевой момент инерции (Jox)

9

Осевой момент инерции (Joy)

10

Осевой момент инерции (Joz)

11

Плоскостной момент инерции (Jxy)

12

Плоскостной момент инерции (Jyz)

13

Плоскостной момент инерции (Jzx)

14

Центробежный момент инерции (Mxy)

15

Центробежный момент инерции (Myz)

16

Центробежный момент инерции (Mzx)

17

Координата X центра масс

18

Координата Y центра масс

19

Координата Z центра масс

Определение площади поверхности

square [partly|tree|wholly] <Objects>

Команда square вычисляет площадь поверхности объектов <Objects>. Если в качестве объектов <Objects> указана группа, то вычисляется площадь поверхности всех входящих в нее тел и поверхностей (Brep-ов).

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

Определение массы и центра масс

amass <Objects> yes | no

Команда amass определяет массу и координаты центра масс объектов <Objects> типа «Тело». Ключ yes указывает, что нужно создать точку в центре масс объектов <Objects>. Ключ no указывает, что точку создавать не нужно.

Чтобы сохранить массу и координаты центра масс в массиве, нужно перед ключевым словом ввести имя массива из четырех элементов. Интерпретация информации в массиве представлена в таблице. Массив должен быть предварительно описан.

Масса и центр масс объектов
Номер элемента
Назначение
1

Масса объектов

2

Координата X центра масс

3

Координата Y центра масс

4

Координата Z центра масс

Определение габаритов объекта

ObjGab, ObjGab1, ObjGab2, ObjGab3


VOID ObjGab(OBJECT <Obj>, VARNAME <X>, VARNAME <Y>, VARNAME <Z>)

VOID ObjGab(OBJECT <Obj>, VARNAME ARRAY <G[3]>)

Функция ObjGab присваивает переменным <X>, <Y>, <Z> или массиву <G> значения соответствующих габаритов объекта <Obj>.


DOUBLE ObjGab1(OBJECT <Obj>, INT <NCrd>)

Функция ObjGab1 возвращает габарит объекта <Obj> по координате с соответствующим номером <NCrd> (1 – X, 2 – Y, 3 – Z).


LOGICAL ObjGab2(OBJECT <Obj>, VARNAME ARRAY <G[6]>[, LOGICAL <IsLCS>])

Функция ObjGab2 заполняет массив <G> габаритными координатами объекта в <Obj> ГСК и возвращает 1 в случае, если объект имеет видимые габариты и 0 в случае, если объект погашен, это пустая группа и пр.

Если указан дополнительный параметр <IsLCS> и он не равен 0, то габариты объекта <Obj> вычисляются в локальной систем координат (ЛСК) этого объекта.


LOGICAL ObjGab3(OBJECT <Obj>, VARNAME ARRAY <G[6]>)

Функция ObjGab3 заполняет массив <G> габаритными координатами объекта <Obj> в ПСК и возвращает 1 в случае, если объект имеет видимые габариты и 0 в случае, если объект погашен, это пустая группа и пр.

Под габаритом понимается протяженность объекта по соответствующей координате. Например, отрезок из точки (10,20,30), в точку (100,100,100) будет иметь габариты 90,80,70.

Под габаритными координатами объекта в указанной системе координат понимаются три минимальные (X, Y, Z) и три максимальных значения координат объекта. Например, отрезок из точки (10,200,30), в точку (100,10,100) будет иметь габаритные координаты 10, 10, 30, 100, 200, 100 в ГСК.

Пример:

#l1 Line 10, 20, 30, 100, 100, 100;
=ObjGab1(l1,2);
80
ObjGab(l1,xl,yl,zl);
=xl
90
Defarrays g[3];
ObjGab(l1,g);
=g[3]
70
Defarrays gk[6];
ObjGab2(l1,gk);
=gk[6]
100


Примечание 1. При нахождении габаритных координат объекта предпочтение следует отдавать функции ObjGab3.

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

Примечание 3. Если объект не погашен, но находится на погашенном слое, то функции ObjGab, ObjGab1, ObjGab2 считают этот объект погашенным и возвращают 0. Функция ObjGab3 в случае объекта на погашенном слое считает его видимым и выдает реальные габаритные координаты объекта.