Загрузка данных


Не утверждай этот план. Claude сейчас пытается не исправить дефект, а замаскировать его шариками на каждом узле. На референсе никаких сферических соединителей нет — там обычные сваренные прутки.

addNodeHub() сделает результат хуже:

балка станет похожа на конструктор с бусинами;
сферы на u=0 и u=length выйдут за границы пролёта на hubRadius;
верхние сферы превысят сохранённый beamH;
нижние сферы залезут в лоток и уменьшат полку под блоки;
68 хабов по 30–50 треугольников добавят примерно 2000–3400 граней, то есть могут почти удвоить геометрию;
истинная проблема крышек и порядка отрисовки останется под шарами.

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

Отправь Claude такой комментарий к плану:

План itr9 НЕ утверждён.

Не добавлять addNodeHub и не ставить сферы на узлы. На референсе нет шаровых соединителей. Сферы будут маскировать дефект, изменят силуэт балки, выйдут за U=0..length на торцах, превысят footprint по высоте и частично займут полки лотка.

Численное совпадение осей стержней подтверждает только координаты центральных линий. Оно НЕ подтверждает корректность:
- торцевых крышек bar3d;
- порядка отрисовки граней в общем узле;
- визуального сопряжения диагонали с поясом;
- отсутствия наложенных coplanar/почти coplanar граней.

Нужна правка самих стыков, а не добавление новой геометрии поверх них.

НОВЫЙ ПЛАН

1. Сначала сделать одинаковые крупные скриншоты:
   - одного внутреннего нижнего узла;
   - одного внутреннего верхнего узла;
   - одного торцевого нижнего узла;
   - свободного торца верхнего пояса.

Для каждого узла перечислить:
- какие стержни в нём сходятся;
- какие торцевые крышки реально нарисованы;
- в каком DOM/depth-порядке они отрисованы;
- какая именно грань создаёт видимый шов или тёмный клин.

2. Изменить bar3d, добавив управление крышками:

bar3d(pA, pB, rodRadius, sides, {
  capStart,
  capEnd,
  elementType,
  beamId
})

3. Правила крышек:

- Непрерывные верхний и нижние пояса остаются одним стержнем на всю длину.
- У поясов крышки есть только на их настоящих свободных концах.
- У каждого раскоса конец, входящий в пояс, строится БЕЗ торцевой крышки.
- Торцевые крышки раскосов внутри узлов запрещены.
- Боковые грани раскоса заканчиваются точно в математическом узле, без удлинения и offset.
- Никаких сфер, хабов, муфт или декоративных накладок на первом проходе.

4. В местах почти одинаковой глубины ввести детерминированный tie-breaker сортировки:

- сначала грани раскосов;
- затем грани продольных поясов;
- торцевые крышки свободных концов — последними среди граней соответствующего стержня.

Это должно создавать визуальное впечатление, что раскос входит в пояс, а не наклеен поверх него своей крышкой.

Tie-breaker применять только при близких depthKey в пределах отдельного узла. Не ломать общий far-to-near порядок сцены.

5. Не менять:
- leftBottom/rightBottom/top;
- panelCount и pitch;
- координаты узлов;
- длину поясов;
- форму лотка;
- камеру и proj();
- позиции балок;
- остальные объекты и стадии.

6. Добавить проверки:
- ни одна боковая вершина не выходит за U=0..length;
- крышка раскоса отсутствует на каждом конце, соединённом с поясом;
- крышки поясов существуют только на настоящих свободных концах;
- количество сферических или дополнительных узловых объектов равно нулю;
- footprint балки после правки совпадает с itr8.

7. После правки сначала показать одну балку:
- общий вид;
- левый торец крупно;
- правый торец крупно;
- внутренний верхний и нижний узлы крупно.

Только после визуально чистых узлов показывать полную сцену.

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

Главная мысль для Claude:

Координаты стержней, возможно, уже правильные. Исправлять нужно не узлы шарами, а торцевые крышки раскосов и порядок отрисовки граней в месте соединения.

И ещё: его фраза «сфера — тот же приём, что сварной узел реальной фермы» неверна. Сварной узел не выглядит как шар диаметром больше арматуры. Это будет заметная чужеродная деталь.