---
title: "CopyObj - Копировать объект"
type: guide
api: [api7]
domain: [drawing]
tags: [guide, api7, drawing, copyobj]
sources:
  - copyobj.html
---

*API экспортных функций > Редактирование графических объектов  > Функции редактирования объектов чертежа *


## CopyObj - Копировать объект

Пример...
Синтаксис:
```
int CopyObj (reference obj,
double xb,
double yb,
double xn,
double yn,
double scale,
double ang);
Входные параметры:
obj    - указатель на объект,
xb, yb    - координаты базовой точки объекта,
xn, yn    - координаты нового положения базовой точки,
scale    - масштаб,
ang    - угол поворота в градусах.
Возвращаемое значение:
указатель на получившийся объект или группу объектов    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. Если указатель на объект равен нулю, то копируются выделенные объекты документа.
2. При копировании одиночного объекта новый объект создается на текущем слое текущего вида.
3. При копировании группы объектов слой сохраняется.
4. При копировании одиночного многослойного макрообъекта он перестает быть многослойным. Макро и входящие в него объекты переносятся на текущий слой. Для копирования многослойного макро с сохранением многослойности требуется добавить его в группу.
5. Функция устарела, рекомендуется вместо нее использовать функцию ksCopyObj.


## CopyObj - пример использования

void CopyObj_Example (void)
{
reference gr ;
double x,y,ang; scale;
/* задание группы объектов */
gr = NewGroup(0);
/* объекты записываются в модель текущего вида */
LineSeg (-15, 0, 15, 0, 3);
LineSeg ( 0, -15, 0, 15, 3); /* */
Circle (0, 0, 10, 1);
/* закончить формирование группы */
EndGroup();
RequestInfo info;
memset(&info, 0, sizeof(info));
info.promt = " Новое положение базовой точки ";
/* задание параметров копирования */
if ((Cursor (&info, &x, &y, 0)) &&
(ReadFloat (Угол поворота, 0, 0, 360, ang)) &&
(ReadFloat(Масштаб, 1, 0, 999, scale)))
CopyObj(gr, 0, 0, x, y, ang, scale); /* копирование группы gr */
/* базовая точка совпадает с 0,0 */
};
