Показать сообщение отдельно
Старый 22.05.2018, 14:28   #153
Kartuz
Пользователь
 
Регистрация: 16.12.2014
Сообщений: 32
Сказал(а) спасибо: 25
Поблагодарили 5 раз(а) в 5 сообщениях
Вес репутации: 0
Kartuz пока не определено
По умолчанию

Есть у меня скриптик. Он расставляет поровну полки по высоте. Но если полки присажены, то крепёж остаётся на месте, а полки расставляются. Нужно сделать , чтобы с крепежём перемещалось.

Скрытый текст

MinY = 1e10; // низ нижней полки
MaxY = -1e10; // верх верхней полки
SumThickness = 0; // суммарна толщина панелей
Count = 0; // количество панелей

for (k = 0; k < Model.SelectionCount; k++) {
obj = Model.Selections[k];
if (obj.Thickness > 1) {
if (obj.GabMin.y < MinY)
MinY = obj.GabMin.y;
if (obj.GabMax.y > MaxY)
MaxY = obj.GabMax.y;
SumThickness += obj.Thickness;
Count = Count + 1;
}
}

// нужное расстояние между полками
SpaceBetween = Math.floor((MaxY - MinY - SumThickness) / (Count - 1));

CurY = MinY;
for (k = 0; k < Model.SelectionCount; k++) {
obj = Model.Selections[k];
if (obj.Thickness > 1) {
Undo.Changing(obj);
obj.Translate(0, CurY - obj.GabMin.y, 0);
CurY = CurY + SpaceBetween + obj.Thickness;
}
}
[свернуть]
Kartuz вне форума   Ответить с цитированием Вверх