e1337e4016
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается. - .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным (safety-net на случай повторной локальной выгрузки). - CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
448 lines
15 KiB
Markdown
448 lines
15 KiB
Markdown
---
|
||
title: "Измерение расстояния и угла между двумя примитивами (Интерфейсы ksMeasurer, IMeasurer)"
|
||
type: interface
|
||
api: [api7]
|
||
domain: [assembly, feature]
|
||
tags: [interface, api7, assembly, feature, ksmeasurer]
|
||
sources:
|
||
- ksmeasurer.html
|
||
---
|
||
|
||
*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D ) > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart > Объект Дерева построения (Интерфейсы ksFeature, IFeature) *
|
||
|
||
|
||
## Измерение расстояния и угла между двумя примитивами (Интерфейсы ksMeasurer, IMeasurer)
|
||
|
||
Интерфейс для измерений расстояния и угла между двумя примитивами.
|
||
| ksMeasurer | - интерфейс Automation |
|
||
| --- | --- |
|
||
| IMeasurer | - интерфейс COM |
|
||
Примечание:
|
||
1. Интерфейс применим для граней, ребер, вершин.
|
||
2. Данный интерфейс может быть получен с использованием метода интерфейса ksPart::GetMeasurer.
|
||
|
||
|
||
## angle - Угол между объектами
|
||
|
||
Интерфейс..
|
||
Тип данных: double
|
||
Синтаксис Automation:
|
||
```
|
||
angle = iMeasurer.angle Получить свойство (* )
|
||
angle = iMeasurer.GetAngle() Получить свойство (**)
|
||
```
|
||
Примечание:
|
||
Свойство доступно только для чтения.
|
||
|
||
|
||
## Calc - Произвести вычисления
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Calc();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL Calc();
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
|
||
|
||
## distance - Расстояние между объектами
|
||
|
||
Интерфейс..
|
||
Тип данных: double
|
||
Синтаксис Automation:
|
||
```
|
||
distance = iMeasurer.distance Получить свойство (* )
|
||
distance = iMeasurer.GetDistance() Получить свойство (**)
|
||
```
|
||
Примечание:
|
||
Свойство доступно только для чтения.
|
||
|
||
|
||
## extendObject1 - Признак вычисления за пределами первого объекта
|
||
|
||
Интерфейс..
|
||
Тип данных: BOOL
|
||
Синтаксис Automation:
|
||
```
|
||
extendObject1 = iMeasurer.extendObject1 Получить свойство (* )
|
||
iMeasurer.extendObject1 = extendObject1 Установить свойство (* )
|
||
extendObject1 = iMeasurer.GetExtendObject1() Получить свойство (**)
|
||
iMeasurer.SetExtendObject1( extendObject1) Установить свойство (**)
|
||
```
|
||
Примечание:
|
||
Если значение свойства равно TRUE, то следует вычислять за пределами второго объекта.
|
||
|
||
|
||
## extendObject2 - Признак вычисления за пределами второго объекта
|
||
|
||
Интерфейс..
|
||
Тип данных: BOOL
|
||
Синтаксис Automation:
|
||
```
|
||
extendObject2 = iMeasurer.extendObject2 Получить свойство (* )
|
||
iMeasurer.extendObject2 = extendObject2 Установить свойство (* )
|
||
extendObject2 = iMeasurer.GetExtendObject2() Получить свойство (**)
|
||
iMeasurer.SetExtendObject2( extendObject2) Установить свойство (**)
|
||
```
|
||
Примечание:
|
||
Если значение свойства равно TRUE, то следует вычислять за пределами первого объекта.
|
||
|
||
|
||
## GetMaxPoint1 - Получить первую точку отрезка максимального расстояния
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetMaxPoint1 (double *x,
|
||
double *y,
|
||
double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetMaxPoint1 (double *x,
|
||
double *y,
|
||
double *z);
|
||
Выходные параметры:
|
||
x, y, z - координаты точки.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод доступен после вызова метода ksMeasurer::Calc (Automation) или IMeasurer::Calc (COM).
|
||
|
||
|
||
## GetMaxPoint2 - Получить вторую точку отрезка максимального расстояния
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetMaxPoint2 (double *x,
|
||
double *y,
|
||
double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetMaxPoint2 (double *x,
|
||
double *y,
|
||
double *z);
|
||
Выходные параметры:
|
||
x, y, z - координаты точки.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод доступен после вызова метода ksMeasurer::Calc (Automation) или IMeasurer::Calc (COM).
|
||
|
||
|
||
## GetMinPoint1 - Получить первую точку отрезка минимального расстояния
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetMinPoint1 (double *x,
|
||
double *y,
|
||
double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetMinPoint1 (double *x,
|
||
double *y,
|
||
double *z);
|
||
Выходные параметры:
|
||
x, y, z - координаты точки.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод доступен после вызова метода ksMeasurer::Calc (Automation) или IMeasurer::Calc (COM).
|
||
|
||
|
||
## GetMinPoint12 - Получить вторую точку отрезка минимального расстояния
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetMinPoint2 (double *x,
|
||
double *y,
|
||
double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetMinPoint2 (double *x,
|
||
double *y,
|
||
double *z);
|
||
Выходные параметры:
|
||
x, y, z - координаты точки.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод доступен после вызова метода ksMeasurer::Calc (Automation) или IMeasurer::Calc (COM).
|
||
|
||
|
||
## GetNormalPoint1 - Получить первую точку отрезка расстояния по нормали
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetNormalPoint1 (double *x,
|
||
double *y,
|
||
double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetNormalPoint1 (double *x,
|
||
double*y,
|
||
double*z);
|
||
Выходные параметры:
|
||
x, y, z - координаты точки.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод доступен после вызова метода ksMeasurer::Calc (Automation) или IMeasurer::Calc (COM).
|
||
|
||
|
||
## GetNormalPoint2 - Получить вторую точку отрезка расстояния по нормали
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetNormalPoint2 (double *x,
|
||
double *y,
|
||
double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetNormalPoint2 (double *x,
|
||
double *y,
|
||
double *z);
|
||
Выходные параметры:
|
||
x, y, z - координаты точки.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод доступен после вызова метода ksMeasurer::Calc (Automation) или IMeasurer::Calc (COM).
|
||
|
||
|
||
## GetObject1 - Получить первый объект
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
LPDISPATCH GetObject1();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
LPUNKNOWN GetObject1();
|
||
Возвращаемое значение:
|
||
- указатель на интерфейс IDispatch или IUnknown первого объекта.
|
||
```
|
||
Примечание:
|
||
Возвращаемым значением может быть указатель на интерфейс грани, ребра, вершины. Зная тип объекта, можно привеcти его интерфейс к конечному 3D интерфейсу.
|
||
|
||
|
||
## GetObject2 - Получить второй объект
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
LPDISPATCH GetObject2();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
LPUNKNOWN GetObject2();
|
||
Возвращаемое значение:
|
||
- указатель на интерфейс IDispatch или IUnknown второго объекта.
|
||
```
|
||
Примечание:
|
||
Возвращаемым значением может быть указатель на интерфейс грани, ребра, вершины. Зная тип объекта, можно привести его интерфейс к конечному 3D интерфейсу.
|
||
|
||
|
||
## GetPoint1 - Получить ближайшую точку на первом объекте или на продолжении объекта
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetPoint1 (double *x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetPoint1 (double *x, double *y, double *z);
|
||
Входной параметр:
|
||
x, y, z - координаты точки.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Значения x, y, z возвращаются в системе координат компонента.
|
||
|
||
|
||
## GetPoint2 - Получить ближайшую точку на втором объекте или на продолжении объекта
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetPoint2 (double *x, double *y, double *z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetPoint2 (double *x, double *y, double *z);
|
||
Входной параметр:
|
||
x, y, z - координаты точки.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Значения x, y, z возвращаются в системе координат компонента.
|
||
|
||
|
||
## IsAngleValid - Определить применимость расчета угла
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsAngleValid();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsAngleValid();
|
||
Возвращаемое значение:
|
||
TRUE - для данных объектов угол имеет смысл,
|
||
FALSE - для данных объектов угол смысла не имеет.
|
||
```
|
||
|
||
|
||
## MaxDistance - Получить максимальное расстояние
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
double MaxDistance();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
double MaxDistance();
|
||
Возвращаемое значение:
|
||
- Максимальное расстояние между объектами (двумя гранями, гранью и ребром и т. п.)
|
||
```
|
||
Примечание:
|
||
Метод доступен после вызова метода ksMeasurer::Calc (Automation) или IMeasurer::Calc (COM).
|
||
|
||
|
||
## MeasureResult - Получить результат измерения
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
long MeasureResult();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
ksMeasureResultEnum MeasureResult();
|
||
Возвращаемое значение:
|
||
- Результат измерения расстояния и угла между поверхностями из перечисления ksMeasureResultEnum.
|
||
```
|
||
Примечание:
|
||
Метод доступен после вызова метода ksMeasurer::Calc (Automation) или IMeasurer::Calc (COM).
|
||
|
||
|
||
## MinDistance - Минимальное расстояние
|
||
|
||
Интерфейс..
|
||
Тип данных: double
|
||
Синтаксис Automation:
|
||
```
|
||
MinDistance = IMeasurer.MinDistance Получить свойство (* )
|
||
MinDistance = IMeasurer.GetMinDistance() Получить свойство (**)
|
||
```
|
||
Примечание:
|
||
Свойство доступно только для чтения.
|
||
|
||
|
||
## NormalDistance - Получить расстояние по нормали (межосевое или расстояние между гранями)
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
double NormalDistance();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
double NormalDistance();
|
||
Возвращаемое значение:
|
||
- Максимальное расстояние по нормали между объектами (двумя гранями, гранью и ребром и т. п.).
|
||
```
|
||
Примечание:
|
||
Метод доступен после вызова метода ksMeasurer::Calc (Automation) или IMeasurer::Calc (COM).
|
||
|
||
|
||
## SetObject1 - Задать первый объект
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetObject1 (LPDISPATCH obj);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL SetObject1 (LPUNKNOWN obj);
|
||
Входной параметр:
|
||
obj - указатель на интерфейс IDispatch или IUnknown первого объекта.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Входным параметром может быть грань, ребро, вершина.
|
||
|
||
|
||
## SetObject2 - Задать второй объект
|
||
|
||
Интерфейс..
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetObject2 (LPDISPATCH obj);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL SetObject2 (LPUNKNOWN obj);
|
||
Входной параметр:
|
||
obj - указатель на интерфейс IDispatch или IUnknown первого объекта.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Входным параметром может быть грань, ребро, вершина.
|
||
|
||
|
||
## unit - Единицы измерения
|
||
|
||
Интерфейс..
|
||
Тип данных: unsigned long
|
||
Синтаксис Automation:
|
||
```
|
||
unit = iMeasurer.unit Получить свойство (* )
|
||
iMeasurer.unit = unit Установить свойство (* )
|
||
unit = iMeasurer.GetUnit() Получить свойство (**)
|
||
iMeasurer.SetUnit( unit ) Установить свойство (**)
|
||
```
|
||
Примечание:
|
||
Свойство находится в интервале [ST_MIX_MM..ST_MIX_M].
|