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>
170 lines
7.5 KiB
Markdown
170 lines
7.5 KiB
Markdown
---
|
||
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.
|