Измерение и вычисление геометрических характеристик
Команды данного раздела вычисляют различные геометрические характеристики объектов.
Определение координат точки
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] [Wholly|Partly] <Objects> done
Команда mix определяет масс-инерционные характеристики объектов <Objects>
типа «Тело». Результат работы команды представлен на рисунке.
Ключ density
позволяет задать плотность тел <Dens>
. Данный ключ используется, если у тел плотность не задана явно атрибутом $Density.
Ключ nodc
запрещает вывод информации в диалоговое окно.
Начиная с версии от 19 декабря 2019 года доступны ключи Wholly
и Partly
. Они позволяют выбрать объекты на любом уровне — соответственно, Целиком и Частично. По умолчанию в макропрограммировании активизируется ключ Wholly
. В более ранних версиях (до 19.12.2019) эти ключи недоступны, команда работает только в режиме Целиком.
Чтобы сохранить координаты в массиве, нужно перед ключевым словом ввести имя массива из девятнадцати элементов. Интерпретация информации в массиве представлена в таблице. Массив должен быть предварительно описан.
|
|
---|---|
|
Площадь поверхности (S) |
|
Объем тела (V) |
|
Масса тела (m) |
|
Вес тела (P) |
|
Статический момент (Sxy) |
|
Статический момент (Syz) |
|
Статический момент (Szx) |
|
Осевой момент инерции (Jox) |
|
Осевой момент инерции (Joy) |
|
Осевой момент инерции (Joz) |
|
Плоскостной момент инерции (Jxy) |
|
Плоскостной момент инерции (Jyz) |
|
Плоскостной момент инерции (Jzx) |
|
Центробежный момент инерции (Mxy) |
|
Центробежный момент инерции (Myz) |
|
Центробежный момент инерции (Mzx) |
|
Координата X центра масс |
|
Координата Y центра масс |
|
Координата Z центра масс |
Определение площади поверхности
square [partly|wholly] <Objects>
Команда square вычисляет площадь поверхности объектов <Objects>
. Если в качестве объектов <Objects>
указана группа, то вычисляется площадь поверхности всех входящих в нее тел и поверхностей (Brep-ов).
Чтобы сохранить измеренную площадь поверхности в переменной, нужно перед ключевым словом ввести имя переменной.
Определение массы и центра масс
amass <Objects> yes | no
Команда amass определяет массу и координаты центра масс объектов <Objects>
типа «Тело». Ключ yes указывает, что нужно создать точку в центре масс объектов <Objects>
. Ключ no указывает, что точку создавать не нужно.
Чтобы сохранить массу и координаты центра масс в массиве, нужно перед ключевым словом ввести имя массива из четырех элементов. Интерпретация информации в массиве представлена в таблице. Массив должен быть предварительно описан.
|
|
---|---|
|
Масса объектов |
|
Координата X центра масс |
|
Координата Y центра масс |
|
Координата 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
При нахождении габаритных координат объекта предпочтение следует отдавать функции ObjGab3 |
Все функции выдают информацию только об непогашенных объектах или о непогашенных частях объектов, если объекты — группы и имеют внутри погашенные составляющие. |