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>
443 lines
14 KiB
Markdown
443 lines
14 KiB
Markdown
---
|
||
title: "Интерфейс IDrawingGroup"
|
||
type: interface
|
||
api: [api7]
|
||
domain: [2d, drawing]
|
||
tags: [interface, api7, 2d, drawing, idrawinggroup]
|
||
sources:
|
||
- idrawinggroup.html
|
||
---
|
||
|
||
*API интерфейсов. Версия 7 > Документ 2D > Группы *
|
||
|
||
|
||
## Интерфейс IDrawingGroup
|
||
|
||
Интерфейс группы (постоянной, временной, именованной).
|
||
Иерархия:
|
||
IDispatch
|
||
IKompasAPIObject
|
||
IDrawingGroup
|
||
Описание:
|
||
Интерфейс позволяет задавать параметры группы (постоянной, временной или именованной).
|
||
Примечание:
|
||
Интерфейс можно получить у коллекции групп, используя свойство IDrawingGroups::Item или метод IDrawingGroups::Add или у дополнительного интерфейса документа 2D с помощью свойства IKompasDocument2D1::CurrentGroup.
|
||
|
||
|
||
## AddObjects - Добавить объекты в группу
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL AddObjects( VARIANT Objects );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT AddObjects( VARIANT Objects,
|
||
BOOL * Result );
|
||
Входные параметры:
|
||
Objects - объект или массив объектов для добавления в группу ( VARIANT типа VT_DISPATCH или VT_ARRAY VT_DISPATCH).
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет добавить объекты в группу.
|
||
|
||
|
||
## AddRegion - Добавить объекты в группу рамкой
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL AddRegion( long RegionType,
|
||
double XMin,
|
||
double YMin,
|
||
double XMax,
|
||
double YMax );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT AddRegion( ksRegionTypeEnum RegionType,
|
||
double XMin,
|
||
double YMin,
|
||
double XMax,
|
||
double YMax,
|
||
BOOL * Result );
|
||
Входные параметры:
|
||
RegionType - тип рамки из перечисления ksRegionTypeEnum,
|
||
XMin, YMin - координаты нижнего левого угла рамки,
|
||
XMax, YMax - координаты верхнего правого угла рамки.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет добавить объекты в группу рамкой.
|
||
|
||
|
||
## Clear - Очистить группу
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Clear( BOOL DeleteTmp );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT Clear( BOOL DeleteTmp,
|
||
BOOL * Result );
|
||
Входные параметры:
|
||
DeleteTmp - удалять ли временные объекты.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет удалить все объекты из группы.
|
||
|
||
|
||
## Close - Закрыть группу
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Close();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT Close( BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет закрыть отредактированную группу.
|
||
|
||
|
||
## CopyToDocument - Копировать группу
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
LPDISPATCH CopyToDocument( IKompasDocument2D * OtherDocument );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT CopyToDocument( IKompasDocument2D * OtherDocument, IDrawingGroup * * Result );
|
||
Возвращаемое значение:
|
||
- Группа созданных объектов IDrawingGroup.
|
||
Входные параметры:
|
||
OtherDocument - Указатель на другой документ, куда копируется группа IKompasDocument2D.
|
||
КOMPAS v24
|
||
```
|
||
|
||
|
||
## Current - Текущая группа
|
||
|
||
Тип данных: BOOL
|
||
Синтаксис Automation:
|
||
```
|
||
Current = Object.Current Получить свойство(* )
|
||
Current = Object.GetCurrent() Получить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_Current( &Current ) Получить свойство
|
||
```
|
||
Примечание:
|
||
1. Свойство позволяет получать признак того, что группа является текущей.
|
||
2. Свойство доступно только для чтения.
|
||
|
||
|
||
## Delete - Удалить группу
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Delete();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT Delete( BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет удалить группу.
|
||
|
||
|
||
## DetachObjects - Исключить объекты из группы
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL DetachObjects( VARIANT Objects,
|
||
BOOL DeleteTmp );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT DetachObjects( VARIANT Objects,
|
||
BOOL DeleteTmp,
|
||
BOOL * Result );
|
||
Входные параметры:
|
||
Objects - объект или массив объектов для удаления из группы( VARIANT типа VT_DISPATCH или VT_ARRAY VT_DISPATCH ),
|
||
DeleteTmp - удалять ли временные объекты.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет исключить объекты из группы.
|
||
|
||
|
||
## Draw - Отрисовать в окне
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Draw( OLE_HANDLE HWnd );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT Draw( OLE_HANDLE HWnd,
|
||
BOOL * Result );
|
||
Входные параметры:
|
||
HWnd - дескриптор окна.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет отрисовать группу в окне.
|
||
|
||
|
||
## ExistObject - Проверить, есть ли объект в группе
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL ExistObject( LPDISPATCH Object );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT ExistObject( IDrawingObject * Object,
|
||
BOOL * Result );
|
||
Входные параметры:
|
||
Object - объект, наличие которого в группе надо проверить.
|
||
Возвращаемое значение:
|
||
TRUE - объект есть в группе,
|
||
FALSE - объекта нет в группе.
|
||
```
|
||
Примечание:
|
||
Метод позволяет определить, есть ли в группе заданный объект.
|
||
|
||
|
||
## GetGabarit - Габарит объектов группы
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetGabarit( double * X1, double * Y1, double * X2, double * Y2 );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT GetGabarit( double * X1, double * Y1, double * X2, double * Y2, BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
Выходные параметры:
|
||
X1, Y1 - первая точка габарита - левая нижняя,
|
||
X2, Y2 - вторая точка габарита - правая верхняя.
|
||
Версия Компас v23
|
||
```
|
||
|
||
|
||
## Name - Имя именованной группы
|
||
|
||
Тип данных: BSTR
|
||
Синтаксис Automation:
|
||
```
|
||
Name = Object.Name Получить свойство(* )
|
||
Object.Name = Name Установить свойство (* )
|
||
Name = Object.GetName() Получить свойство (**)
|
||
Object.SetName( Name ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_Name( &Name ) Получить свойство
|
||
Object.put_Name( Name ) Установить свойство
|
||
```
|
||
Примечание:
|
||
Свойство позволяет устанавливать и получать имя группы и добавляет группу в именованные.
|
||
|
||
|
||
## Objects - Получить массив объектов SAFEARRAY|VT_DISPATCH
|
||
|
||
Тип данных: VARIANT типа VT_ARRAY | VT_DISPATCH
|
||
Синтаксис Automation:
|
||
```
|
||
Objects = Object.Objects Получить свойство(* )
|
||
Objects = Object.GetObjects() Получить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_Objects( &Objects ) Получить свойство
|
||
```
|
||
Примечание:
|
||
1. Свойство позволяет получать массив объектов, входящих в группу. Если возвращается один объект, то тип VARIANT-а будет VT_DISPATCH, если возвращается несколько объектов, то тип VARIANT-а будет VT_ARRAY | VT_DISPATCH.
|
||
2. Свойство доступно только для чтения.
|
||
|
||
|
||
## ObjectsCount - Количество объектов в группе
|
||
|
||
Тип данных: long
|
||
Синтаксис Automation:
|
||
```
|
||
ObjectsCount = Object.ObjectsCount Получить свойство(* )
|
||
ObjectsCount = Object.GetObjectsCount() Получить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_ObjectsCount( &ObjectsCount ) Получить свойство
|
||
```
|
||
Примечание:
|
||
1. Свойство позволяет получать количество объектов в группе.
|
||
2. Свойство доступно только для чтения.
|
||
|
||
|
||
## Open - Открыть группу
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Open();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT Open( BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет открыть группу для редактирования.
|
||
|
||
|
||
## ReadFragment - Добавить объекты в группу из фрагмента
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL ReadFragment( BSTR FileName,
|
||
BOOL CurentLayer,
|
||
double XBase,
|
||
double YBase,
|
||
double Scale,
|
||
double Angle,
|
||
BOOL ScaleProjLinesSize );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT ReadFragment( BSTR FileName,
|
||
BOOL CurentLayer,
|
||
double XBase,
|
||
double YBase,
|
||
double Scale,
|
||
double Angle,
|
||
BOOL ScaleProjLinesSize,
|
||
BOOL * Result );
|
||
Входные параметры:
|
||
FileName - имя файла фрагмента,
|
||
CurentLayer - тип размещения по слоям FALSE - на свои слои, TRUE - в текущий слой,
|
||
XBase, YBase - координаты базовой точки в СК вида,
|
||
Scale - масштаб,
|
||
Angle - угол поворота в СК вида,
|
||
ScaleProjLinesSize - масштабировать ли проекционные линии.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет добавить объекты в группу из фрагмента.
|
||
|
||
|
||
## ReadFromClip - Считать объекты из клипа
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL ReadFromClip( BOOL AttrCopy,
|
||
BOOL SpcObjCopy );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT ReadFromClip( BOOL AttrCopy,
|
||
BOOL SpcObjCopy,
|
||
BOOL * Result );
|
||
Входные параметры:
|
||
AttrCopy - копировать ли атрибуты,
|
||
SpcObjCopy - копировать ли объекты спецификации.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет считать объекты из клипа в группу.
|
||
|
||
|
||
## Store - Вставить временную группу в документ
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Store();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT Store( BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет вставить временную группу в документ.
|
||
|
||
|
||
## WriteFragment - Записать в фрагмент
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL WriteFragment( BSTR FileName,
|
||
BSTR Comment,
|
||
double XBase,
|
||
double YBase );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT WriteFragment( BSTR FileName,
|
||
BSTR Comment,
|
||
double XBase,
|
||
double YBase,
|
||
BOOL * Result );
|
||
Входные параметры:
|
||
FileName - имя файла фрагмента,
|
||
Comment - комментарий,
|
||
XBase, YBase - координаты базовой точки в СК вида,
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет записать группу в фрагмент.
|
||
|
||
|
||
## WriteToClip - Записать объекты в клип
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL WriteToClip( BOOL AttrCopy,
|
||
BOOL SpcObjCopy );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT WriteToClip( BOOL AttrCopy,
|
||
BOOL SpcObjCopy,
|
||
BOOL * Result );
|
||
Входные параметры:
|
||
AttrCopy - копировать ли атрибуты,
|
||
SpcObjCopy - копировать ли объекты спецификации.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Метод позволяет скопировать объекты из группы в клип.
|