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


Сейчас проблема уже НЕ в общей идее балки. Тип балки правильный: объёмный лоток, 2 нижних пояса, 1 верхний пояс, треугольный каркас.

Но текущая версия всё ещё НЕ принята, потому что остался геометрический косяк в торцах и в крайних панелях.

Смотри на текущий рендер ОДНОЙ балки и исправляй ИМЕННО его.

ЧТО ИМЕННО СЕЙЧАС НЕ ТАК
1. Торцы балки собраны не так чисто, как центральные панели.
2. Первая и последняя панели визуально отличаются от остальных.
3. Есть ощущение, что крайние сегменты строятся отдельной/особой логикой.
4. Замыкание верхнего пояса, нижних поясов и раскосов на концах не выглядит идеально регулярным и симметричным.
5. Нужна одна чистая, регулярная, аккуратно замкнутая треугольная ферма без «кривых» крайних участков.

ЧТО НУЖНО СДЕЛАТЬ
Не переписывай сцену целиком. Исправь ТОЛЬКО генерацию одной балки и затем тиражирование этой же правильной балки.

ЖЁСТКИЕ ТРЕБОВАНИЯ

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

2. Все ВНУТРЕННИЕ панели должны быть одинаковыми.
Нельзя, чтобы последняя или первая панель имели другую геометрию, другой наклон, другой шаг или иной способ примыкания.

3. Торцы балки должны быть аккуратно и симметрично завершены.
Оба торца должны подчиняться ОДНОЙ и ТОЙ ЖЕ ясной схеме завершения.
Никаких случайных коротких сегментов, лишних выступов, недозамкнутых узлов или “почти попавших” соединений.

4. Каждый конец каждого стержня должен совпадать ТОЧНО с узлом.
Запрещены:
- микросмещения;
- недолёты до узла;
- перелёты за узел;
- отдельные магические offset для крайних раскосов;
- визуально разные способы крепления на левом и правом торце.

5. Верхний пояс должен быть:
- строго один;
- строго по центру;
- строго прямой;
- без изломов;
- без странного торцевого поведения.

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

7. Если текущая логика крайних сегментов сделана специальными условиями внутри цикла — убери эту кривую логику.
Если нужно, перестрой генерацию балки через ЯВНУЮ таблицу узлов и потом строй стержни только между этими узлами.

ПРАВИЛЬНЫЙ ПОДХОД
Сначала выпиши явную узловую схему балки.

Используй только узлы трёх типов:
- leftBottom(u)
- rightBottom(u)
- top(u)

Далее определи:
- регулярные внутренние панели;
- единое правило завершения левого торца;
- единое правило завершения правого торца.

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

ОБЯЗАТЕЛЬНЫЙ ПОРЯДОК РАБОТЫ
1. Сначала коротко диагностируй, какой именно участок кода даёт кривые торцы.
2. Потом исправь только генерацию балки.
3. Сначала отрендери ОДНУ балку в изоляции.
4. Проверь письменно:
   - оба торца симметричны;
   - первая и последняя панели не отличаются по логике от общей схемы;
   - верхний пояс один и прямой;
   - узлы совпадают точно;
   - нет торчащих или криво замкнутых стержней.
5. Только после этого покажи сцену целиком.

ЧТО НУЖНО ПРИСЛАТЬ
1. Краткий диагноз причины текущего косяка.
2. Diff только по генерации балки.
3. Скриншот одной балки в изоляции.
4. Скриншот сцены целиком.
5. Подтверждение, что:
   - все балки являются точными копиями одной процедуры;
   - торцы собраны чисто;
   - крайние панели больше не косячат;
   - нет лишних выступов, сломанных сегментов и несимметричных завершений.

Запрещено отвечать “готово”, если на одиночной балке хотя бы один торец всё ещё выглядит криво или крайние панели отличаются от чистой регулярной схемы.