--- title: "NewGroup - Создать новую группу объектов" type: guide api: [api7] tags: [guide, api7, newgroup] sources: - newgroup.html --- *API экспортных функций > Функции работы с графическим документом  > Работа с группами объектов  > Функции работы с группами объектов * ## NewGroup - Создать новую группу объектов Пример... Аналог данной функции при использовании Automation - метод ksDocument2D::ksNewGroup. Синтаксис: ``` reference NewGroup (int type); Входной параметр: type - тип группы: 0 - модельная, 1 - временная. Возвращаемое значение: указатель на группу - в случае удачного завершения, 0 - в случае неудачи. ``` Примечание: 1. В модельной группе лежат объекты, которые уже созданы в документе. Во временной группе могут лежать временные и существующие объекты. 2. Если для временной группы не будет вызван функция StoreTmpGroup, то временные объекты группы будут уничтожены по окончании работы библиотеки. 3. Создаваемые в дальнейшем до вызова функции EndGroup объекты чертежа записываются в модель или во временный список объектов (например, для фантомной прорисовки при вводе). 4. Для дальнейшей обработки группы используются те же функции редактирования, что и для отдельных объектов, так как указатель на группу ничем не отличается от указателя на отдельный объект (оба они имеют тип reference). 5. Группа может объединять объекты вида, виды и слои. 6. При создании новой группы необязательно закрывать предыдущую (т.е. поддерживается вложенность групп). ## NewGroup, EndGroup - Пример использования void NewGroup_Example (void) { reference gr ; double x,y,m,ang; Phantom FANTOM; gr = NewGroup(1); /* задание группы объектов */ LineSeg (-15, 0, 15, 0, 3); /* объекты записываются */ LineSeg ( 0, -15, 0, 15, 3); /* во временный список */ Circle (0, 0, 10, 1); EndGroup(); /* закончить формирование группы */ /* ввод точки с отображением фантома и копирование группы*/ FANTOM.phType=1; FANTOM.type1.gr=gr; FANTOM.type1.xBase=0; FANTOM.type1.yBase=0; FANTOM.type1.scale=1; FANTOM.type1.ang=0; RequestInfo info; memset(&info, 0, sizeof(info)); info.promt = " Точка привязки "; if (Cursor(&info, &x, &y, &FANTOM)) CopyObj(gr, x, y, m, ang); if (YesNo(Удалять?)) DeleteObj(gr); }; /* NewGroup_Example */