v60
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
# 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, потому что они содержат четыре отдельных
|
||||
сектора, контроль масштаба и маркировку порядка сборки.
|
||||
Reference in New Issue
Block a user