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>
282 lines
12 KiB
Markdown
282 lines
12 KiB
Markdown
---
|
|
title: "Интерфейс IViewProjectionManager"
|
|
type: interface
|
|
api: [api7]
|
|
tags: [interface, api7, iviewprojectionmanager]
|
|
sources:
|
|
- iviewprojectionmanager.html
|
|
---
|
|
|
|
*API интерфейсов. Версия 7 > Управление изображением модели*
|
|
|
|
|
|
## Интерфейс IViewProjectionManager
|
|
|
|
Менеджер проекций отображения модели в окне.
|
|
Иерархия:
|
|
IDispatch
|
|
IKompasAPIObject
|
|
IViewProjectionManager
|
|
Примечание:
|
|
Интерфейс можно получить, используя свойство IKompasDocument3D1::ViewProjectionManager.
|
|
Версия КОМПАС v22
|
|
|
|
|
|
## Add - Добавить новую пользовательскую проекцию
|
|
|
|
Интерфейс
|
|
Синтаксис Automation:
|
|
```
|
|
LPDISPATCH Add();
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
HRESULT Add( IViewProjection7 * * Result );
|
|
Возвращаемое значение:
|
|
- Указатель на интерфейс новой пользовательской проекцииIViewProjection7
|
|
```
|
|
Примечания:
|
|
Метод позволяет создать новый интерфейс стиля.
|
|
|
|
|
|
## AddUnfoldProjection - Добавить проекцию отображения - развертка
|
|
|
|
Интерфейс
|
|
Синтаксис Automation:
|
|
```
|
|
LPDISPATCH AddUnfoldProjection( VARIANT place );
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
HRESULT AddUnfoldProjection( VARIANT place, IViewProjection7 * * Result );
|
|
Возвращаемое значение:
|
|
- Указатель на интерфейс проекции IViewProjection7.
|
|
Входные параметры:
|
|
Place - динамический массив SAFEARRAY double (VT_ARRAY VT_R8),
|
|
```
|
|
Примечания:
|
|
В массиве должны лежать 16 элементов, которые представляют собой матрицу размера 4х4.
|
|
|
|
|
|
## BaseUserOrientation - Матрица базовой ориентации модели
|
|
|
|
Интерфейс
|
|
Тип данных: VARIANT
|
|
Синтаксис Automation:
|
|
```
|
|
BaseUserOrientation = Object.BaseUserOrientation Получить свойство (* )
|
|
Object.BaseUserOrientation = BaseUserOrientation Установить свойство (* )
|
|
BaseUserOrientation = Object.GetBaseUserOrientation() Получить свойство (**)
|
|
Object.SetBaseUserOrientation( BaseUserOrientation ) Установить свойство (**)
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
Object.get_BaseUserOrientation( &BaseUserOrientation ) Получить свойство
|
|
Object.put_BaseUserOrientation( BaseUserOrientation ) Установить свойство
|
|
```
|
|
Примечание
|
|
1.Элементы матрицы возвращаются в виде одномерного массива из 16 элементов SafeAttray типа (VT_ARRAY | VT_R8).. Матрица имеет размер 4х4.
|
|
2.Метод позволяет получить матрицу, которая может использоваться для отображения вида спереди.
|
|
3.По умолчанию используется единичная матрица без смещения.
|
|
|
|
|
|
## Count - Количество проекций
|
|
|
|
Интерфейс
|
|
Тип данных: long
|
|
Синтаксис Automation:
|
|
```
|
|
Count = Object.Count Получить свойство (* )
|
|
Count = Object.GetCount() Получить свойство (**)
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
Object.get_Count( &Count ) Получить свойство
|
|
```
|
|
Примечание:
|
|
Свойство доступно только для чтения.
|
|
|
|
|
|
## Matrix3D - Текущая матрица отображения в окне документа
|
|
|
|
Интерфейс
|
|
Тип данных:VARIANT
|
|
Синтаксис Automation:
|
|
```
|
|
Matrix3D = Object.Matrix3D Получить свойство (* )
|
|
Matrix3D = Object.GetMatrix3D() Получить свойство (**)
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
Object.get_Matrix3D( &Matrix3D ) Получить свойство
|
|
```
|
|
Примечание:
|
|
1.Свойство доступно только для чтения.
|
|
2.Для изменения текущей ориентации используется метод IViewProjection7_SetMatrix3D.
|
|
3.Элементы матрицы возвращаются в виде одномерного массива из 16 элементов SafeAttray типа (VT_ARRAY | VT_R8). Матрица имеет размер 4х4.
|
|
|
|
|
|
## OrientationNormalTo - Нормаль к...
|
|
|
|
Интерфейс
|
|
Синтаксис Automation:
|
|
```
|
|
BOOL OrientationNormalTo( IModelObject * NormalObject );
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
HRESULT OrientationNormalTo( IModelObject * NormalObject, BOOL * Result );
|
|
Возвращаемое значение:
|
|
TRUE - в случае удачного завершения,
|
|
FALSE - в случае неудачи.
|
|
Входные параметры:
|
|
NormalObject - указатель на плоский объект IModelObject.
|
|
```
|
|
Примечания:
|
|
В качестве плоского объекта может использоваться:
|
|
•плоская грань,
|
|
•координатная или вспомогательная плоскость,
|
|
•эскиз.
|
|
Версия Компас v23
|
|
|
|
|
|
## OrientationNormalToAndAling - Повернуть нормаль и выровнять
|
|
|
|
Интерфейс
|
|
Синтаксис Automation:
|
|
```
|
|
BOOL OrientationNormalToAndAling( IModelObject * NormalObject, BOOL Inverse, BOOL Horizontally, IModelObject * DirectionObject );
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
HRESULT OrientationNormalToAndAling( IModelObject * NormalObject, BOOL Inverse, BOOL Horizontally, IModelObject * DirectionObject, BOOL * Result );
|
|
Возвращаемое значение:
|
|
TRUE - в случае удачного завершения,
|
|
FALSE - в случае неудачи.
|
|
Входные параметры:
|
|
NormalObject - указатель на плоский объект IModelObject (плоская грань, координатная или вспомогательная плоскость, эскиз),
|
|
Inverse - направление,
|
|
Horizontally - TRUE - горизонтально, FALSE - вертикально,
|
|
DirectionObject - направляющий объект.
|
|
```
|
|
Примечания:
|
|
В качестве плоского объекта может использоваться:
|
|
•плоская грань,
|
|
•координатная или вспомогательная плоскость,
|
|
•эскиз.
|
|
Направляющим объектом может быть:
|
|
•линия (пространственная кривая, линия эскиза, ребро), проекцией которой на выбранный плоский объект является прямая,
|
|
•плоский объект (плоскость, плоская грань, эскиз), который пересекается с выбранным плоским объектом (в случае выбора грани или эскиза, построенного на грани, пересечение должно быть в пределах этой грани).
|
|
В соответствии с выбранным вариантом модель после указания направляющего объекта повернется так, чтобы его проекция на выбранный ранее плоский объект (линия пересечения этих объектов) заняла горизонтальное или вертикальное положение.
|
|
Версия Компас v23
|
|
|
|
|
|
## Scale - Масштаб, установленный в текущем окне документа
|
|
|
|
Интерфейс
|
|
Тип данных: double
|
|
Синтаксис Automation:
|
|
```
|
|
Scale = Object.Scale Получить свойство (* )
|
|
Object.Scale = Scale Установить свойство (* )
|
|
Scale = Object.GetScale() Получить свойство (**)
|
|
Object.SetScale( Scale ) Установить свойство (**)
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
Object.get_Scale( &Scale ) Получить свойство
|
|
Object.put_Scale( Scale ) Установить свойство
|
|
```
|
|
|
|
|
|
## SetMatrix3D - Установить систему координат отображения модели в окне по матрице и масштабу
|
|
|
|
Интерфейс
|
|
Синтаксис Automation:
|
|
```
|
|
BOOL SetMatrix3D( VARIANT Matrix3D, double Scale );
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
HRESULT SetMatrix3D( VARIANT Matrix3D, double Scale, BOOL * Result );
|
|
Возвращаемое значение:
|
|
TRUE - в случае удачного завершения,
|
|
FALSE - в случае неудачи.
|
|
Входные параметры:
|
|
Matrix3D - динамический массив SAFEARRAY double (VT_ARRAY VT_R8),
|
|
Scale - масштаб.
|
|
```
|
|
Примечания:
|
|
В массиве должны лежать 16 элементов, которые представляют собой матрицу размера 4х4.
|
|
|
|
|
|
## ShowDynamicSection - Отображать сохраненные динамическое сечение
|
|
|
|
Интерфейс
|
|
Тип данных: BOOL
|
|
Синтаксис Automation:
|
|
```
|
|
ShowDynamicSection = Object.ShowDynamicSection Получить свойство (* )
|
|
Object.ShowDynamicSection = ShowDynamicSection Установить свойство (* )
|
|
ShowDynamicSection = Object.GetShowDynamicSection() Получить свойство (**)
|
|
Object.SetShowDynamicSection( ShowDynamicSection ) Установить свойство (**)
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
Object.get_ShowDynamicSection( &ShowDynamicSection ) Получить свойство
|
|
Object.put_ShowDynamicSection( ShowDynamicSection ) Установить свойство
|
|
```
|
|
|
|
|
|
## ShowLayersStates - Отображать сохраненные состояния слоев
|
|
|
|
Интерфейс
|
|
Тип данных: BOOL
|
|
Синтаксис Automation:
|
|
```
|
|
ShowLayersStates = Object.ShowLayersStates Получить свойство (* )
|
|
Object.ShowLayersStates = ShowLayersStates Установить свойство (* )
|
|
ShowLayersStates = Object.GetShowLayersStates() Получить свойство (**)
|
|
Object.SetShowLayersStates( ShowLayersStates ) Установить свойство (**)
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
Object.get_ShowLayersStates( &ShowLayersStates ) Получить свойство
|
|
Object.put_ShowLayersStates( ShowLayersStates ) Установить свойство
|
|
```
|
|
|
|
|
|
## ViewProjection - Получить интерфейс проекции по индексу или имени
|
|
|
|
Интерфейс
|
|
Тип данных: Указатель на интерфейс IViewProjection7
|
|
Синтаксис Automation:
|
|
```
|
|
ViewProjection = Object.ViewProjection( Index ) Получить свойство (* )
|
|
ViewProjection = Object.GetViewProjection( Index ) Получить свойство (**)
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
Object.get_ViewProjection( Index, &ViewProjection ) Получить свойство
|
|
```
|
|
Примечание:
|
|
Свойство доступно только для чтения.
|
|
|
|
|
|
## ViewProjectionScheme - Текущая схема ориентаций модели
|
|
|
|
Интерфейс
|
|
Тип данных: ksViewProjectionScheme
|
|
Синтаксис Automation:
|
|
```
|
|
ViewProjectionScheme = Object.ViewProjectionScheme Получить свойство (* )
|
|
Object.ViewProjectionScheme = ViewProjectionScheme Установить свойство (* )
|
|
ViewProjectionScheme = Object.GetViewProjectionScheme() Получить свойство (**)
|
|
Object.SetViewProjectionScheme( ViewProjectionScheme ) Установить свойство (**)
|
|
```
|
|
Синтаксис COM:
|
|
```
|
|
Object.get_ViewProjectionScheme( &ViewProjectionScheme ) Получить свойство
|
|
Object.put_ViewProjectionScheme( ViewProjectionScheme ) Установить свойство
|
|
```
|