Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/ksmeasurer.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
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>
2026-05-26 20:00:05 +03:00

448 lines
15 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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].