--- 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].