# R9 mini: точное масштабирование исходных R7/R8

20 сентября 2026. Подготовлен ограниченный пакет геометрии **1:8**. Исходные сборки, узлы, зазоры и модели крепежа не адаптировались. Анкеры исключены. `construction_ready=false`, `manufacturing_release=false`: покупные миниатюрные компоненты, материал и процесс ещё не выбраны.

Генератор: `tools/r9_mini_parts.py`. Масштаб — параметр CLI:

```sh
tools/venv/bin/python tools/r9_mini_parts.py --denominator 8
```

Предварительные габариты без генерации всего комплекта:

```sh
tools/venv/bin/python tools/r9_mini_parts.py --denominator 8 --preflight
```

Папки результата: `build/r9/parts/r7` и `build/r9/parts/r8`. `manifest.json` записывается последним, после DXF, STL, ZIP, README и проверок. При полной перегенерации прежний manifest сначала удаляется; публикация должна использовать только завершённый пакет с manifest и совпадающими SHA.

## Габариты и состав

| Показатель | R7 | R8 |
|---|---:|---:|
| Габарит X × Y × Z | 577,270 × 577,270 × 384,214 мм | 545,667 × 545,667 × 392,706 мм |
| Полный горизонтальный диаметр тел данного пакета | 767,291 мм | 721,357 мм |
| STL деталей | 346 | 110 |
| STL элементов/комплектов крепежа без анкеров | 2 652 | 348 |
| Всего STL | 2 998 | 458 |
| Типов плоских DXF | 30 | 10 |
| Плоских экземпляров | 302 | 66 |
| Дополнительных сырьевых слоёв объёмных деталей | 40 | 40 |
| Косых сверлений ног в отдельной ведомости | 24 | 24 |

Ограничение полного диаметра ≤1 м выполнено для всех тел исходного `assembly.json`, включая наклонные детали, выступы крепежа и уголки, исключая анкеры. Отдельные тент и подсветка исходной сборкой не содержатся: их габариты проверяет генератор просмотра R9. Владелец основной задачи отдельно получил для полного просмотра R8 с покрытием 735,516 мм; эта цифра не подменяет измеренные границы пакета деталей.

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

## Что масштабировано

Каждый поставляемый бинарный STL масштабирован **непосредственно из исходного STL**. Позиции каждой вершины делятся на 8; треугольники, их обход, исходные нормали и атрибуты сохранены. Не пересобирались условные цилиндры взамен реальных шайб/гаек и не добавлялась отсутствовавшая винтовая поверхность резьбы.

В `assembly_scaled.json` масштабированы размеры, координаты, контуры, окна и диаметры отверстий. В матрицах 4×4 меняется только столбец трансляции: матрица вращения и последняя строка сохранены. Оси болтов, нормали, направления сверления и углы не делились на масштаб. `operations_scaled.json` содержит реальные косые операции с масштабными координатами и неизменными направлениями.

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

Точные толщины фанеры:

| Исходная | В миниатюре | Смысл |
|---|---:|---|
| 24 мм | 3 мм | цельный лист |
| 30 мм | 3,75 мм | нельзя молча заменить листом 3 или 4 мм |
| 40 мм | 5 мм | цельный лист |
| 80 мм | 10 мм | исходная наборная заготовка: два слоя по 5 мм |

R7 содержит 290 фанерных тел толщиной 3 мм, 28 — 3,75 мм, 8 — 5 мм и 8 объёмных заготовок номинальной толщиной 10 мм. R8 — соответственно 18, 64, 8 и 8. Для закупки заготовки 10 мм разложены на исходные два слоя 5 мм, а не объявлены покупным листом 10 мм.

## DXF и новый раскрой

DXF даны по одному на действительный плоский тип. Сохранены замкнутые внутренние окна и нормальные отверстия. Исходная унификация дополнительно сверена между всеми экземплярами: максимальная измеренная разница контуров после допустимого поворота/переворота — 0,000001113 мм R7 и менее 10⁻¹² мм R8. Косое сверление ног и пространственная обработка клиньев не включены в плоский DXF.

Раскрой создан заново на листах **600 × 400 мм**, с полем **10 мм** и расстоянием между деталями **3 мм**. Это самостоятельные технологические параметры миниатюры: прежние 10-мм промежутки не уменьшались до 1,25 мм. Направление лицевых волокон учтено; детали с заданной осью волокон произвольно на 90° не переворачивались.

| Толщина | R7 | R8 |
|---|---:|---:|
| 3 мм | 4 листа | 1 лист |
| 3,75 мм | 1 лист | 2 листа |
| 5 мм | 1 лист | 1 лист |
| Всего | **6** | **4** |

В эти листы включены все 40 сырьевых слоёв клиньев и наклонных подкладок каждой версии. Их прямоугольники имеют отдельный припуск **1 мм на сторону**, без изменения номинальной толщины. На SVG они выделены голубым. Сырьевой прямоугольник не описывает скос, косые отверстия, клей или изготовление готовой объёмной детали. Раскладка воспроизводимая и проверенная; глобальный минимум листов не заявлен.

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

## Ограничения миниатюрной сборки

Исходные зазоры 0,2 / 0,3 / 0,5 мм превращаются в **0,025 / 0,0375 / 0,0625 мм**. Они геометрически сохранены, но их воспроизводимость при выбранном способе реза и покрытии ещё не проверена.

Исходная резьба М8 даёт масштабные Ø1 мм и шаг 0,15625 мм. Это **не стандартный М1**. М12 даёт Ø1,5 мм и шаг 0,21875 мм. Шайба М8 Ø24×2 становится Ø3×0,25 мм; геометрическое соответствие не означает наличие подходящего серийного изделия. В записях крепежа `is_standard_mini_fastener=false`, закупка не одобрена, исходные стандарты сохранены как сведения об оригинале.

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

## Проверки и архивы

- Обратно прочитаны все 3 456 STL; каждый сравнен со всеми исходными вершинами. При масштабе 1:8 максимальная координатная ошибка — **0** в исходной float32-точности.
- Проверены замкнутость, согласованность обхода и объём. В восьми исходных STL ног R8 есть по два вырожденных треугольника: диагностическая проверка удаляет их с порогом исходного `read_solid`, также делённым на 8. **Поставляемые STL не очищались и не перетриангулировались.** После диагностической очистки сетки замкнуты; сам пакет сохраняет исходную точную геометрию.
- Независимый читатель DXF проверяет единицы мм (`$INSUNITS=4`), закрытые LWPOLYLINE, число вершин/окон и геометрическую разность прочитанного контура.
- Все листы проверены на границы, минимальное расстояние 3 мм, сохранение числа экземпляров и сырьевых слоёв. Проверены обратно прочитанные листовые DXF.
- SHA всех исходных сборок, операций, BOM, исходных и масштабных STL сверены; идентификаторы не потеряны и не дублируются. ZIP повторно прочитаны, CRC и SHA каждого вложенного STL проверены.

R7: `stl_part_01.zip` — **22 547 148 байт**, `stl_part_02.zip` — **4 406 500 байт**. R8: `stl_part_01.zip` — **3 950 056 байт**. Каждый архив меньше 24 000 000 байт.

Финальные manifest SHA256:

- R7: `ec43e8b251cf739b909e0b09721284b470109e572e4e89e959495ca4b7e16624` — 3 050 файлов.
- R8: `e8361cca506aa250df91ad402c82d77ecce4bd8b1cfee6183787623af0d90d2f` — 485 файлов.

Исходные сборки остались R7 `08cde715f93b55e22752315fb989844058c7f282af5578856e392bbca424fcaa` и R8 `7a7284422937d4cbd9749208fad27998680e1a6d93dcc122559c6572b67f0f31`. Сайт и основные файлы не изменялись.
