# 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//`. Индексы всех файлов: - `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, потому что они содержат четыре отдельных сектора, контроль масштаба и маркировку порядка сборки.