Линейный раскрой и учёт технического среза
Сократили перерасход профиля за счёт автоматического расчёта оптимального раскроя.
От проблемы к результату
Как мы решали конкретную задачу клиента и что получилось.
Проблема
Профили поставляются стандартными штангами фиксированной длины. Клиент заказывает фигуры произвольного размера — одну на 1,2 м, другую на 0,7 м, третью на 2,3 м. Сколько штанг купить?
Если считать по суммарной длине — получается заниженное количество, и на монтаже не хватит материала. Если закладывать запас «на глаз» — перерасход доходит до 15–20%. Дополнительную сложность создаёт технический срез: у многих профилей начало и конец нельзя использовать в изделии.
Менеджеры считали раскрой в Excel вручную. Это занимало время, давало ошибки и не масштабировалось при росте заказов.
Решение
Мы написали алгоритм оптимального раскроя, встроенный в конфигуратор. Система считывает из свойств товара длину штанги и технический срез в формате «50/50» (50 мм с каждой стороны).
Алгоритм перебирает варианты распределения фигур по штангам и выбирает тот, при котором количество закупаемых штанг минимально. Каждый разрез уменьшает доступную длину на толщину реза — это тоже учитывается.
Если фигура длиннее штанги с учётом среза — система автоматически разбивает её на несколько штанг плюс отрезок, показывает предупреждение в интерфейсе и пересчитывает итог.
Результат
Перерасход сократился с 15–20% до 3–5%. Клиенты перестали недозаказывать и переплачивать. На финальном экране видно: сколько штанг купить, как распределены отрезки и какой остаётся обрезок.
Жёлтая плашка предупреждает о техническом срезе при вводе фигур.
Красный знак появляется, если фигура длиннее штанги — система сама пересчитывает.
Клиент понимает, почему цифра в корзине отличается от суммы длин фигур.
Менеджеры перестали вести расчёты в Excel.
Этапы реализации
Получение данных профиля
Алгоритм считывает из свойств товара длину одного профиля и технический срез в формате «50/50» (то есть 50 мм с каждой стороны). Без этих данных невозможно точно рассчитать раскрой.
Ввод фигур и толщины реза
Пользователь вводит размеры фигур: длина, количество, единица измерения. Рядом — толщина реза. Жёлтая плашка предупреждает о техническом срезе, красный знак — если фигура длиннее профиля.
Оптимизация раскроя
Система перебирает варианты раскроя и выбирает тот, при котором количество закупаемых профилей минимально. Каждый разрез уменьшает используемую длину на толщину реза.
Результат и обрезки
На финальном экране: сколько целых профилей купить, как распределены отрезки по профилям и какой остаётся обрезок. Клиент понимает, почему цифра в корзине отличается от суммы длин фигур.
До и после
Менеджер вручную составлял таблицу раскроя, закладывал запас «на глаз» и передавал клиенту. Ошибки приводили к нехватке материала на монтаже.
Система автоматически рассчитывает минимальное количество штанг с учётом среза и толщины реза. Клиент видит результат на финальном экране конфигуратора.
Технологии и инструменты
1С-Битрикс
Свойства товаров, API
PHP
Алгоритм оптимального раскроя
React
Интерфейс шага ввода фигур
Vite
Сборка фронтенда
Zustand
Состояние конфигуратора
TanStack Query
Запросы к API каталога
Chakra UI
UI-компоненты
1С-Битрикс
Свойства товаров, API
PHP
Алгоритм оптимального раскроя
React
Интерфейс шага ввода фигур
Vite
Сборка фронтенда
Zustand
Состояние конфигуратора
TanStack Query
Запросы к API каталога
Chakra UI
UI-компоненты
1С-Битрикс
Свойства товаров, API
PHP
Алгоритм оптимального раскроя
React
Интерфейс шага ввода фигур
Vite
Сборка фронтенда
Zustand
Состояние конфигуратора
TanStack Query
Запросы к API каталога
Chakra UI
UI-компоненты
1С-Битрикс
Свойства товаров, API
PHP
Алгоритм оптимального раскроя
React
Интерфейс шага ввода фигур
Vite
Сборка фронтенда
Zustand
Состояние конфигуратора
TanStack Query
Запросы к API каталога
Chakra UI
UI-компоненты