# Бумажный мир: поля и миниатюры станций для 3D-печати

Набор содержит **33 модели в 66 файлах**: каждую модель в STL и стандартном 3MF. Это 14 игровых полей, 14 миниатюр станций, основа жетона, две пустые таблички, держатель таблички и купон посадки.

Русские надписи для всех 14 полей находятся в папке `ru/` (ещё 28 файлов STL/3MF). Английская версия сохранена. Габариты и гнёзда двух языковых версий совпадают; миниатюры, жетоны и держатели общие.

Справочник с серыми изображениями моделей: `paper-world-parts-guide.pdf`. Страницы 2–8 можно разрезать на 14 карточек. Русские наклейки для уже готовых английских полей и вставки в таблички: `paper-world-russian-labels.pdf`. Оба файла доступны в мастерской и в папке PDF полного настольного набора.

Станции: верстак, печь, плавильная печь, коптильня, наковальня, кузнечный стол, камнерез, точило, ткацкий станок, картографический стол, зельеварка, стол зачарования, компостер и костёр.

## Как пользоваться

1. В OrcaSlicer или Orca-Flashforge выберите свой принтер, фактически установленное сопло и свой пластик. Штатное сопло Adventurer 5M — 0,4 мм; это не означает, что у вашего экземпляра оно не заменено.
2. Импортируйте нужный файл из `3mf/` как модель. Эти generic 3MF содержат миллиметры и геометрию, без профилей принтера и пластика. Для STL выбирайте миллиметры. Масштаб оставьте **100%**, иначе бумажные квадраты перестанут соответствовать карманам.
3. Сохранённая ориентация предназначена для печати плоским основанием на столе. Проверяйте результат нарезки с выбранным профилем перед изготовлением. Для первой проверки размеров предусмотрен небольшой `fit-coupon-25`.
4. Бумажный квадрат вырезайте со стороной 25 мм. Его можно положить прямо в карман или наклеить на `token-base-25` — ровную основу 25 × 25 × 1,6 мм.
5. Таблички печатаются плашмя. Бумажную вставку приклейте в рамку; после этого вставьте ножку в `sign-stand`. Для квадратной таблички нужна бумага 25 × 25 мм, для широкой — 51 × 18 мм.

В распространяемый набор входят модели; G-code зависит от установленного сопла, материала и профиля печати. Для распознавания уже изготовленных деталей используйте иллюстрированный справочник.

## Посадка бумаги и допуски

Основной карман имеет сторону **25,8 мм**: это 0,8 мм общего зазора, или **0,4 мм с каждой стороны** бумажного квадрата 25 мм. Карман прямоугольный, без скругления внутренних углов. Его дно имеет толщину 2 мм, бортик — высоту 1 мм. Выемка у края помогает подцепить бумагу. Основа толщиной 1,6 мм выступает над бортиком и удобна для перестановки.

Купон содержит подписанные карманы **25,4 / 25,6 / 25,8 / 26,0 / 26,2 мм**. Проверьте одним вырезанным квадратом и одной напечатанной основой все пять вариантов. Выберите тот, где бумага лежит свободно и не загибается. Фактическая посадка зависит от реза ножницами, бумаги, пластика и настройки принтера; купон позволяет проверить именно вашу комбинацию.

Паз держателя имеет размер 12,5 × 3,0 мм и глубину 4,4 мм. Ножка таблички — 12 × 2,4 мм, длиной 5 мм. Это свободная посадка с запасом 0,25 мм на сторону по ширине и 0,3 мм на сторону по толщине, без защёлки. Бумага в вертикальной рамке фиксируется клеем или тонкой двусторонней лентой.

## Размеры и форма

- Верстак: **135,6 × 98,8 × 3 мм**, девять входных карманов 3 × 3 и отдельный результат.
- Самая длинная модель — купон: **149,8 × 40,2 × 3 мм**.
- Миниатюры укладываются в блок 25 мм по основным осям; отдельные низкие станции имеют меньшую высоту. Наибольшая высота набора — 25 мм.
- Все модели меньше 200 мм по каждой оси и помещаются в рабочий объём Adventurer 5M 220 × 220 × 220 мм.

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

Игровые поля адаптированы для настольной игры. Отдельные зоны результата и счётчики могут отличаться от интерфейса Minecraft. Названия слотов и их координаты записаны в `manifest.json`.

## Проверки и файлы

`verification.json` содержит проверки каждой модели: замкнутая ориентированная поверхность, положительный объём, единственное тело, ровно два треугольника на каждом ребре, габариты, нормали свесов и повторное чтение STL/3MF. Все 3MF проверены официальным lib3mf в строгом режиме без предупреждений.

`fit-verification.json` — отдельная проверка уже экспортированных STL: настоящая основа 25 мм помещается во все карманы; чуть больший квадрат упирается в реальные бортики; высота пола и посадка обеих табличек в держатель подтверждены пересечениями объёмов.

`preview-contact-sheet.png` показывает весь набор, `previews/` содержит изображения отдельных моделей. Цвета превью помогают различать станции; это не назначение пластика и не многоцветные задания печати.

Каждая запись `manifest.json` имеет уникальный `id`, общий для двух форматов `modelId`, `name`, `kind`, `station`, `file`, `dimensions`, `notes`, `format`, `units`, `license`, `preview`, `sha256` и `bytes`. `station` использует ID с подчёркиваниями, например `crafting_table`; координаты CAD — X/Y на столе, Z вверх, миллиметры.

## Изменение параметров

```sh
python3 -m venv cad-venv
cad-venv/bin/python -m pip install -r requirements.txt
cad-venv/bin/python generate.py
cad-venv/bin/python fit-audit.py
```

Пример увеличенного зазора без изменения размера бумажного квадрата:

```sh
cad-venv/bin/python generate.py --clearance 1.0 --output ./custom-clearance
```

Доступны `--paper`, `--clearance` (общий, не на сторону), `--floor`, `--pocket-depth` и `--miniature-scale`. `fit-audit.py` проверяет стандартный набор 25 мм / дно 2 мм; при изменении этих двух номиналов проверку нужно соответственно обновить. Генератор повторяет проверку геометрии и обоих форматов при любом запуске.

Геометрия, технические знаки и код созданы для этого набора и доступны по CC0-1.0. Игровые модели и текстуры не извлекались. См. `LICENSE-CC0.txt` и [первичные источники](SOURCES.md).


Контрольная нарезка OrcaSlicer 2.4.2: см. [slicer-verification.md](slicer-verification.md).
