Help — что есть что (и что крутить)
Закрыть
Алгоритм — быстрый self‑avoiding walk + коннектор к выходу. AutoBest перебирает seed’ы и выбирает лучший
по выбранной цели optimizerGoal. Рефайн идёт порциями (idle), чтобы UI не вис.
Температура (твоя экспонента)
Модель:
T(s) = Tamb − (Tamb − Tboil) · exp(−s / coolingLength),
где
s — длина по трубе от входа.
Смысл
coolingLength: это «характерная длина», на которой труба отыгрывает ~63% разницы температур.
Больше → холод держится дальше.
Как прикинуть (очень грубо, но по физике правильно по форме):
dT/ds = (U·P)/(ṁ·cp) · (Tamb − T),
откуда
coolingLength ≈ (ṁ·cp)/(U·P).
Тут:
ṁ — массовый расход (кг/с),
cp — теплоёмкость жидкости (Дж/(кг·K)),
P — периметр теплообмена (≈ 2π·Rнаруж),
U — «общий коэффициент теплопередачи» (Вт/(м²·K)): включает стенку, контакт, конвекцию воздуха, изоляцию.
Практически:
U обычно решает всё. Для голой трубки в воздухе U может быть ~5–25, с хорошей изоляцией — сильно меньше.
Материал стенки (PLA/металл) влияет через теплопроводность и толщину, но часто доминирует именно внешняя конвекция/изоляция.
Поэтому в этом софте
coolingLength — удобный «ползунок‑калибровка»: подгоняешь по наблюдаемому выходу/профилю.
Цвет температуры
- Синий = холодно, оранжевый = тепло. Если у тебя наоборот — включай
tempSwapColors.
tempGamma — только контраст визуализации (не физика).
Список параметров (по папкам GUI)
Actions
- Help — это окно.
- Import (JSON/OBJ) — загружает JSON (полный стейт) или OBJ с meta‑строкой.
- Export JSON — сохраняет текущий стейт + points.
- Export OBJ — экспорт геометрии как OBJ (Blob, чанками; без гигантских строк).
- OBJ HighPoly x — множитель сегментов при экспорте.
- OBJ max MB — жёсткий лимит оценочного размера OBJ.
- Unlock imported path — снимает «заморозку» после импорта points (если хочешь снова генерить).
Volume
- volumeType: Box / Ellipsoid / Frustum.
- boxX/boxY/boxZ — размеры коробки.
- ellA/ellB/ellC — полуоси эллипсоида.
- frustumR1/frustumR2/frustumH — радиусы и высота усечённого конуса.
Tube
- outerRadius — внешний радиус трубы (визуал и геометрия; также влияет на шаг/avoid).
- innerRadiusVisual — внутренний радиус (только визуальная «полость»).
- showLumen — показывать внутреннюю полость.
- radialSegments/tubularSegments — качество TubeGeometry.
- renderSmoothing — лёгкое сглаживание контрольных точек (визуал).
Packing
- stepFactor — длина шага относительно диаметра трубы.
- avoidDistanceFactor — минимальная дистанция самонепересечения (в диаметрах).
- maxTurnDeg — максимальный поворот на шаг.
- maxPoints — лимит точек траектории.
AutoBest
- optimizerGoal: Balanced / MaxLength / MaxFill / MaxUniform / MinExitTemp / MinConnRatio.
- autoBestEnabled — включает перебор seed’ов (quick + idle refine).
- quickTries — сколько seed’ов проверять быстро при любом изменении.
- refineMaxTries — сколько seed’ов перебирать в простое.
- stride — шаг по seed’ам.
Budgets
- timeBudgetMsQuick — бюджет генерации для быстрого режима.
- timeBudgetMsFull — бюджет для полного режима (refine).
- connectorBudgetMs — бюджет на достройку к выходу.
Quality
- qMinUniform/qMinFill/qMaxConnRatio — фильтр качества: отсекает плохие seed’ы.
Temperature
- showTemp — включить раскраску температурой.
- ambientC/boilC — Tamb/Tboil.
- coolingLength — Lc в экспоненте.
- tempGamma — контраст градиента.
- tempSwapColors — поменять местами «холод/тепло» в палитре.
Interaction
- enableDrag — перетаскивание entry/exit.
- showNearPoints — подсветка близких самоконтактов (красные точки).
Simulation
- Start water test — запускает «воду» (нить шариков, заполняющую трубу).
- Stop — останавливает.
- Speed (pts/s) — скорость заполнения.
OBJ экспорт
OBJ строится из ломаной (LineCurve3) — без CatmullRom overshoot. Генерация идёт чанками в Blob, без
гигантских JS‑строк. В комментарии #HOSEPACKER_META ... хранится короткий meta (без points).