# R7 / R8 — проверенный раскрой текущего снимка, 19.09.2026

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

| Сборка | 24 мм | 30 мм | 40 мм | Всего листов 3050×1525 | Только листовая фанера |
|---|---:|---:|---:|---:|---:|
| R7 | 10 | 1 | 1 | 12 | 90 450 ₽ |
| R8 | 1 | 7 | 1 | 9 | 78 585 ₽ |

В эти количества включены все плоские детали и **40 сырьевых слоёв для 32 объёмных деталей**: 16 слоёв 40 мм для восьми клиньев, 24 заготовки 30 мм для наклонных подкладок. Они разместились в свободной площади прежних листов, дополнительных листов не потребовали. Внутренние окна деталей не использованы как полезные остатки.

Исходный CAD задаёт клин из двух слоёв 40 мм размером 115×161 мм и подкладку из одного слоя 30 мм размером 50×44 мм. Для сырьевого раскроя добавлен припуск 3 мм с каждой стороны: 121×167 и 56×50 мм. Припуск является явным планировочным параметром; технология склейки, допуск клеевого шва, чистовое фрезерование, косые поверхности и сверление не квалифицированы. Толщинный припуск не назначен. Нельзя считать прямоугольник чертежом готового клина: DXF для объёмных деталей не выпускается.

Для текущей версии необходимы ещё 9,216 м реза слоёв 40 мм и 5,088 м реза подкладок 30 мм в каждой сборке. Эти длины находятся в `blank_cut_length_m`; их следует **прибавить** к `cnc_cut_length_m` для суммарного реза сырья. Скосы, сверление, склейка и чистовая обработка сюда не входят.

## Сравнение алгоритмов

Основная исходная укладка — прямоугольные габариты реальных контуров с зазором 10 мм и полями 15 мм. Отдельно проверена NFP-эвристика по выпуклым оболочкам и восемь воспроизводимых порядков прямоугольной укладки. NFP: четыре прежних порядка R7 дали 11 основных листов, тридцать порядков R8 — 7. Сохранённые кандидаты заново проверены относительно текущих контуров после обновления служебных данных CAD. Худший R7-кандидат не внедрён.

Восемь дополнительных порядков при 3050×1525 дали R7 10–11 основных листов, R8 — 7. Результат исходной укладки сохранён. Свободные детали допускают поворот на 90°; детали с заданным направлением волокон — только на 0°/180°. Исправлена независимая проверка, ранее отвергавшая допустимый поворот на 180°. Публичный API `Packer` не изменён.

## Сравнение реальных форматов

В [российском каталоге FaneraMoscow](https://www.faneramoscow.ru/catalog/fanera-fsf/) перечислены все четыре формата. Сравнение ниже геометрическое, с полным количеством сырьевых слоёв, полями и зазорами; отдельные цены и складской резерв альтернатив не подтверждались.

| Формат, мм | R7: 24/30/40 мм | R7 всего | R8: 24/30/40 мм | R8 всего |
|---|---:|---:|---:|---:|
| 3050×1525 | 10 / 1 / 1 | 12 | 1 / 7 / 1 | 9 |
| 3000×1500 | 11 / 1 / 1 | 13 | 1 / 7 / 1 | 9 |
| 2500×1250 | 15 / 1 / 1 | 17 | 1 / 10 / 1 | 12 |
| 2440×1220 | 15 / 1 / 1 | 17 | 1 / 10 / 1 | 12 |

Это лучшие результаты ограниченного поиска, а не нижняя математическая граница. Выбор 3050×1525 сохраняет меньшее число листов среди проверенных вариантов; минимальная стоимость всех возможных форматов не доказана. Для R8 вариант 3000×1500 даёт столько же листов и может сравниваться по цене отдельно.

**Условие заказа:** расчёт укладки предполагает наружный шпон вдоль длинной стороны листа. Карточки продавца сами это не подтверждают; запись размера 1525×3050 не является подтверждением направления шпона. Длинные полосы R8 нельзя изготовить с заданными волокнами из листа, у которого продольные волокна идут только по стороне 1525 мм.

## Проверки и воспроизведение

`build/r7/bom/nesting_plan.json` и аналогичный R8-файл содержат координаты, повороты, число каждого вида заготовок, текущий SHA сборки, проверенный минимальный зазор и нижнюю границу по площади. SVG находятся в `bom/sheets`. Нижняя граница по площади не учитывает невозможность заполнить все пустоты и поэтому не равна достижимому числу листов.

`tools/r8/verify_bom.py` независимо восстанавливает контуры из DXF и сырьевые прямоугольники из CAD, заново проверяет полноточные координаты раскладки, поля, зазоры, направление волокон, количество и толщину. Дополнительно SVG читаются обратно. Обе сборки прошли 53/53 проверок: R7 30 DXF и 206 отрицательных проверок удаления отверстия, R8 10 DXF и 53 отрицательные проверки.

Сводки экспериментов: `build/r7/nesting/comparison.json`, `build/r8/nesting/comparison.json`. Воспроизведение: `tools/venv/bin/python tools/polygon_nesting.py r7 --compare --trials 8` (и `r8`). Сравнение не перезаписывает выбранную ведомость или её SVG. Исходный baseline сохранён в `ref/r78/nesting_baseline_20260919.json`.

Стоимость листов взята из подтверждённых карточек: [24 мм — 6915 ₽](https://faneramoscow.ru/catalog/fanera-fsf/2-2-24mm-1525-3050/), [30 мм — 8395 ₽](https://faneramoscow.ru/catalog/fanera-fsf/2-2-30mm-1525-3050/), [40 мм — 12905 ₽](https://faneramoscow.ru/catalog/fanera-fsf/2-2-40mm-1525-3050/), за лист, проверено 19.09.2026. Цена относится к материалу текущей пробной спецификации, без доставки и обработки. Марка/сорт не означают утверждения прочности. Полная стоимость беседки остаётся неопределённой.
