--- 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 - в случае неудачи. ``` Примечание: Метод позволяет скопировать объекты из группы в клип.