Показать сообщение отдельно
Старый 07.12.2018, 09:05   #90
volunka
Местный
 
Аватар для volunka
 
Регистрация: 22.09.2010
Адрес: Россия, г. Санкт-Петербург
Сообщений: 538
Сказал(а) спасибо: 1,084
Поблагодарили 2,184 раз(а) в 436 сообщениях
Вес репутации: 678
volunka репутация неоспоримаvolunka репутация неоспоримаvolunka репутация неоспоримаvolunka репутация неоспоримаvolunka репутация неоспоримаvolunka репутация неоспоримаvolunka репутация неоспоримаvolunka репутация неоспоримаvolunka репутация неоспоримаvolunka репутация неоспоримаvolunka репутация неоспорима
По умолчанию

Цитата:
Сообщение от Ozimko Посмотреть сообщение
а скриптом - работает, там учитывается именно периметр пластика. Спасибо.
Уточнённый скрипт, уменьшающий лишний периметр панелей с нанесённой облицовкой из того же материала, что и основная панель:
Код:
n = Panel.Plastics.Count; // Выясняем, сколько слоёв облицовки пласти на панели
a = 0;  // Переменная для подсчёта слоёв пласти из материала совпадающего с материалом основной панели
Result = 0; // Присваиваем результату параметра результат по умолчанию 0
i = 0; // Переменная для перебора слоёв пласти панели
while (i < n) {      // Проверяем есть ли облицовка пласти на панели, если есть,  перебираем по очереди все слои пласти
        if (Panel.Plastics[i].Material == Panel.MaterialName) { // Проверяем, совпадает ли материал основной панели с текущим слоем облицовки пласти
            a++; // Если совпадает, то засчитываем этот слой
        }
        i++;
}
if (a>0) { // Проверяем, облицована ли панель вторым слоем из того же материала
    Result = GetParam('(19)Периметр заготовки') / (a+1) ; // Если облицована, т.е. панель "срощена", то для верного вычисления периметра панели, делим результат на количество слоёв из проверяемого материала, т.к. вычисление будет вызывать столько раз, сколько слоёв указанного материала есть в данной панели
}
volunka вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
Miracle01 (26.02.2019), Ovsyanicov (07.12.2018), Ozimko (08.12.2018)