Линейный раскрой металла excel

Обновлено: 09.05.2024

Достаточно функциональную программу для решения задач экономного линейного раскроя погонажных материалов можно создать самостоятельно и абсолютно бесплатно, используя исключительно встроенные функции и штатную надстройку «Решатель» программы Calc.

. из свободно распространяемого офисного пакета LibreOffice. При этом ни к созданию макросов, ни к написанию пользовательских функций, ни к программированию вообще обращаться нет необходимости!

И все-таки – почему в данном случае стоит попробовать использовать не Excel, а Calc?

Структура задачи и терминология.

Данная тема уже была подробно рассмотрена на блоге в статье «Линейный раскрой в Excel» 4 года назад. Вновь обратиться к ней побудило желание автоматизировать генерацию схем раскроев и сравнить результаты работы «Решателя» и OpenSolver.

Полную «задачу о распиле» можно разделить на две значительные подзадачи:

  1. Генерация всех возможных схем раскроев.
  2. Поиск на основе сгенерированных схем оптимального раскройного плана.

Первая подзадача в статье «Линейный раскрой в Excel» решалась методом составления схем раскроев «вручную» по определенному алгоритму.

Вторая подзадача решалась автоматически с использованием надстройки Excel «Поиск решения» (Excel Solver).

В представленной далее программе генерация схем раскроев выполняется автоматически! Это существенно упрощает работу, защищает от ошибок и экономит время при значительном количестве типоразмеров деталей и схем раскроев.

Поиск плана раскроя осуществим тремя способами:

  1. В LibreOffice Calc с помощью «Решателя» (NLPSolver).
  2. В MS Office Excel посредством штатного «Поиска решения» (Excel Solver).
  3. В MS Office Excel при помощи надстройки OpenSolver.

Определимся с терминологией и ограничениями:

  1. Заготовки – это исходный материал в виде рулонов, прутков, полос, стержней и т.д. одинаковой длины.
  2. Детали – это элементы, которые необходимо получить, разрезав исходные заготовки на части.
  3. Схема раскроя – один из вариантов раскроя заготовки, при котором длина отхода всегда меньше длины самой короткой детали.
  4. План раскроя – это перечень схем раскроя с количеством их повторений.
  5. *Ширина реза равна нулю.

Пример.

Условие задачи:

Бумагоделательная машина производит рулоны (заготовки) шириной 5600 мм.

Нужно найти план раскроя для нарезки 13 типоразмеров конечных рулонов (деталей), используя минимальное количество исходных рулонов (заготовок).

Ширины конечных рулонов (размеры деталей) и их необходимое количество — в таблице слева.

Скриншот программы:

Область для генерации схем раскроев имеет размер 13×213 ячеек, что обусловлено исключительно условиями этой конкретной задачи, и может быть изменена и в ширину и в высоту в сторону увеличения или уменьшения по желанию пользователя с соответствующей корректировкой формул.

К сожалению, качественно показать на скриншоте всю область программы для раскроя затруднительно. Скачайте файлы по ссылке под рисунком для детального просмотра листов Calc и Excel с программами.

В ячейках с желтой заливкой – не защищенные от изменений формулы. Будьте внимательны! Изменять значения можно только в ячейках со светло-бирюзовой заливкой.

Скриншот Программа для раскроя в Calc

Прошу уважающих труд автора скачать файлы с программой после подписки на анонсы статей. Подписные окна расположены в конце статьи и наверху страницы.

Ссылки на скачивание файлов с программой:

Правила ввода исходных данных:

В светло-бирюзовые ячейки записываем исходные данные из условия задачи:

  • длину исходных рулонов – заготовок — Lз ;
  • длины конечных рулонов – деталей — Lдi ;
  • количество конечных рулонов – деталей — Nдi .

Длины деталей Lдi следует вписывать в порядке уменьшения размеров, слева – направо:

Внимание! Если типоразмеров деталей в другой вашей задаче будет меньше 13, например 10, то, чтобы не переделывать каждый раз поле схем раскроев, в первые 3 ячейки для длин деталей следует записать значения больше размера заготовки, а их количество указать равным нулю:

А > Lз

Решение:

После ввода всех исходных данных программа для раскроя автоматически сгенерирует 213 схем, решив, таким образом, первую подзадачу.

Действия пользователя при решении второй подзадачи – поиск оптимального плана раскроя — подробно описаны в статье о линейном раскрое в Excel. Эти действия полностью идентичны при работе со всеми тремя вышеназванными надстройками. Повторять их здесь нет смысла, так как, перейдя по ссылке, можно получить подробную, развернутую инструкцию.

Единственное, что следует дополнительно настроить:

  • Из окна «Решателя» нужно перейти в окно «Параметры» и выбрать в выпадающем списке «Механизма решателя»: LibreOffice CoinMP линейный решатель.
  • Там же в окне «Настройки» рекомендую проставить все галочки, так как переменные у нас в примере неотрицательные и целочисленные.

Ответ:

Минимум из 73 заготовок (исходных рулонов) можно изготовить все детали (конечные рулоны) с долей отходов всего 0,401%! В плане раскроя используется 12 схем раскроев. Время поиска решения – менее 10 секунд! (План раскроя показан выше на скриншоте программы.)

Ответ в Википедии: 73 заготовки; 0,401% отходов; в плане – 10 схем раскроев.

Итоги.

Существует несколько решений — планов раскроя с 13, 12, 11, 10 схемами раскроев, состоящих из 73 заготовок.

В таблице ниже представлены решения, найденные с использованием разных программ и надстроек. При расчетах в Excel и Calc использовались линейные механизмы поиска.

Таблица Excel Количество заготовок по планам и раскроям

Все программы справились с поставленной задачей – нашли раскройные планы, обеспечивающие минимальное количество отходов.

Для обеспечения работоспособности стандартного «Поиска решения» (Excel Solver) в Excel пришлось удалить из поиска 13 схем раскроев с большими длинами остатков.

Если для этой задачи применить прямолинейный «жадный» алгоритм, традиционно используемый на многих производствах (сначала режем широкие рулоны, а узкие – в конце, используя по возможности отходы), то потребуется 82 исходных рулона-заготовки. Более 11,3% материала уйдет в отходы. При этом в плане будет 15 схем раскроев.

В случае необходимости минимизировать количество схем раскроев в плане стоит применить нелинейные алгоритмы надстроек из списков механизмов поиска решения.

Не используя специальных программ с помощью свободной программы LibreOffice Calc или MS Excel можно эффективно решать весьма громоздкие задачи по линейному раскрою погонажных материалов.

Возможности программы для раскроя можно существенно расширить под соответствующие задачи, увеличив количество типоразмеров деталей и пространство для схем раскроя. Ограничивающими факторами расширения являются только размеры листа программы Calc или Excel, производительность процессора и … здравый смысл.

Статьи с близкой тематикой

Отзывы

14 комментариев на «Программа для раскроя в Excel и Calc»

    Андрей 12 Июн 2019 09:59

Здравствуйте. Работаю инженером-конструктором. Расчеты зубчатых и звездочек очень пригодились. Остальное осваиваю в своей практике. Большое Вам спасибо за труд.

Огромное Вам спасибо за то что делитесь своими знаниями. Благодаря вашим статьям многому научился.

Больше спасибо за труд и доходчивые объяснения. Я изучал линейное программирование, но мы пользовались программой POM fow Windows для решения задач на минимум и максимум. Тогда еще не было такого пакета в Excel. Применение расчета позволило мне съэкономить более 150 тыс. рублей при расчете бруса на дом, так как фирма сознательно завышала объем.

Спасибо Андрей, Юрий и Антон за теплые отзывы.

Антон, я рад за Вас. Не очень понял применение какой именно программы — POM fow Windows или описанных в статье помогло Вам сэкономить более 150 тыс. рублей,но это и не важно. Важно то, что Вы задумались, вспомнили линейное программирование и не дали Вас провести. Может быть в этом и заключается одно из главных предназначений высшего образования — не поверить, что-то вспомнить и разобраться. Вполне возможно, что фирма Вас и не обманывала, а просто по-привычке «пилила по „жадному алгоритму“», выбрасывая отходы.

Благодарю вас! Отличную работу проделали!

Александр, большое спасибо за очень грамотные расчеты, которые мне очень помогают. Проектирую оборудование для инвалидов: подъемники по лестничным маршам, эвакуаторы и т.п. С уважением, Николай.

Здравствуйте. В вашем примере при изменении длины первой детали с 2200 на 2250 длина остатка становится отрицательной (ячейка Q12=-30). При этом после «решения» этот вариант разбивки предлагается к исполнению. Что я делаю не так?

Здравствуйте. С файлом xlsx бывает возникают вопросы.

Скачайте файл ods и откройте в LibreOffice — там всё работает правильно.

Скачал LibreOffice, действительно работает. Дело в том, что в файле Excel в желтых ячейках отсутствуют формулы.

Теперь возникла другая проблема. В LibreOffice в вашем примере, если поставить длину исходной заготовки 12000 (вместо 5600), то в столбце R количество заготовок в решении есть и отрицательные, и дробные.

Увеличив длину исходной заготовки до 12 метров Вы получили задачу, в которой не 213 схем раскроя, а гораздо больше. Поле программы нужно расширять. Прочтите внимательно текст статьи.

Чтобы не получать дробные и отрицательные значения Вы должны выбрать механизм «Решателя», настроить его параметры и внимательно проверить адреса ячеек и соответствующие ограничения.

Чем более громоздкая задача, тем сложнее «Решателю» с ней справляться, бывает выдает ошибки или вовсе не находит решение. Задачи линейного программирования не просты.

Интересует возможность адаптации Вашего инструмента линейного раскроя для нашего предприятия.

Линейный раскрой металла excel

Что это значит подскажите пожалуйста

Что это значит подскажите пожалуйста XoXa

Что это значит подскажите пожалуйста Автор - XoXa
Дата добавления - 01.01.2021 в 22:51

MCH,
Здравствуйте Михаил
Меня зовут Денис
Я работаю на заводе металлических конструкций, занимаюсь выдачей в работу деталировки.
Недавно нашел Вашу таблицу в демо режиме и она мне очень зашла.
Интересна цена полной версии с учетом небольших правок под наши нужды, а именно:

1) графа "размер" в таблице "нужно" должна вмещать больше 1000м
2) графа "кол-во" в таблице "нужно" должна вмещать до 10 000 шт.
3) Изменить пункты меню раздела "нужно" - № детали, размер, Кол-во. Остальное можно скрыть за ненадобностью.
4) Изменить форму вывода "Решение"

Сейчас вид имеет следующий вид "=(1000+3 - 8 шт.) + (102+3) + (101+3) + [100]"
- 11 деталей по 1000 мм + у 3 мм ширина реза + 100 мм торцовка.

И вот еще вопрос. Сегодня писал раскрои:
д1 5000 мм-4шт, д2 - 420 мм - 4 шт.
Итого раскрой получился:
Раскрой 1 хлыста 5000 + 5000 + 420 + 420
Раскрой 2 хлыста 5000 + 5000 + 420 + 420
У программы остаток явно больше 1 метра и она собственно так и писала, но маленькие детальки решила раскидать по всех хлыстам нежели постараться уложить все в один.
Я читал на форуме, что есть вроде какой то жадный режим.
Просто цена метала иногда до безобразия велика, а все по 10 раз перепроверять за программой нету никакого желания.

И вот еще вопрос. Сегодня писал раскрои:
д1 5000 мм-4шт, д2 - 420 мм - 4 шт.
Итого раскрой получился:
Раскрой 1 хлыста 5000 + 5000 + 420 + 420
Раскрой 2 хлыста 5000 + 5000 + 420 + 420
У программы остаток явно больше 1 метра и она собственно так и писала, но маленькие детальки решила раскидать по всех хлыстам нежели постараться уложить все в один.
Я читал на форуме, что есть вроде какой то жадный режим.
Просто цена метала иногда до безобразия велика, а все по 10 раз перепроверять за программой нету никакого желания. admin@st-2ru

И вот еще вопрос. Сегодня писал раскрои:
д1 5000 мм-4шт, д2 - 420 мм - 4 шт.
Итого раскрой получился:
Раскрой 1 хлыста 5000 + 5000 + 420 + 420
Раскрой 2 хлыста 5000 + 5000 + 420 + 420
У программы остаток явно больше 1 метра и она собственно так и писала, но маленькие детальки решила раскидать по всех хлыстам нежели постараться уложить все в один.
Я читал на форуме, что есть вроде какой то жадный режим.
Просто цена метала иногда до безобразия велика, а все по 10 раз перепроверять за программой нету никакого желания. Автор - admin@st-2ru
Дата добавления - 06.02.2021 в 02:30

= Мир MS Excel/Линейный раскрой - Мир MS Excel

Войти через uID

Задачу линейного раскроя можно решать разными способами:
1. Полный перебор, как правило, не возможно реализовать в реальных условиях.
2. Самый эффективный способ - целочисленное линейное программирование (метод Гомори, как целочисленный вариант симплекс-метода). В качестве инструмента можно использовать Solver из MS Excel. Но здесь есть ряд ограничений - необходимо найти все варианты сложения исходных деталей, не превышающих размер заготовок (а вариантов может быть несколько тысяч или сотен тысяч). Ограничение Solver'a - 200 изменяемых ячеек.
3. "Жадный" алгоритм. У данного алгоритма есть вариации, основное достоинство - высокая скорость. Применим для быстрой оценки раскроя, либо когда скорость важнее оптимизации.
4. Решать как частный случай задачи о рюкзаке (сумма подмножеств) и выбор наилучшего варианта из имеющихся.
5. Про генетический алгоритм ничего сказать не могу, т.к. не изучал его.

Реализовал собственный алгоритм линейного раскроя в Excel, который основан на решении задачи о рюкзаке (сумма подмножеств) методом целочисленного динамического программирования. Производится генерация различных вариантов раскроя в зависимости от сортировки исходных деталей и заготовок и выбор наилучшего решения.
К достоинству можно отнести - достаточно эффективный результат по сравнению с "жадным" алгоритмом, а также при сравнении с результатом других программ линейного раскроя.

Дополнительно реализовал решение с помощью линейного программирования.
Вначале производится генерация рациональных схем раскроя, затем симплекс-методом находим решение системы, данное решение является оптимальным (использование наименьшего количества заготовок). Далее сводим задачу к максимизации полезного остатка.

Domo -версию программы можно скачать здесь или здесь, она полностью функциональна, доступен расчет с помощью динамического программирования (DP).
Расчет с помощью линейного программирования (LP) отключен.
Также отключена возможность составления и экспорта отчетов.

Можно использовать до 20 различных размеров заготовок и до 90 различных размеров деталей.
Есть возможность задать ширину реза, размер торцевой кромки, размер полезного (делового) остатка, возможность раскраивать в два профиля (если это требуется)

Можно убедиться в эффективности алгоритма раскроя в сравнении с другими программами.
Если будет заинтересованность в алгоритме или потребуется адаптация отчета под ваши требования, то можете обратиться ко мне в личку.

PPS:
Если программа по раскрою окажется полезной и возникнет непреодолимое желания меня отблагодарить, то не откажусь от любого доната
ЯД: 410012329135704

UPDATE, апрель 2022
Выкладываю небольшой калькулятор с примерами, который работает в 3х режимах (быстро, медленно и очень медленно)
т.к. используется внешняя dll, то будет работать только в Excel 32бит

UPDATE, апрель 2022
Выкладываю небольшой калькулятор с примерами, который работает в 3х режимах (быстро, медленно и очень медленно)
т.к. используется внешняя dll, то будет работать только в Excel 32бит MCH

UPDATE, апрель 2022
Выкладываю небольшой калькулятор с примерами, который работает в 3х режимах (быстро, медленно и очень медленно)
т.к. используется внешняя dll, то будет работать только в Excel 32бит Автор - MCH
Дата добавления - 03.02.2016 в 01:49

Практический семинар Tekla Structures 2017

Линейный раскрой хлыстов металла в Tekla Structures

Линейный раскрой хлыстов металла в Tekla Structures

Здравствуйте.
Подскажите пожалуйста, если кто-нибудь сталкивался с подобной проблемой и решил её каким-либо образом.
Требуется программа для линейного раскроя стального проката (Двутавры, швеллера, тюбинг). Стандартные решения оконщиков не подходят по одной причине - они профиля не стыкуют. В моём случае требуется кроме размещения деталей на хлысте 12 (11,7м) решить задачу стыковки деловых обрезков, а если точнее в принципе иметь в алгоритме расчета раскроя возможность стыковки профилей с определенными условиям. Так например какие-то заготовки нельзя стыковать вообще, а на каких-то может присутствовать только 1 стык, на других 2 стыка.

Вообще в техтране можно делать если указать ширину листа равной ширине проката. И он понимает файлы из теклы сразу в NC. Очень удобно.
Однако это регламентированный прием.
Обещают что в новых версиях техтрана будет и хлыстовой раскрой.

Точно есть в программе винбар. Но сам не пользовался.

Могу предложить мой вариант решения вопроса.
По поводу стыковки, готов выпустить дополнение. Нужно подробнее задачу сформулировать.

Сами такие же - вот и смеемся

Надо бы чего-то на си шарпе городить уже, чтобы из модели дергало профили, да раскидывало на имеющиеся длины
Кто смелый?

Открой чертеж общего вида\запусти велдап\нажми тут\готово
На карте показаны как разместить детали на хлысте. Указаны номер детали и длинна.
Пример работы скрипта в пдф тут же

И что с этой портянкой дальше делать?

А у нас тут производство, а у нас тут оборудавание разного куча, а у нас остатков разных накопилась гора, а ме резы совместить хотим, а мы на разные заказы балку разорвем.
И тд. и тп. и еще много всяких идей.

Ну деловой отход учесть тоже можно. Но как правило заказчик хочет знать реальный раскрой (то есть что раскрой не выше это суммы ну ни как)
А то что на заводе накопилось куча остатков так это заказчикам наплевать. Хороший вопрос как эти остатки использовать так как у вас скорее всего нет системы складирования и учета этих отходов. А ходить и искать самостоятельно кусочки не факт что целесообразно в промышленных масштабах.
Каждый инструмент имеет свою область применения. Вообще конечно можно в плагине учесть и деловой отход но тогда надо чтобы у вас была система складирования, штрихкодирования что в общем все только усложнит.
Опять же весть проект допустим 1000 тонн не раскроить на остатках они не будут влиять на результат.
Руками сделать такую карту раскроя не так то просто.

Аааа Я кажется начал понимать, спасибо что про "заказчика" упомянули .
з.ы. Что же вы сразу волшебное слово не сказали, все бы ясно сразу стало.

Читайте также: