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