Оптимальный раскрой материала с минимальным остатком. Линейный раскрой в Excel

Программа предназначена для оптимизации раскроя профиля и других длинномерных материалов (брус, бревно, труба, подоконник).
Использован алгоритм "плотной укладки", то есть взятое изделие укладывается на самый короткий остаток заготовки, на который она помещается. Если никуда не помещается, берется новая заготовка. Задачей оптимизации является нахождение последовательности изделий, при которой будет использовано меньше заготовок и будет больше длина деловых обрезков. На первом такте, изделия размещаются на хлыстах в случайном порядке. Возникает "начальная популяция". В процессе решения, популяция мутирует и размножается, неудачные экземпляры погибают, а лучшие продолжают эволюцию. Всё, как в животном и растительном мире + искусственный отбор.

Живое демо на сайте

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

Преимущества

  • Окнософт:cutting обеспечивает карты распила высокого качества. Многочисленные внедрения подтверждают реальный коэффициент обрези не более 1% при оптимизации партий от 30 контуров (~120 отрезков)
  • Для чтения исходных данных и записи результатов раскроя, программа использует простые форматы текстовых файлов, что упрощает интеграцию с учетными системами, внедренными у заказчика
  • При необходимости, раскрой может выполняться под Linux или OS X в браузере или Node.js с передачей параметров через url, web-socket или объекты javascript

Алгоритмы линейного оптимизатора

В окнософт:каттинге использован генетический алгоритм. Суть его вот в чем:
Назовем каждое распределение изделий по хлыстам решением. Определим целевую функцию, позволяющую сравнивать качество решений. Сформируем несколько произвольных решений, назовем их поколением. Определим правила получения следующего поколения. Экземпляры с лучшей целевой функцией передают большую часть своего "генофонда", это наш "искусственный отбор". Теперь остается предоставить систему самой себе, пусть мутирует и оптимизирует результаты раскроя
В процессе разработки испытывался метод "Монте-Карло", когда наши "экземпляры" являются случайными и не зависят друг от друга и "Муравьиные алгоритмы"(ACO- ant colony optimisation). Все методы показали себя вполне работоспособным, но генетический алгоритм оказался чуть более эффективным

Варианты поставки

Есть два варианта поставки модуля раскроя Окнософт:cutting - в составе комплексного решения Управление позаказным производствм и в виде отдельного исполняемого файла. Взаимодействие с раскройной программой при первом сценарии, полностью скрыто от пользователя. Оператор работает со стандартными документами 1С:

  • На основании заказов покупателей формируется план производства
  • На основании плана - сменные задания со списком продукции и необходимых материалов
  • Внутри задания на производство происходит оптимизация раскроя
  • В процессе оптимизации, программа забирает из незавершенного производства деловую обрезь и помещает в ячеистый склад вновь образовавшиеся деловые обрезки
  • Сменное задание умеет печатать бланки раскроя при ручном производстве или формировать файлы для станков с ЧПУ
  • Так же, из сменного задания печатаются этикетки для отрезаемых изделий и схемы раскладки в телеги и пирамиды
  • На основании заданий на производство формируются требования - накладные для передачи материалов в цех с учетом потребности и нормоупаковок

Программный интерфейс (API линейного раскроя)

Файл входных данных - setup.ini, помещается в папку с исполняемым файлом.
Файлы выходных данных - result.txt, resultproduct.txt и resultstick.txt - формируются в той же папке.
Скачать файлы с демо-данными Окнософт:cutting можно по ссылке в конце страницы. В файлх используются следующие теги:

  • Outputvariant - структура выходного файла файла. Возможные значения: tab, oknosoft, по умолчанию oknosoft
    • В варианте "oknosoft", формируются файлы resultproduct.txt и resultstick.txt с информацией о размещении изделий на заготовках и образовавшейся обрези
    • В варианте "tab" выводятся пять значений, разделенных символами "tab": длина изделия, номер хлыста, длина хлыста, номер реза и остаток заготовки
  • Algorithm - используемый алгоритм. Возможные значения: random, conservative, genetic, по умолчанию genetic
    • Random- случайный перебор вариантов
    • Conservative- экземпляры следующей итерации происходят от одного "родителя"
    • Genetic- от двух родителей
  • Variation - изменчивость, параметр алгоритмов "conservative" и "genetic". Чем выше, тем меньше потомство "похоже" на родителей. По умолчанию 1.
  • Generations - количество итераций алгоритма, по умолчанию 40000
  • Persons - количество "экземпляров" в "популяции", количество решений используемых в одной итерации. В алгоритме "random" просто делается generations*persons итераций с одним экземпляром(решением)
  • KnifeWidth - ширина пилы
  • StickLength - длина нового хлыста
  • Products - длина изделия
  • Scraps - длина обрезка, используемого в раскрое
  • Wrongsnipmin – минимальная длина «плохого» образка
  • Wrongsnipmax – максимальная длина «плохого» обрезка
    В результатах оптимизации не будет обрезков с длиной между Wrongsnipmin и Wrongsnipmax

Парный раскрой

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

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

Раскрой большого числа изделий

С одной стороны, для достижения высокого качества оптимизации, на вход программы должно поступать значительное количество изделий разной длины, чтобы оптимизатору было "что сортировать". С другой, при очень больших партиях, снижается вероятность нахождения максимума при фиксированном числе итераций перебора. Эксперименты показали, что оптимальной является партия в 60 – 120 заготовок (что соответствует такту производства 30-60 изделий при парном раскрое). Если необходимо оптимизировать более 120 заготовок, лучших результатов можно добиться, разделив задачу на N частей и выполнив последовательные оптимизации для каждой части. Обработка формирования пачек заданий на производство умеет группировать продукции по видам профиля и подбирать в сменные задания изделия с максимальной дисперсией, избавляя оператора от рутинной работы по составлению производственных документов

Скачать примеры раскроя и документацию

  • Демо карт одинарного и двойного распила: 60.01 Листы раскроя
  • Документация и примеры файлов:

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

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

Определение рациональных способов раскроя материла.

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

k - индекс вида заготовки,

i

a ik k , полученных при раскрое единицы материала способом i .

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

Способ v раскроя называется рациональным (парето-оптимальным), если для любого другого способа раскроя i из соотношений , следуют соотношения ,

Пример

Требуется определить все рациональные способы раскроя деревянного бруса длиной 600 см на заготовки длиной 500, 300 и 200 см.


Способы раскроя 500 см 300 см 200 см Отходы
-
- -
- -
-

Определение интенсивности использования рациональных способов раскроя.

Обозначения:

j - индекс материала,

k - индекс вида заготовки,

i - индекс способа раскроя единицы материала,

a jik - количество (целое число) заготовок вида k , полученных при раскрое единицы j - го материала способом i ;

b k - число заготовок вида k в комплекте, поставляемом заказчику;



d j - количество материала j -го вида;

x ji - количество единиц j -го материала, раскраиваемых по i -му способу (интенсивность использования способа раскроя);

с ji - величина отхода, полученного при раскрое единицы j -го материала по i -му способу;

y - число комплектов заготовок различного типа, поставляемом заказчику.

Модель A раскроя с минимальным расходом материалов.

(1)

(2)

(1) - целевая функция - минимум количества используемых материалов;

(2) - система ограничений, определяющих количество заготовок, необходимое для выполнения заказа;

(3) - условия неотрицательности переменных.

Модель позволяет обеспечить требуемое количество заготовок каждого типа с минимальными затратами материала. Специфическими для данной области приложения модели линейного программирования являются ограничения вида (2).

Пример

Переменная Способ раскроя 500 см 300 см 200 см Отходы
x 1
x 2
x 3
x 4
x 5
x 6

x 1-4 - 1-й вид материала длиной 600 см

x 5-6 - 2-1 вид материала длиной 500 см

Получаем, что

Округление всегда делается в большую сторону.

Модель Б раскроя с минимальными отходами

(4)

(5)

Алгоритм оптимального раскроя материалов для автоматизированного производства

Павел Бунаков

Задача рационального раскроя плитных материалов на исходные заготовки прямоугольной формы имеет большое практическое значение при проектировании изделий корпусной мебели. По своему характеру она является задачей дискретно-непрерывной структуры, относящейся к классу так называемых NP-полных задач, нахождение точного решения которых возможно только методом полного перебора всех возможных вариантов.

Математическая постановка задачи заключается в размещении плоских геометрических объектов (исходный набор заготовок) на листах заданных размеров (полноформатных листах) с минимальными отходами материала и учетом существующих ограничений. Ограничения первого типа - геометрические - являются классическими и определяются условиями принадлежности заготовок к области размещения, их взаимного непересечения, а также изотропным или анизотропным характером среды размещения (наличием или отсутствием направленного рисунка на поверхности объектов - текстуры).

Условия автоматизированного производства расширяют этот список ограничениями второго типа - технологическими, которые определяются характеристиками раскройного оборудования и организационно-технологическими особенностями производства:

  • максимальная и минимальная ширина отрезаемой полосы;
  • необходимость и размер предварительной обрезки края листа;
  • ресурс непрерывной работы режущего инструмента;
  • ширина режущей части инструмента;
  • максимальная длина сквозного реза;
  • вектор первых резов (продольный или поперечный раскрой);
  • количество одновременно раскраиваемых листов (размер пакета);
  • максимальное количество поворотов пакета;
  • минимальное расстояние между пилами в многопильных станках;
  • направление укладки заготовок на листе;
  • операционные припуски на сторону заготовки для последующей обработки.

Как видно, количественно технологические ограничения значительно превосходят геометрические. Кроме того, они могут варьироваться в широком диапазоне в зависимости от специфики конкретного предприятия.

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

где S i - площадь i -го обрезка материала, технологические критерии оптимизации имеют множественный и нередко эмпирический характер. В общем виде их можно объединить понятием «трудоемкость физической реализации раскроя», которая включает такие параметры, как общее количество и общая длина выполняемых резов, количество карт раскроя, количество поворотов пакета листов и переустановок ограничительных упоров на станке, геометрические параметры получаемых обрезков.

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

Рассмотрим функционирование алгоритма, основанного на переходе от площадного раскроя к линейному раскрою, с элементами эвристик, полученных экспериментальным путем.

Как известно, задача оптимального линейного раскроя имеет точное математическое решение, геометрическая интерпретация которого показана на рис. 1 для случая, когда мощность исходного множества заготовок равна двум. Оси системы координат размечаются с шагом, кратным типоразмерам заготовок (N и K ), до значения, не превышающего линейного размера области размещения (L ). Таким образом, на плоскости генерируется сетка, каждый узел которой соответствует некоторому варианту раскроя. Отрезок, соединяющий точки на осях координат, значения которых равны размеру области размещения, является границей подмножества узлов, соответствующих реальным вариантам раскроя (расположенных ниже границы). Тот из них, который находится ближе других к границе, и будет определять вариант раскроя, оптимальный по количеству отходов материала. Для ускорения поиска рассматриваются только те ячейки сетки, которые пересекает построенный отрезок (на рис. 1 они заштрихованы).

Единственным критерием оптимизации при линейном раскрое является минимизация отходов, поэтому получаемые варианты раскроя априорно являются технологичными.

При увеличении количества типоразмеров заготовок плоскость заменяется N -мерным пространством, а отрезок - N -мерной плоскостью. Для быстрого нахождения оптимального варианта раскроя в данном случае заменим задачу поиска точки, ближайшей к заданной плоскости, в N -мерном пространстве на две более простые задачи:

  • нахождение оптимального варианта раскроя в двумерной постановке, каждая из которых соответствует проекции многомерной сетки на одну из координатных плоскостей (количество таких задач равно C 2 N , где N - количество типоразмеров заготовок);
  • нахождение минимального элемента в полученном векторе решений.

Эксперименты, проведенные с данными, которые соответствуют реальным мебельным изделиям, выпускаемым на ряде предприятий, показали, что эта замена обеспечивает приемлемые временны е показатели, причем зависимость времени счета от количества типоразмеров заготовок носит экспоненциальный характер (рис. 2).

Исходя из этого сделан вывод о возможности перехода от площадного раскроя к суперпозиции линейных раскроев. Соответствующий алгоритм является рекурсивным и реализуется за три шага.

На первом шаге из исходного множества M формируется подмножество M k (δ) , объединяющее заготовки, главный линейный размер которых находится в диапазоне

L max (1- δ),

где L max - максимальный размер заготовки, 0 ≤ δ < 1 - допустимый разброс размеров. Под главным линейным размером понимается тот размер заготовки, который соответствует текущему направлению текстуры. При отсутствии или игнорировании направления текстуры он определяется как максимальное значение, выбранное из длины и ширины заготовки.

Величина получаемого при раскрое КИМ зависит от выбранного значения коэффициента δ:K ИМ = F (δ) . Теоретически это означает необходимость перебора вариантов формирования подмножества M k (δ) для всего возможного диапазона значений δ. Это неизбежно приведет к недопустимому увеличению времени раскроя. Экспериментальные исследования, проведенные на ряде мебельных предприятий, позволили сделать три вывода (рис. 3):

  • наибольшие изменения значений F (δ) приходятся на диапазон 0,05 ≤ d ≤ 0,2;
  • в указанном диапазоне изменение функции F (δ) носит плавный характер;
  • при значении δ > 0,2 величина КИМ практически не зависит от дальнейшего его увеличения.

На основании этих выводов при формировании M k (δ) берется фиксированное количество значений δ, что позволяет добиться приемлемого времени перебора вариантов раскроя. Практика показала, что без существенной потери качества раскроя можно варьировать значение δ в указанном диапазоне с шагом от 0,01 до 0,2.

На втором шаге заготовки из подмножества M k (δ) раскраиваются по алгоритму линейного раскроя. Это означает, что, во-первых, получается локально оптимальная по значению КИМ карта раскроя полосы для выбранного значения δ, а во-вторых, она является технологичной. Процедура формирования подмножества M k (δ) и линейный раскрой полосы выполняются для всех значений δ, после чего выбирается оптимальная карта раскроя, которой соответствует оптимальное подмножество M opt k .

Остаток материала в полосе для оптимальной карты раскроя, так же как и его остатки при размещении любого элемента подмножества M opt k , соответствующего значению δ ≠ 0, образует множество псевдополноформатных листов. Для каждого элемента этого множества рекурсивно повторяются рассмотренные выше операции. Это означает, что при выполнении каждой пары шагов мощность исходного множества заготовок уменьшается не только со стороны более «крупных» его элементов, но и со стороны более «мелких».

После раскроя всех псевдополноформатных листов проверяется мощность множества

M \ M opt k \ M i k ,

где M i k - подмножество заготовок, размещенных на остатках материала, полученного при формировании k -й полосы. Если она имеет ненулевое значение, то по отношению к указанному множеству вновь выполняются вышеописанные шаги, то есть формируется подмножество M k-1 (δ), из которого выбирается M k+1 opt .

Таким образом, в результате выполнения указанных операций получается множество полос S , на которых оптимальным образом размещены все исходные заготовки: .

На третьем шаге элементы множества S рассматриваются в качестве исходных заготовок для линейного раскроя полноформатных листов.

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

Для сравнительной оценки значений КИМ, получаемых при использовании традиционного алгоритма площадного раскроя и предлагаемого алгоритма, была произведена случайная выборка из 50 мебельных ансамблей, выпускаемых различными предприятиями. Для каждого ансамбля были выполнены два варианта раскроя. Результаты эксперимента представлены на рис. 4. Из него видно, что в большинстве случаев предлагаемый алгоритм (график красного цвета) дает большее значение КИМ. Таким образом, раскрой площадных материалов по рассмотренному алгоритму подходит не только для пильных центров, но и для обычных форматно-раскройных станков.

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

Программа оптимального раскроя линейных заготовок на детали

Руководство пользователя

Черкассы, 2003

1. Введение 3

2. Термины и определения 3

3. Ограничения ознакомительной версии 4

4. Главная форма программы 5

5. Настройка параметров программы 6

5.1. Наименование материала 7

5.2. Ширина режущей части 7

5.3. Минимальная длина маркируемого остатка 7

5.4. Наименование единиц измерения 7

5.5. Уровень расчета 7

6. Подготовка данных для расчета 8

7. Склад материалов 9

8. Выполнение расчета 10

9. Результаты раскроя 10

9.1. Маркировка остатков 12

9.2. Восстановление раскроев текущего сеанса 13

10. Буфер обмена 13

11. Приложение 14

1. Введение

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

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

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

Программа функционирует в среде Windows 9x/NT/2000/XP, не требует инсталляции и занимает около 3 Мбайт дискового пространства.

Особых требований к аппаратному обеспечению у программы нет.

В Cutting Line реализовано:

    задание произвольного количества заготовок и деталей для раскроя;

    задание разных режимов работы программы;

    задание до 16 видов материала;

    маркировка остатков;

    ведение склада материала и остатков;

    расчет суммарной площади деталей, длины пропила, площадей остатков и т.д.;

    сохранение и восстановление заданных заготовок и деталей как спецификации

Украина, г. Черкассы, тел. (+380 472) 420998

E-mail: george@

Homepage:

2. Термины и определения

Заготовки, исходный материал - материал, который нужно раскроить.

Деталь – часть заготовки, которую нужно раскроить.

Материал – наименование и цвет материала заготовок или деталей.

Спецификация – совокупная поименованная (имя файла) информация о заготовках и деталях.

Раскрой – результат работы программы.

Остаток – промаркированная пользователем часть раскроенной заготовки, не занятой деталями.

Количество копий – количество одинаковых заготовок, на которых расположены одинаковые детали по размеру и местоположению.

Внимание.

    В программе допускается задавать от 0 до 2 знаков после запятой в числовых полях размеров заготовок и деталей и ширины режущей части. Программа сама определит максимальное количество дробных знаков после запятой и произведет выдачу результатов с размерами, учитывающими это количество дробных знаков. Например. Пусть все размеры заготовок и деталей целые числа, а ширина режущей части задана как 4,5. При выдаче результатов раскроя (диаграммы, печать и т.д.) ВСЕ размеры, допускающие не целочисленное представление, будут представлены с одним знаком после запятой.

    Программа всегда запоминает последний введенный материал (наименование, цвет) и при последующем вводе материала предлагает именно этот материал.

3. Ограничения ознакомительной версии

Ознакомительная версия имеет следующие ограничения:

    разрешается формировать не более 3 строк в таблице заготовок с количеством заготовок каждого типоразмера не более 3;

    разрешается формировать не более 10 строк в таблице деталей с количеством деталей каждого типоразмера не более 10;

    количество запусков программы ограничено 30.

Для снятия этих ограничений программу необходимо зарегистрировать (перевести в рабочий режим эксплуатации). Под регистрацией понимается установка рабочего варианта программы на 1 компьютере.

Для регистрации программы необходимо связаться с автором программы или его представителями.

4. Главная форма программы

При старте программы возникает форма, изображенная на рисунке.

Главная форма программы состоит из нескольких секций. Вверху располагается строка меню, пункты которого обеспечивают разные режимы работы программы.

Ниже находится панель кнопок, частично дублирующих основные функции главного меню.

На панели отображены следующие кнопки:

При нажатии на эту кнопку появляется следующая форма:

Некоторые из этих кнопок могут быть недоступны в зависимости от режима работы программы.

Ниже панели кнопок находятся две сеточные таблицы для задания информации о раскраиваемых заготовках и деталях (см. ниже).

Ниже таблиц находится панель индикации выполнения расчета, на которой схематично показывается динамика выполнения расчета.

В нижней части окна находятся 2 информационные панели. В левой панели выдается информация о текущем режиме работы, а в правой - текущее время расчета.

Можно сортировать строки в таблицах, нажимая кнопкой мыши на заголовках таблиц «Материал», «Длина» и «Количество».

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

5. Настройка параметров программы

Для того, чтобы задать параметры расчета, нажмите на кнопку или активировать пункт меню главной формы «Настройки». Возникает окно с параметрами настройки программы. В этом окне можно изменить (задать):

    наименование используемых материалов;

    ширину режущей части;

    минимальную длину маркируемого остатка;

    наименование единиц измерения;

    уровень расчета.

5.1. Наименование материала

В таблице представлено 16 видов материала (наименование и цвет), с которыми работает программа. Можно задать свои наименования каждого материала, вводя нужное наименование в нужную строку таблицы.

5.2. Ширина режущей части

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

5.3. Минимальная длина маркируемого остатка

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

5.4. Наименование единиц измерения

Задается наименование единиц измерения (мм., см., дюйм и т.д.).

Наименование единиц измерения отображается на диаграммах раскроя, отчетах и т.д.

5.5. Уровень расчета

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

Под качеством раскроя понимается количество отходов (в процентах) на заготовках раскроя.

Cutting Line позволяет выбрать один из трех уровней расчета.

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

    Штатный . Основной параметр уровня расчета. Обеспечиваются оптимальные соотношения параметров скорости и качества раскроя.

    Сложный . Существенно увеличивается время раскроя при достижении наиболее высоких показателей качества раскроя.

Внимание. Скорость расчета раскроя зависит от количества заданных заготовок и деталей. Так, например, можно задать 1000 заготовок одного типоразмера, заведомо зная, что детали этого типоразмера разместятся на 1-2 заготовках. Программа будет считать достаточно долго, так как на каждую заготовку раскроя отводится определенный квант времени. Таким образом, пользователь должен разумно подбирать количество раскраиваемых заготовок.

6. Подготовка данных для расчета

Для проведения расчета пользователь должен задать информацию о заготовках и деталях раскроя. Раскрой производится для заготовок и деталей одинакового материала.

Основные параметры заготовок и деталей задаются в 2-х таблицах главной формы программы. В левой таблице задается информация о заготовках (исходном материале), а в правой таблице - о деталях.

Для обеих таблиц задаются:

    материал;

  • количество;

    примечание (произвольная текстовая информация).

Для обеих таблиц материал выбирается из выпадающего списка, возникающего при нажатии кнопки мыши на нужной строке.

Размеры задаются в колонке «Длина», количество заготовок или деталей задаются в колонке «Кол-во». В колонке «Примечание» задается любая информация.

В Cutting Line можно вводить информацию о заготовках двумя способами.

Способ №1 предполагает ввод данных непосредственно в таблицу заготовок.

Способ №2 позволяет загружать данные в таблицу заготовок со склада (см. п. 7.).

Для обеих таблиц выделение группы строк (темный фон самой левой колонки таблицы) производится передвижением указателя мыши с зажатой правой кнопкой по самой левой колонке таблицы.

Для обеих таблиц можно активизировать дополнительное выпадающее меню по нажатию правой кнопки мыши.

Внимание. Все изменения, которые происходят по командам контекстного меню, действуют на все выделенные строки соответствующей таблицы.

Общими пунктами меню для обеих таблиц являются:

    Очистить таблицу - вся информация из соответствующей таблицы уничтожается.

    Удалить отмеченные строки

    Копировать в буфер обмена – выделенные строки копируются в буфер обмена (см. п. 10).

    Добавить из буфера обмена - данные из буфера обмена добавляются в конец соответствующей таблицы.

Для таблицы заготовок добавляются 2 пункта меню:

    Удалить раскроенные заготовки - удаляются раскроенные (в последнем расчете) заготовки.

    Перенести материал на склад - выделенные строки материала переносятся на склад.

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


7. Склад материалов

В программе Cutting Line реализован виртуальный склад материалов. Используя его, пользователь может заносить информацию о поступающем на склад материале, работать с сохраненными остатками, контролировать учет и использовать остатки в последующих раскроях, тем самым существенно снижая процент отходов.

При нажатии кнопки на главной форме программы или, выбрав пункт меню «Файл» - «Склад материалов», появляется форма «Склад материалов».

В правой части формы находится 16 типов материала, а в левой таблице отображается информация о заготовках и остатках в зависимости от выбранного материала.

Навигация по материалу в левой части формы (выбор материала) производится перемещением указателя мыши на нужный материал.

Данные в таблицу можно заносить также как и при формировании заготовок для раскроя. Этот режим можно использовать при регистрации вновь поступивших на склад заготовок.

Кроме того, таблица может быть заполнена еще двумя способами.

В верхней части таблицы расположены кнопки:

Выделение группы строк (темный фон самой левой колонки таблицы) производится передвижением указателя мыши с зажатой правой кнопкой по самой левой колонке таблицы.

Для дискретного выделения группы строк при перемещении мыши также необходимо нажать клавишу «Ctrl».

Для таблицы склада можно активизировать дополнительное выпадающее меню по нажатию правой кнопки мыши.

Доступны следующие пункты меню:

    Удалить все заготовки выбранного материала - все заготовки/остатки выбранного материала уничтожаются.

    Удалить отмеченные строки - выделенные строки удаляются.

    Печать выбранного материал - печать информации о материале/остатках выбранного материала.

    Копировать в буфер обмена – выделенные строки копируются в буфер обмена.

    Добавить из буфера обмена - данные из буфера обмена добавляются в конец таблицы.

8. Выполнение расчета

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

Динамика расчета будет отображаться на индикаторе в виде движущейся полосы, расположенной ниже таблиц заготовок и деталей. Чтобы остановить расчет, нажмите кнопку.

Текущее время расчета отображается в правой части строки состояния.

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

9. Результаты раскроя

Результаты раскроя выводятся на экран автоматически после окончания расчета.

Можно просмотреть результаты последнего раскроя, используя кнопку , или пункт «Результаты раскроя» в меню «Файл», или нажимая клавишу «F3» на главной форме программы.

При активизации просмотра раскроя появляется форма, на которой представлены диаграммы раскроя.

Форма состоит из трех панелей.

Верхняя панель – панель управляющих кнопок и окна для заголовка отчета по результатам раскроя.

На панели расположены следующие кнопки:

Ниже расположено окно с результатами раскроя.

Здесь изображены заготовки с расположенными на них деталями и информация о каждой раскроенной заготовке.

В самой нижней части окна расположена информационная панель.

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

9.1. Маркировка остатков

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

Маркировка производится простым щелчком левой кнопки мыши на свободном месте раскроенной заготовки.

При этом остаток маркируется буквой «О». Повторный щелчок на выделенном остатке уничтожает его.

Внимание.

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

2. При маркировке остатков на заготовках с тиражом больше 1 тиражируются и остатки. При уничтожении остатков на заготовках с количеством копий больше 1 уничтожаются соответствующие остатки на всех заготовках этой копии.

3. Остатки будут сохранены столько раз, сколько будет нажата кнопка "Сохранить все остатки на складе"!

9.2. Восстановление раскроев текущего сеанса

Все раскрои текущего сеанса работы автоматически сохраняются и могут быть восстановлены. Для восстановления нужного раскроя необходимо нажать кнопку . Появляется следующая форма.

Здесь пользователь может выбрать нужный раскрой и нажать кнопку «Восстановить». Сохраненный раскрой восстанавливается в окне просмотра результатов раскроя.

Внимание.

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

    При восстановлении раскроя таблица заготовок и деталей не изменяется.

10.Буфер обмена

С помощью буфера обмена программы можно импортировать данные из таблиц материла, деталей и склада в другие программы или экспортировать их из других

программ, поддерживающих стандартный буфер обмена Windows, например, Excel, Word и т.д. Эта операция может быть полезна при подготовке данных для расчета в других программах или при тиражировании одинаковых строк таблицы.

Копировать информацию в буфер обмена из таблиц материала, деталей и склада можно по команде контекстного меню соответствующей таблицы «Копировать в буфер обмена».

Внимание. В буфер обмена копируется информация из отмеченных (выделенных) строк таблицы.

Добавлять информацию из буфера обмена в таблицы материала, деталей и склада можно по команде контекстного меню соответствующей таблицы «Добавить из буфера обмена»

Внимание. Информация из буфера обмена всегда добавляется в конец таблицы.

Структура информации буфера обмена для таблиц заготовок, деталей и склада:

    Наименование материала. Наименование материала должно строго соответствовать наименованию материала в таблице «Наименование материала» формы «Настройки».

    Символ табуляции.

    Длина заготовки/детали.

    Символ табуляции.

    Количество.

    Символ табуляции.

    Примечание.

Примеры представления данных в буфере обмена таблиц материала и склада:

Например, в Excel данные в буфере обмена могут быть представлены так:

В блокноте данные могут быть представлены так:

Внимание. При ошибке представления данных в буфере обмена, операция добавления не выполняется.

11.Приложение

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

  • Менеджмент учебник санкт-петербург издательство «союз»

    Учебник

    ... на перспективы развития предприятия. На уровне управления цехом линейное руководство ориентируется преимущественно на ... заготовок Б. Всего получается 300 заготовок А и 1400 заготовок Б. А куда же исчезло 100 заготовок Б? Ведь при оптимальном ...

  • Экономика отрасли

    Документ

    ... На машиностроительных предприятиях оптимальный ... узлы и детали (втулки... программ , планов. Основой линейно - ... хозяйство - Раскроя , резки... по изготовлению заготовок является наиболее... Методическое руководство этой... Федерации. Пользователями объектов...

  • Учебное пособие Издательство тпу томск 2003

    Документ

    ... заготовок на станке Точное изготовление детали на ... карты раскроя заготовок (... пользователями . ... оптимальной для данного участка поверхности макропрограммы. Полученная таким образом управляющая программа ... области линейного и контурного... руководствуются ...

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

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

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

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

    Метод индексов Л.В. Канторовича и В.А. Залгаллера при определенном навыке позволяет «вручную» без использования вычислительной техники эффектно выполнять линейный раскрой. Любопытным читателям рекомендую с этим методом ознакомиться, прочитав книгу вышеназванных авторов «Рациональный раскрой промышленных материалов».

    Симплекс-метод, основанный на идеях Л.В. Канторовича, был описан и детально разработан рядом ученых из США в середине 20 века. Надстройка MS Excel «Поиск решения» (Solver) использует этот алгоритм. Именно с помощью этого метода и Excel мы будем в этой статье решать задачу линейного раскроя.

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

    Включим Excel и на простом примере порезки металлических стержней на детали познакомимся с одним из способов решения практических задач линейного раскроя. Часто математики эту задачу называют «задачей о распиле».

    Исходные данные для примера я не стал придумывать, а взял из статьи Покровского М.А. «Минимизация неизбежных потерь материалов в промышленном производстве при их раскрое на штучные заготовки» опубликованной в №5 (май 2015) электронного научно-технического журнала «Инженерный вестник» издаваемого ФГБОУ ВПО «МГТУ им. Н.Э. Баумана» (ссылка: engbul . bmstu . ru / doc /775784. html ).

    Цель, которую я преследовал – сравнить полученные результаты решения задачи.

    Пример решения задачи линейного раскроя в MS Excel.

    Договоримся, что:

    1. Заготовки – это исходный материал в виде прутков, полос, стержней и т.д. одинаковой длины.

    2. Детали – это элементы, которые необходимо получить, разрезав исходные заготовки на части.

    3. Ширина пила, реза, руба принята равной нулю.

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

    Для комплектации одного из заказов заготовительный участок должен порубить на комбинированных ножницах из одинаковых прутков-заготовок длиной 1500 мм три типоразмера деталей:

    151 штуку длиной 330 мм

    206 штук длиной 270 мм

    163 штуки длиной 190 мм

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

    Исходные данные:

    1. Длину исходных заготовок L з в миллиметрах записываем в объединенную ячейку

    D3E3F3: 1500

    2. Присваиваем номера i всем типоразмерам деталей, начиная от самой длинной и заканчивая самой короткой в ячейках

    D4; E4; F4: 1; 2; 3

    3. Длины деталей L д i в миллиметрах пишем в

    D5; E5; F5: 330; 270; 190

    4. Количество деталей N д i в штуках заносим в

    D6; E6; F6: 151; 206; 163

    5. Приступаем к очень важному этапу – заполнению вариантов раскроев.

    Необходимо запомнить и понять 2 принципа выполнения этой работы .

    1. Длины отходов должны быть меньше самой маленькой детали (0< Lo j < L д min ).

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

    Если какого-нибудь типоразмера деталей в варианте раскроя нет, то ячейку оставляем пустой, ноль писать не будем для облегчения визуального восприятия таблицы.

    Вариант раскроя №1:

    Попытка выкроить из одной заготовки 5 деталей №1 невозможна, поэтому пишем в ячейку

    Добавить в раскрой деталь №2 или деталь №3 также невозможно, поэтому оставляем пустыми ячейки

    Вариант раскроя №2:

    Уменьшаем на 1 от предыдущего варианта количество деталей №1 и записываем в

    Пробуем добавить 2 детали №2 – не получается, поэтому дополняем в

    Остается возможность дополнить раскрой деталью №3. Заносим в

    Придерживаясь озвученных принципов, заполняем по аналогии все возможные в данном случае 18 вариантов раскроев.

    Сделав пару-тройку таблиц вариантов раскроев самостоятельно, вы уясните логику действий и будете тратить считанные минуты на эту работу.

    Если при раскрое не выполняется первый принцип, то ячейка с длиной отхода автоматически окрашивается в красный цвет. Условное форматирование, примененное к ячейкам G7…G24, наглядно поможет вам в этой работе.

    В ячейках H7…H24 ничего не пишем! Они используются для вывода результата решения!

    Подготовка к решению:

    * В ячейках G7…G24 вычисляются длины отходов (обрезков), остающиеся в результате выполнения раскроев, по формуле

    Lo j = L з — Σ (L д i * N д ij )

    6. Количество деталей каждого типоразмера, изготовленных по всем примененным вариантам раскроя, будут подсчитываться в ячейках D26, E26 и F26 по формуле

    N д i расч = Σ (N д ij * N з j )

    Количество деталей в найденном в конце решения плане раскроя должно полностью соответствовать заданному количеству деталей!

    7. Необходимое число заготовок для выполнения оптимального плана раскроя будет определяться в объединенной ячейке D27E27F27 по формуле

    N з расч = ΣNз j

    8. Общая длина всех заготовок, необходимых чтобы выполнить линейный раскрой всех деталей будет подсчитываться в объединенной ячейке D28E28F28 по формуле

    L з Σ = L з * N з расч

    9. Общая длина всех отходов, получаемых при выполнении найденного плана раскроя, будет считаться в объединенной ячейке D29E29F29 по формуле

    L о Σ = Σ (L о j * N з j )

    10. Доля отходов, полученных при выполнении оптимального плана линейного раскроя от общего количества использованного материала, будет вычисляться в объединенной ячейке D30E30F30 по формуле

    Ωo = Lо Σ /Lз Σ

    Решение:

    Подготовка завершена, определены 18 вариантов наиболее оптимальных раскроев одной заготовки на детали и вписаны все необходимые формулы. Теперь предстоит решить главную задачу: определить оптимальный план раскроя – сколько заготовок, и по каким вариантам раскроев резать , чтобы в итоге получить все необходимые детали в нужном количестве при минимуме отходов.

    1. Выбираем в главном меню «Сервис» - «Поиск решения…».

    2. В появившемся одноименном окне «Поиск решения» производим настройки.

    2.1. Назначаем целевой функцией общую длину отходов Lо Σ и вводим ссылку в окно целевой ячейки.

    2.2. Устанавливаем переключатель «Равной:» в положение «минимальному значению».

    2.3. Указываем ячейки с переменными Nз j в окне «Изменяя ячейки».

    2.4. Вводим ограничения в одноименное окно. В качестве условий указываем необходимость равенства заданного Nд i и расчетного Nд iрасч количества деталей, а так же на переменные Nз j – расчетное количество заготовок по вариантам раскроев – накладываем ограничение: это должны быть целые числа.

    3. Нажимаем кнопку «Параметры» и в выпавшем окне «Параметры поиска решения» выполняем настройки так, как показано на следующем скриншоте. Закрываем окно кнопкой «ОК».

    4. В окне «Поиск решения» нажимаем кнопку «Выполнить» и ждем, пока Excel найдет решение. Это может длиться несколько минут.

    5. После сохранения найденного решения кнопкой «ОК», результаты отобразятся в ячейках H7...H24 на листе Excel.

    На следующей картинке показан найденный оптимальный линейный раскройный план.

    Что в итоге?

    Линейный раскрой в Excel заготовок для задач подобных рассмотренной в этой статье выполняется описанным выше методом за 10-15 минут! «Вручную», не зная метод индексов Канторовича, за такое время решения не найдешь.

    Запустив «Поиск решения» несколько раз при разных параметрах поиска, удалось найти 5 различных планов рубки заготовок. Все 5 планов требуют одинаковое число заготовок – 93 и дают отходов всего 2,21%!!! Эти планы почти на 6% лучше, чем план, рассчитанный Покровским и более чем на 10% экономичнее «Традиционного» плана (смотри ссылку на первоисточник в первой части статьи). Очень достойный результат достигнут быстро и без применения дорогостоящих программ.

    Следует заметить, что надстройка Excel Solver («Поиск решения»), использующая симплекс-метод при решении задач линейного программирования, может работать не более чем с 200 переменными. В приложении к рассмотренной нами задаче линейного раскроя это означает, что количество раскроев не может превышать 200 вариантов. Для простых задач этого достаточно. Для более сложных задач следует попробовать применить «смесь» «жадного» алгоритма и симплексного метода Solver, отобрав из полного списка раскроев не более 200 самых экономичных. Далее запасаемся терпением и добиваемся результатов. Можно попытаться разбить сложную задачу на несколько простых, но «уровень оптимальности» найденного решения будет при этом, скорее всего, ниже.

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

    Использование надстройки MS Excel «Поиск решения» (Solver) было на блоге уже однажды рассмотрено в статье . Думаю, что этот замечательный инструмент достоин пристального внимания и еще не раз поможет изящно и быстро решить ряд новых нетривиальных задач.

    P.S. Ссылки на лучшие из бесплатных программ линейного раскроя, найденных мной в Сети:

    http://stroymaterial-buy.ru/raschet/70-raskroy-lineynih-izdeliy.html

    http://forum-okna.ru/index.php?app=core&module=attach§ion=attach &attach_id=7508

    http://forum.dwg.ru/attachment.php?attachmentid=114501&d=13823277 74

    http://www.planetcalc.ru/917/

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

    Ниже статьи в блоке «Отзывы» можете написать свои комментарии, уважаемые читатели.