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