Files
v60/docs/05_A3_TEMPLATES.md

5.9 KiB

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. Стилевые имена имеют вид:

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:

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

Один конкретный вариант:

.venv/bin/python tools/generate_a3_templates.py \
  --preset v60_02 \
  --surface-style woven_cells

Custom-пресет:

.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

Автоматическая проверка

.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;
  • четыре положительных размера секторов.

После автоматической проверки все равно требуется визуальный рендер:

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