--- title: "Интерфейс коллекции проекций отображения модели (Интерфейсы ksViewProjectionCollection, IViewProjectionCollection)" type: interface api: [api7] domain: [3d] tags: [interface, api7, 3d, ksviewprojectioncollection] sources: - ksviewprojectioncollection.html --- *API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D ) * ## Интерфейс коллекции проекций отображения модели (Интерфейсы ksViewProjectionCollection, IViewProjectionCollection) Интерфейс массива проекций отображения модели в окне. | ksViewProjectionCollection | - интерфейс Automation | | --- | --- | | IViewProjectionCollection | - интерфейс COM | Типы предопределенных проекций отображения... Описание: К предопределенным проекциям можно добавлять пользовательские, индексы которых могут изменяться. Примечание: Получить этот интерфейс можно методом ksDocument3D::GetViewProjectionCollection, при этом он будет автоматически заполнен проекциями, заданными в данном документе. Проекции отображения модели в окне (Интерфейсы ksViewProjection, IViewProjection) ## Add - Добавить элемент в конец массива Синтаксис Automation: ``` BOOL Add (LPDISPATCH projection); ``` Синтаксис COM: ``` BOOL Add (LPVIEWPROJECTION projection); Входные параметры: projection - указатель на интерфейс ksViewProjection или IViewProjection. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: Добавить в массив можно только проекцию с индексом vp_None. После добавления проекция становится текущей и ей присваивается новый индекс, равный ее индексу в массиве. После добавления проекции редактирование ее параметров невозможно. ## AddUnfoldProjection - Добавить проекцию отображения - развертка Синтаксис Automation: ``` LPDISPATCH AddUnfoldProjection( VARIANT place ); Возвращаемое значение: - указатель на интерфейс проекции ksViewProjection. ``` Синтаксис COM: ``` LPVIEWPROJECTION AddUnfoldProjection( VARIANT * place ); Возвращаемое значение: - указатель на интерфейс проекции IViewProjection. ``` ## DetachByBody - Отсоединить элемент по указателю на интерфейс Синтаксис Automation: ``` BOOL DetachByBody (LPDISPATCH projection); ``` Синтаксис COM: ``` BOOL DetachByBody (LPVIEWPROJECTION projection); Входные параметры: projection - указатель на интерфейс ksViewProjection или IViewProjection. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: Отсоединить можно только пользовательскую проекцию, стандартные проекции не отсоединяются. ## DetachByIndex - Отсоединить элемент по индексу Синтаксис Automation: ``` BOOL DetachByIndex (long index); ``` Синтаксис COM: ``` BOOL DetachByIndex (long index); Входной параметр: index - индекс проекции в массиве. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: Отсоединить можно только пользовательскую проекцию, стандартные проекции не отсоединяются. ## DetachByName - Отсоединить элемент по имени проекции Синтаксис Automation: ``` BOOL DetachByName (BSTR name); ``` Синтаксис COM: ``` BOOL DetachByName (LPOLESTR name); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: Отсоединить можно только пользовательскую проекцию, стандартные проекции не отсоединяются. ## FindIt - Получить индекс элемента в массиве Синтаксис Automation: ``` long FindIt (LPDISPATCH projection); ``` Синтаксис COM: ``` long FindIt (LPVIEWPROJECTION projection); Возвращаемое значение: индекс элемента - если элемент найден в массиве, -1 - если элемент не найден. Входные параметры: projection - указатель на интерфейс ksViewProjection или IViewProjection. ``` ## First - Получить указатель на первый элемент массива Синтаксис Automation: ``` LPDISPATCH First(); ``` Синтаксис COM: ``` LPVIEWPROJECTION First(); Возвращаемое значение: - указатель на интерфейс ksViewProjection или IViewProjection. ``` ## GetBaseUserOrientation - Получить текущую пользовательскую базовую ориентацию модели Синтаксис Automation: ``` VARIANT GetBaseUserOrientation(); ``` Синтаксис COM: ``` VARIANT GetBaseUserOrientation(); Возвращаемое значение: - массив SafeAttray типа (VT_ARRAY VT_R8). ``` Примечание: 1. Элементы матрицы возвращаются в виде одномерного массива из 16 элементов. Матрица имеет размер 4х4. 2. Метод позволяет получить матрицу, которая может использоваться для отображения вида спереди. 3. По умолчанию используется единичная матрица без смещения. ## GetByIndex - Получить указатель на элемент массива по индексу Синтаксис Automation: ``` LPDISPATCH GetByIndex (long index); ``` Синтаксис COM: ``` LPVIEWPROJECTION GetByIndex (long index); Входной параметр: index - индекс проекции в массиве. Возвращаемое значение: - указатель на интерфейс ksViewProjection или IViewProjection. ``` ## GetByName - Получить указатель на элемент массива по имени Синтаксис Automation: ``` LPDISPATCH GetByName (BSTR name, BOOL testFullName, BOOL testIgnoreCase); ``` Синтаксис COM: ``` LPVIEWPROJECTION GetByName (LPOLESTR name, BOOL testFullName, BOOL testIgnoreCase); Входные параметры: name - имя проекции, testFullName - признак полного имени: TRUE - name - полное имя, FALSE - имя name может быть частью полного имени, testIgnoreCase - признак игнорирования регистра символов: TRUE - игнорировать регистр, FALSE - учитывать регистр. Возвращаемое значение: - указатель на интерфейс ksViewProjection или IViewProjection. ``` ## GetCount - Получить количество проекций в массиве Синтаксис Automation: ``` long GetCount(); ``` Синтаксис COM: ``` long GetCount(); Возвращаемое значение: - количество проекций в массиве. ``` ## Last - Получить указатель на последний элемент массива Синтаксис Automation: ``` LPDISPATCH Last(); ``` Синтаксис COM: ``` LPVIEWPROJECTION Last(); Возвращаемое значение: - указатель на интерфейс ksViewProjection или IViewProjection. ``` ## NewViewProjection - Добавить новую проекцию Синтаксис Automation: ``` LPDISPATCH NewViewProjection(); ``` Синтаксис COM: ``` LPVIEWPROJECTION NewViewProjection(); Возвращаемое значение: - указатель на интерфейс ksViewProjection или IViewProjection. ``` Примечание: Проекции присваивается индекс vp_None. Созданная проекция в массив не добавляется, для добавления в массив нужно использовать метод Add. ## Next - Получить указатель на следующий элемент массива Синтаксис Automation: ``` LPDISPATCH Next(); ``` Синтаксис COM: ``` LPVIEWPROJECTION Next(); Возвращаемое значение: - указатель на интерфейс ksViewProjection или IViewProjection. ``` ## Prev - Получить указатель на предыдущий элемент массива Синтаксис Automation: ``` LPDISPATCH Prev(); ``` Синтаксис COM: ``` LPVIEWPROJECTION Prev(); Возвращаемое значение: - указатель на интерфейс ksViewProjection или IViewProjection. ``` ## Refresh - Обновить массив Синтаксис Automation: ``` BOOL Refresh(); ``` Синтаксис COM: ``` BOOL Refresh(); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: Метод перезаполняет массив проекциями, заданными в документе. ## SetBaseUserOrientation - Установить пользовательскую базовую ориентацию модели Синтаксис Automation: ``` BOOL SetBaseUserOrientation(VARIANT place); ``` Синтаксис COM: ``` BOOL SetBaseUserOrientation(VARIANT * place); Входные параметры: place - массив SafeAttray типа (VT_ARRAY VT_R8). ``` Примечание: 1. Элементы матрицы возвращаются в виде одномерного массива из 16 элементов. Матрица имеет размер 4х4. 2. Метод позволяет получить матрицу, которая может использоваться для отображения вида спереди. 3. По умолчанию используется единичная матрица без смещения. ## viewProjectionScheme - Текущая схема ориентаций модели Тип данных: из перечисления ksViewProjectionScheme Синтаксис Automation: ``` viewProjectionScheme = Object.viewProjectionScheme Получить свойство (* ) Object.viewProjectionScheme = viewProjectionScheme Установить свойство (* ) viewProjectionScheme = Object.GetViewProjectionScheme() Получить свойство(**) Object.SetViewProjectionScheme( viewProjectionScheme ) Установить свойство (**) ```