Files
v60/docs/CODE_REVIEW.md

7.4 KiB

Senior OpenSCAD review

Дата проверки: 2026-08-31. Целевая версия: OpenSCAD 2021.01.

Итог

После исправлений модель рендерит замкнутые простые тела для мастера, кожуха, резака, фиксирующих штифтов и площадки в OpenSCAD 2021.01. Архитектурный статус - WATCH: цифровая геометрия пригодна для пробного производства, но соответствие фильтру и итоговая усадка должны быть подтверждены физическим циклом.

Финальная рекомендация по цифровым артефактам: APPROVE. Запуск физического тиража остается после одной контрольной заливки, осевого съема и пробного обжига, поскольку трение, разделитель и фактическую усадку код не доказывает.

Исправлено

HIGH - локальный обратный уклон dimpled_grid

До исправления периодические вмятины могли уменьшать радиус при движении к устью, из-за чего одночастная гипсовая форма могла закусить мастер. Глубина скорректирована, рельеф затухает у краев, а для любого выбранного стиля теперь считается min_draft_step. Отрицательное значение выводится как ошибка в Console.

HIGH - отсутствовал раскрой стенки

Добавлены:

  • part = "clay_blank_2d" для опорного DXF/SVG-контура;
  • 22 трехстраничных A3 PDF 1:1: 11 стилей для каждого размерного пресета;
  • четыре индивидуальных стилевых сектора с порядком сборки 1-2-3-4;
  • SVG и JSON с рассчитанными размерами;
  • воспроизводимый генератор tools/generate_a3_templates.py.

MEDIUM - неплоские боковые грани

Кольца текстурированной поверхности соединялись четырехугольниками. В OpenSCAD 2021.01 это приводило к PolySet has nonplanar faces и запасному пути CGAL. Боковые грани разбиты на треугольники. После исправления предупреждение не появляется.

MEDIUM - расчет полости зависел от глобального стиля

hollow_master_shell(style) принимал стиль, но внутренние радиусы считались по глобальному surface_style. Внутренний зазор теперь вычисляется функциями для переданного стиля.

MEDIUM - невалидные custom-параметры

Добавлены assert() для процента усадки, толщин, отношения скругления, размеров отверстия резака, высоты крышки носика, диаметров, part и surface_style. Ошибка теперь возникает рядом с причиной, а не внутри CGAL.

Что в модели сделано хорошо

  • Части разделены на мастер, кожух, площадку, резак и previews.
  • Компенсация усадки вынесена в параметры.
  • Толщина полого мастера проверяется по сетке реальной поверхности.
  • Мастер и резак уже ориентированы для печати без поддержек.
  • Кожух дает около 27 мм гипса вокруг широкой части и фиксируется верхними седлами/штифтами.
  • По умолчанию геометрия не копирует фирменный рельеф V60.

Оставшиеся ограничения

WATCH - усадка задана одним числом

clay_shrink_percent = 12 предполагает одинаковую линейную усадку по высоте и диаметру. Реальная масса может быть анизотропной и зависит от режима сушки, обжига и толщины. Перед серией измерьте 100-мм тестовую линейку и один полный прототип.

WATCH - высота мастера содержит эмпирическую поправку

master_height использует clay_slab_thickness * 0.7. Это разумный старт, но не геометрический инвариант. Корректируйте custom_target_inner_height по результату первого обжига.

WATCH - точный плоский раскрой рельефа невозможен

Талия и рельеф создают ненулевую гауссову кривизну. Однодетальный сектор совпадает по верхней и нижней окружностям, но требует сжатия в средней зоне. Четыре узких сектора уменьшают ошибку, однако окончательная геометрия все равно формируется пластической деформацией в гипсе.

Готовый A3-генератор считает все 11 стилей отдельно, включая углозависимые меридианы и поперечные дуги. Это уменьшает, но не отменяет пластическую доводку мягкой глины в форме. Отдельные PDF создаются для v60_01 и v60_02.

WATCH - фильтр 01/02 не подтвержден физически

Значения пресетов практические, а не опубликованные внутренние размеры Hario. Проверьте посадку конкретной пачки фильтров, высоту над чашкой и скорость пролива до тиражирования формы.

Свежая проверка OpenSCAD 2021.01

Проверены F6/экспорт:

  • master - simple 3D object, STL создан;
  • box - simple 3D object, STL создан;
  • mount_pins - simple 3D object, STL создан;
  • support_cutter - simple 3D object, STL создан;
  • support_plate - STL создан;
  • clay_blank_2d - DXF создан;
  • support_plate_2d - DXF создан.

Для default smooth_sculpted, draft: минимальная расчетная стенка больше 3.6 мм, обратный уклон не найден, фактический минимальный угол съема по сетке больше 22 градусов. Наиболее требовательный dimpled_grid автоматически получает release_scale около 0.93 и сохраняет угол выше production-минимума 5 градусов.