Files
v60/docs/05_A3_TEMPLATES.md
T

140 lines
5.9 KiB
Markdown

# 5. A3-раскрой для всех вариантов
## Состав комплекта
Генератор создает отдельный трехстраничный A3 PDF для каждой пары:
- размер: `v60_01` или `v60_02`;
- один из 11 `surface_style`.
Всего в `output/pdf/` находится 22 стилевых PDF. Дополнительно сохранены два
коротких совместимых имени для `smooth_sculpted`: `v60_01_clay_templates_a3.pdf`
и `v60_02_clay_templates_a3.pdf`. Стилевые имена имеют вид:
```text
v60_02_smooth_sculpted_clay_templates_a3.pdf
v60_02_diagonal_flow_clay_templates_a3.pdf
v60_01_spiral_flow_clay_templates_a3.pdf
```
Каждый PDF содержит:
1. цельную быструю заготовку с припуском 8 мм;
2. четыре пронумерованных стилевых сектора;
3. точную сырую опорную площадку.
Числовые паспорта лежат в `output/data/`, SVG - в
`output/svg/<surface_style>/`. Индексы всех файлов:
- `output/data/v60_01_all_styles_index.json`;
- `output/data/v60_02_all_styles_index.json`.
## Как считается стилевой раскрой
Генератор повторяет формулы `style_offset()` и production-ограничение
`release_scale_for()` из SCAD V2.
Для каждого сектора он отдельно считает:
- длину меридиана по центральному углу;
- длину полярной дуги от левой границы до оси;
- длину дуги от оси до правой границы;
- изменения этих размеров по всей высоте.
Поэтому для `organic_asymmetric`, `diagonal_flow` и `spiral_flow` сектора не
считаются взаимозаменяемыми и должны собираться по номерам 1-2-3-4.
## Что означает «точный»
Опорная площадка является плоской и выводится из формул SCAD без
геометрического приближения.
Рельефная стенка имеет ненулевую гауссову кривизну и не может быть идеально
развернута в плоскость без упругой или пластической деформации. Четыре узких
сектора сохраняют меридианы и поперечные дуги намного точнее цельной детали,
но окончательная посадка формируется мягким прижатием глины в гипсовой форме.
Цельная страница 1 является быстрым ориентиром. Для рабочей серии используйте
страницу 2.
## Release-safe связь со SCAD
V2 требует минимум 5 градусов положительного уклона к устью. Если полный
рельеф нарушает этот минимум, SCAD и PDF-генератор одинаково уменьшают его
амплитуду. Коэффициент записан в JSON как `release_scale` и напечатан в
заголовке PDF.
Обычно коэффициент равен 1. Для `dimpled_grid` он меньше 1, поскольку именно
этот стиль имеет самый жесткий вертикальный рельеф.
## Генерация
Из каталога `v60`:
```sh
uv venv .venv
UV_CACHE_DIR=/tmp/v60-uv-cache uv pip install \
--python .venv/bin/python \
-r tools/requirements-pdf.txt
.venv/bin/python tools/generate_a3_templates.py --preset v60_01 --all-styles
.venv/bin/python tools/generate_a3_templates.py --preset v60_02 --all-styles
```
Один конкретный вариант:
```sh
.venv/bin/python tools/generate_a3_templates.py \
--preset v60_02 \
--surface-style woven_cells
```
Custom-пресет:
```sh
.venv/bin/python tools/generate_a3_templates.py \
--preset custom \
--surface-style smooth_sculpted \
--target-inner-top-d 120 \
--target-inner-outlet-d 21 \
--target-inner-height 92 \
--support-finished-span 123 \
--support-finished-hole-d 21 \
--shrink-percent 12 \
--slab-thickness 5
```
## Автоматическая проверка
```sh
.venv/bin/python tools/verify_v2_outputs.py --preset v60_01
.venv/bin/python tools/verify_v2_outputs.py --preset v60_02
```
Verifier проверяет для каждого стиля:
- наличие PDF, JSON и шести SVG;
- три страницы ровно 420 x 297 мм;
- название стиля на каждой странице;
- контрольный квадрат 50 x 50 мм;
- `model_version = 2.0` и допустимый `release_scale`;
- четыре положительных размера секторов.
После автоматической проверки все равно требуется визуальный рендер:
```sh
pdftoppm -png -r 120 \
output/pdf/v60_02_spiral_flow_clay_templates_a3.pdf \
tmp/pdfs/spiral_flow
```
Перед работой измерьте напечатанный квадрат и шкалу. Не используйте `Fit to
page` или автоматическое уменьшение больших страниц.
## DXF из OpenSCAD 2021.01
`part = "clay_blank_2d"` выводит номинальную цельную развертку без A3-полей и
подписей. `part = "support_plate_2d"` выводит площадку. Для ручной работы
предпочтительны стилевые PDF, потому что они содержат четыре отдельных
сектора, контроль масштаба и маркировку порядка сборки.