Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/ksviewprojection.md
T
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

170 lines
7.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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.