Функции distance() и measure() |
|
Использование функций DISTANCE() и MEASURE()
Функция distance() возвращает значение расстояния между двумя 2D или 3D элементами.
Данная функция автоматически подставляется в выражение переменной, если в команде "PM: Измерить элемент или отношение между элементами" создаётся переменная на основе найденного расстояния между двумя 2D или 3D объектами.
Синтаксис функции:
distance ( "имя1", "имя2"), где
имя1 - имя первого элемента или его идентификатор,
имя2 - имя второго элемента или его идентификатор.
Определить расстояние с помощью функции distance() можно для следующих пар 2D и 3D объектов:
2D элементы – расстояние можно измерить между 2D узлом и другим 2D узлом, линией построения, линией изображения или штриховкой (порядок выбора измеряемых элементов не важен);
3D объекты – расстояние можно измерить между любыми двумя 3D объектами, являющимися 3D элементами построения (кроме ЛСК) или операциями.
Функция distance() также позволяет измерять расстояния для таких топологических 3D объектов, как вершины, рёбра, циклы, грани. Это возможно, если данный объект уже использовался в какой-либо операции. При этом ему было автоматически присвоено имя (например, "Вершина_1" или "Ребро_3"), которое и нужно использовать в качестве его идентификатора при работе с функцией distance().
Функция measure() позволяет измерить различные отношения между двумя 2D или 3D элементами.
Данная функция автоматически подставляется в выражение переменной, если в команде "PM: Измерить элемент или отношение между элементами" создаётся переменная на основе любого найденного отношения (кроме расстояния) между двумя 2D или 3D объектами.
Синтаксис функции:
Measure ( "имя1", "имя2", "отношение"), где
имя1 – имя первого элемента или его идентификатор,
имя2 – имя второго элемента или его идентификатор,
отношение – тип вычисляемого отношения.
Функция позволяет вычислить следующие типы отношений:
для 2D элементов:
"Angle" – Угол между двумя прямыми, отрезками или прямой и отрезком;
“DX” – Cмещение двух 2D узлов относительно друг друга по оси X;
“DY” – Cмещение двух 2D узлов относительно друг друга по оси Y;
для 3D объектов:
"Angle" – Угол между векторами направления двух 3D объектов.
Ниже перечислены 3D объекты, для которых можно определить направление (и, соответственно, вычислить данное отношение). Также указано, что будет выбрано в качестве вектора направления для каждого объекта:
● 3D путь или разомкнутый 3D профиль, лежащие на прямой, – направление прямой;
● 3D путь или разомкнутый 3D профиль, лежащие на эллипсе (окружности), – вектор, направленный из центра эллипса (окружности) по нормали к плоскости эллипса (окружности);
● Плоский 3D профиль; рабочая плоскость; тело операции, состоящее из одной грани, лежащей на плоскости, – нормаль к плоскости;
● Цилиндрическая рабочая поверхность; 3D профиль, лежащий на цилиндре; тело операции, состоящее из одной грани, лежащей на цилиндре, – ось цилиндра;
● 3D профиль, лежащий на конусе; тело операции, состоящее из одной грани, лежащей на конусе, – ось конуса;
● Тороидальная рабочая поверхность; 3D профиль, лежащий на торе; тело операции, состоящее из одной грани, лежащей на торе, – ось тора.
"AxisDistance" – Расстояние между осями двух 3D объектов. В качестве объектов измерения можно выбирать те же 3D объекты, что и в предыдущем случае (при нахождении "Angle"), за исключением рабочих плоскостей. Оси выбранных объектов совпадают с их векторами направления.
“DX” – Cмещение двух 3D узлов или 3D точек относительно друг друга по оси X;
“DY” – Cмещение двух 3D узлов или 3D точек относительно друг друга по оси Y;
“DZ” – Cмещение двух 3D узлов или 3D точек относительно друг друга по оси Z.
Функция measure(), как и функция distance(), может измерять отношения между топологическими 3D объектами (вершины, рёбра, циклы, грани), если данные объекты уже использовались в какой-либо операции и были при этом автоматически именованы.
Для двух топологических объектов типа вершина, ребро, грань, а также пары топологический объект – 3D узел возможно также определить дополнительное отношение:
"GeomDistance" – Расстояние между 3D точками, 3D кривыми или поверхностями, соответствующими двум 3D объектам типа: 3D узел, вершина, ребро, грань.
Как и при использовании функции get(), названия параметров функций distance() и measure() можно указывать как заглавными, так и строчными буквами. Если имя элемента или отношения задано неверно, то функция возвращает значение 0.
Примеры:
Вычислить расстояние между двумя 3D узлами с именами "3D Узел_0" и "3D Узел_1", можно с помощью следующего вызова функции distance():
distance ( "3D Узел_0", "3D Узел_1" )
Расстояние между линией изображения, имеющей идентификатор 0x3000014, и 2D узлом с именем "Узел 1", также можно вычислить с помощью функции distance():
distance ( "0x3000014", "Узел 1" )
Вычислить расстояние между осями двух тел, например, цилиндра, полученного в результате операции "Выталкивание_1", и тора, построенного с помощью операции "Вращение_2", можно с помощью следующего вызова функции measure():
measure ("Выталкивание_1", "Вращение_2", "AxisDistance")
Для работы с функциями distance() и measure() рекомендуется использовать команду "PM: Измерить элемент или отношение между элементами".
Смотри: Функции работы с переменными