--- title: "Проекции отображения модели в окне (Интерфейсы ksViewProjection, IViewProjection)" type: interface api: [api7] domain: [3d] tags: [interface, api7, 3d, ksviewprojection] sources: - ksviewprojection.html --- *API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )  > Интерфейс коллекции проекций отображения модели (Интерфейсы ksViewProjectionCollection, IViewProjectionCollection) * ## Проекции отображения модели в окне (Интерфейсы ksViewProjection, IViewProjection) Интерфейс проекции отображения модели в окне. | ksViewProjection | - интерфейс Automation | | --- | --- | | IViewProjection | - интерфейс COM | Типы предопределенных проекций отображения... Описание: К этим проекциям можно добавлять пользовательские, индексы которых могут изменяться. Свойства уже заданных в документе проекций (с индексом больше vp_None) изменить нельзя. Эти свойства доступны только для чтения. Примечание: Данный интерфейс может быть получен с использованием методов интерфейса ksViewProjectionCollection. ## GetPlacement - Получить интерфейс системы координат отображения модели в окне Синтаксис Automation: ``` LPDISPATCH GetPlacement(); ``` Синтаксис COM: ``` LPPLACEMENT GetPlacement(); Возвращаемое значение: - указатель на интерфейс ksPlacement или IPlacement. ``` Примечание: Изменение параметров системы координат возможно только для проекции с индексом vp_None. ## GetViewProjectonType - Получить тип проекции Синтаксис Automation: ``` long GetViewProjectonType(); ``` Синтаксис COM: ``` long GetViewProjectonType(); Возвращаемое значение: - Тип проекции из перечисления ksViewProjectionType. ``` ## IsCurrent - Определить, является ли данная проекция текущей Синтаксис Automation: ``` BOOL IsCurrent(); ``` Синтаксис COM: ``` BOOL IsCurrent(); Возвращаемое значение: TRUE - данная проекция является текущей, FALSE - данная проекция не является текущей. ``` Примечание: Для проекции с индексом vp_None возвращаемое значение всегда FALSE. ## name - Имя проекции Тип данных: BSTR Синтаксис Automation: ``` name = iViewProjection.name Получить свойство(* ) iViewProjection.name = name Установить свойство (* ) name = iViewProjection.GetName() Получить свойство (**) iViewProjection.SetName(name) Установить свойство (**) ``` ## scale - Масштаб отображения модели в окне Тип данных: double Синтаксис Automation: ``` scale = iViewProjection.scale Получить свойство(* ) iViewProjection.scale = scale Установить свойство (* ) scale = iViewProjection.GetScale() Получить свойство (**) iViewProjection.SetScale(scale) Установить свойство (**) ``` Примечание: Масштаб можно установить для любой проекции. Если значение масштаба равно -1, то масштаб отображения будет задан таким образом, чтобы в окне был показан документ целиком. Если проекция является текущей, SetScale устанавливает нужный масштаб сразу. Получить масштаб отображения можно для пользовательской проекции, либо для текущей. ## SetCurrent - Установить данную проекцию отображения модели в окне текущей Синтаксис Automation: ``` BOOL SetCurrent(); ``` Синтаксис COM: ``` BOOL SetCurrent(); Возвращаемое значение: TRUE - в случае успеха, FALSE - в случае неудачи. ``` Примечание: 1. Для проекции с индексом vp_NormalTo необходимо, чтобы в модели был выбран хотя бы один плоский объект. 2. Для проекции с индексом vp_None модель разворачивается и масштабируется в соответствии с заданными параметрами проекции. Сама проекция в массив не добавляется. ## SetMatrix3D - Установить систему координат отображения модели в окне по матрице Синтаксис Automation: ``` VARIANT_BOOL SetMatrix3D (VARIANT Matrix3D); ``` Синтаксис COM: ``` BOOL SetMatrix3D (VARIANT Matrix3D); Входные параметры: Динамический массив SAFEARRAY double (VT_ARRAY VT_R8). В массиве должны лежать 16 элементов, которые представляют собой матрицу размера 4х4. Возвращаемое значение: TRUE - в случае успеха, FALSE - в случае неудачи. ``` Примечание: 1. Для отображения данной проекции в модели надо после установки системы координат вызвать метод SetCurrent. 2. Матрицу можно получить у ассоциативного вида методом ksDocument2D::ksAssociationViewMatrix3D. ## SetPlacement - Установить систему координат отображения модели в окне Синтаксис Automation: ``` BOOL SetPlacement (LPDISPATCH place); ``` Синтаксис COM: ``` BOOL SetPlacement (LPPLACEMENT place); Входные параметры: - указатель на интерфейс ksPlacement или IPlacement. Возвращаемое значение: TRUE - в случае успеха, FALSE - в случае неудачи. ``` Примечание: Изменение параметров системы координат возможно только для проекции с индексом vp_None. ## UserProjectionIndex - Индекс проекции отображения модели в окне Тип данных: long Синтаксис Automation: ``` index = iViewProjection.index Получить свойство (* ) index = iViewProjection.GetIndex() Получить свойство (**) ``` Примечание: 1. Свойство доступно только для чтения. 2. Свойство работает только для пользовательских проекций. Для получения типа проекции нужно использовать метод ksViewProjection::GetViewProjectonType.