coderstar

CODERSTAR.RU / уроки и разработки (1С:Предприятие)

Оптимизация двумерной упаковки, создание карты раскроя материала в 1С

19.04.2021 7429 10

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

Это внешняя обработка

Одно из 358 готовых решений нашего каталога

Не мешает обновлению

Конфигурация остается "на замке", без изменений

Есть техподдержка

Бессрочная (3 месяца бесплатно)

Ограничения

Не подходит для 1C:Fresh и конфигурации

Кому полезна обработка

Всем, кто нарезает листовой материал на прямоугольники - нарезка стекла, листовых пиломатериалов, листового металла.

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

Использование

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

На рисунках ниже представлен пример: расположить 14 деталей среди 15 имеющихся заготовок разного размера. Решение алгоритма также представлено на рисунках: карта укладки деталей (карта кроя) и размер заготовок (слева от карты заготовки).

список деталей и список заготовок

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

результат раскроя

Алгоритм оптимизации - метод имитации отжига https://infostart.ru/public/406682/. Настройки алгоритма указаны в форме обработки. Если есть ощущение, что алгоритм недосчитывает, то рекомендация: увеличить температуру (влияет на интенсивность движения деталей внутри заготовок и длительность расчета). Можно ограничить количество итераций алгоритма в соответствующей настройке, но при сложных расчетах (если деталей больше 8 и тем более они разные по форме, например как на рисунках выше - часть в форме «доски», часть тяготеет к «квадрату») не рекомендуется. В этом алгоритме суть оптимизации: пока высокая температура - ищется оптимальный контур будущей раскладки, а в конце алгоритма уже оптимизируется сам контур, т.е. происходит более тонкая подстройка. Однако, напомню метод относится к эвристическим (Эвристический алгоритм (эвристика) — алгоритм решения задачи, включающий практический метод, не являющийся гарантированно точным или оптимальным, но достаточный для решения поставленной задачи. Позволяет ускорить решение задачи в тех случаях, когда точное решение не может быть найдено), т.е. решение будет не всегда математически и гарантированно наилучшим, но дает неплохие решения.

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

Пример 1. Необходимо для двух деталей задействовать раскладку с участием неполных листов. У нас 3 заготовки, на одну из них поместятся обе детали, причем полезная площадь гарантированно будет использована с большей эффективностью, на две другие «неполные» - по одной детали. Но мы ставим флажок «Максимально использовать неполные листы».

рисунок 3

На следующем рисунке видим результат:

рисунок 4

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

Пример 2. При тех же данных, но снятом флажке «Максимально использовать неполные листы» получаем:

рисунок 5 рисунок 6

Пример 3. Еще один небольшой пример: если все-таки две небольшие заготовки позволяют использовать свою площадь более эффективно, чем одна большая заготовка, то даже при снятом флажке «Максимально использовать неполные листы», мы получим раскладку на две небольшие заготовки. То есть алгоритм выбирает те заготовки, где площадь будет использоваться с максимальной эффективностью. На рисунке мы поменяли заготовку 810*410 на заготовку 1000*410, небольшие заготовки оставили те же. Для наглядности опять же рисунки с входящими данными и результатом:

рисунок 7 рисунок 8

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

Приведу пример из реального внедрения. На следующем рисунке входящие данные по деталям из спецификации. Материал и спецификация находятся в самом верху формы обработки и замазаны. Заготовка – ЛДСП, самый верхний лист – полноразмерный лист 2440*1830мм, ниже неполный лист 1500*1500. Алгоритм выбрал тот лист, площадь которого будет использована эффективней. Вариант с раскладкой также приведен.

рисунок 9 рисунок 10

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

рисунок 11

OTHER

Результаты раскладки ниже:

рисунок 12 рисунок 13

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

Пара слов о настройках в форме. Можно задать ширину реза (прохода пилы). В настройках вывода на печать есть коэффициент масштаба - для крупных или мелких заготовок. Если заготовки крупные, (например МДФ имеет размеры листа 2800*2070мм) то используем понижающий коэффициент (0,07-0,05). Для мелких заготовок имеет смысл укрупнить макет для более читаемого изображения. Не оставляйте значение 0, т.к. все размеры макета выводимые на экран и впоследствии на печать умножаются на этот коэффициент.

Релиз 714.1.1.3 от 03.07.2023

В обработку добавлены 2 настройки: "Марки материала" и "Виртуальный склад".

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

Образец заполнения:

заполнение настроек марки материала

выбор марки материала

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

заполнение настройки виртуальный склад

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

Настройка "Запретить вращение деталей и заготовок" - используется, если необходимо при расчете запретить повороты деталей на 90 градусов (например, из-за рисунка поверхности).

Настройка "Экспресс расчет" - нужна для экономии времени оптимизации, в общем случае оптимизация может длиться довольно долго (30 деталей могут раскладываться около 4 минут). В этом случае отработает жадный алгоритм - за несколько секунд вы получите раскладку, но результат оптимизации будет не оптимальным.

На форму добавлены результаты расчета, выведено несколько таблиц, подробнее о них:

результаты расчета раскроя материала

Таблица "Используемые заготовки" - выводятся те заготовки, которые непосредственно были использованы в расчете. Т.е. те заготовки, на которые уложены детали. Неиспользованные выведены не будут. Суть - списать этот материал с остатков склада (например, документом "Требование-накладная")

Таблица "Занятые области заготовок (детали)" - предназначена для отображения уложенных деталей на заготовки. Суть - источник данных для прихода на складские остатки готовой продукции/полуфабрикатов.

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

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


Дмитрий Медведков 1С

Дмитрий Медведков программист, консультант 1С
Работаю в 1С с 2012-го, специализируюсь на УТ 11
Имею 10 квалифиционных 1C

Как оплатить разработку?

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

Безопасна ли оплата на сайте?

На сайте никакие платежи не происходят. Если выбираете оплачивать банковской картой, то оплата произойдет через платежный шлюз Тинькоф-банка.

Как получить разработку после оплаты?

В случае оплаты картой письмо со ссылкой для скачивания и инструкциями приходит в течение минуты. Если оплачиваете по счету - автоматически сразу же после поступления денежных средств на расчетный счет ИП Медведков Д.В. В остальных случаях - в течение двух часов (в рабочее время, с 9 до 19ч мск).

Как установить разработку в базу?

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

А если не смогу установить самостоятельно?

В таком случае позвоните нам, мы обязательно поможем.

А если не будет работать?

Оперативно подключимся удаленно к вашей базе через AnyDesk и поможем решить проблему. Или вернем деньги - на ваш выбор.

А если сломается после обновления?

Напишите нам об этом, уточнив артикул разработки и номер релиза конфигурации. Сделаем адаптацию разработки и вышлем вам новую версию

Вносятся ли изменения в конфигурацию?

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

На какое количество баз 1С можно устанавливать купленную обработку?

На любое, никаких ограничений нет.

Закрывающие документы предоставляете?

При оплате картой на почту вам придет онлайн-чек. При оплате по счету предоставляется скан акта выполненных работ. Также можем отправить оригинал по ЭДО.

Возможны ли доработки? Исходный код открыт?

Вы можете дорабатывать наши разработки как вам угодно, исходный код открыт.

ИП МЕДВЕДКОВ Д.В.

ИНН: 750600864476

ОГРНИП: 319312300001102

ЭДО: 2AEF7F48030-0E48-4D91-B731-7469FD18EC85 (Калуга-Астрал)

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

Если же у вас есть интересная идея для создания новой разработки, тогда вам .

Параметры

Артикул: 714

Обновлено: 02.10.2023

Совместимость:

  • Управление торговлей 11
  • Бухгалтерия предприятия 3.0
  • Управление нашей фирмой 1.6
  • Управление нашей фирмой 3.0
  • Комплексная автоматизация 2
  • Розница 2.2 и 2.3
  • Розница 3.0
  • Управление предприятием ERP
  • Управление торговлей 3 (KZ)
  • Комплексная автоматизация 2 (KZ)
  • Бухгалтерия для Казахстана 3.0
  • Управление торговлей 3 (BY)
  • Комплексная автоматизация 2 (BY)
  • Управление торговлей 10.3
  • Управление производственным предприятием 1.3
  • Комплексная автоматизация 1.1

Покупка

10000 ₽

58000 ₸

500 Br