Files
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

15 KiB

title, type, api, domain, tags, sources
title type api domain tags sources
Измерение расстояния и угла между двумя примитивами (Интерфейсы ksMeasurer, IMeasurer) interface
api7
assembly
feature
interface
api7
assembly
feature
ksmeasurer
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].