do_move_rot_and_scale_elemlist
Переместить или скопировать элементы, собранные в заданном списке на заданное расстояние, с учетом группировки, с поворотом на угол с масштабированием и записать вновь созданные элементы в заданный список.
ac_request("do_move_rot_and_scale_elemlist", int iElemList, double coordtoX, double coordtoY, double coordRotCenterX, double coordRotCenterY, double angle, double scale, bool bDoRotate, bool bWithDelete, int bpt, int mmode, int iElemList2);
Здесь:
iElemList - номер списка элементов, которые копировать или перемещать;
coordtoX, coordtoY - координаты куда переместить;
coordRotCenterX, сoordRotCenterY - координаты центра поворота;
angle - угол в радианах;
scale - масштаб (доли 1);
bDoRotate - поворачивать или нет;
bWithDelete - удалять оригиналы или нет;
bpt - что взять за базовую точку
0 - TopLeft,
1 - TopMiddle,
2 - TopRight,
3 - MiddleLeft,
4 - MiddleMiddle,
5 - MiddleRight,
6 - BottomLeft,
7 - BottomMiddle,
8 - BottomRight,
9 - Default,
10 - ByParentCoordCenter.
mmode - режим учета групп
каждый элемент по отдельности BySingle=0,
по последней группировке ByGroupsBelow=1,
по первой группировке ByGroupsTop=2
все как единое целое ByAll=3
iElemList2 - номер списка элементов, куда поместить вновь созданные элементы.
Пример
Скопировать элемент кровли на расстояние 1 м вправо, находящийся в списке 2 и записано созданный элемент в список 4,
и задать номер многослойной конструкции 111.
int iElemList = 2;
int iElemList2 = 4;
double coordtoX = 1;
double coordtoY = 0;
double coordRotCenterX = 0;
double coordRotCenterY = 0;
double angle = 0;
double scale = 1;
bool bDoRotate = false;
bool bWithDelete = false;
int bpt = 0;
int mmode = 0;
coordtoX = coordtoX + offset;
ac_request("do_move_rot_and_scale_elemlist", iElemList, coordtoX, coordtoY, coordRotCenterX, coordRotCenterY, angle, scale, bDoRotate, bWithDelete, bpt, mmode, iElemList2);
ac_request("set_current_element_from_list", 4, 0);
int compositindex = 111;
ac_request_special("set_element_value", "EP","composite", compositindex);