Валидное BREP-тело из STL

Знакомый, который профессионально работает с CAD, назвал первое, чего ему не хватает от нейросетей: «Авто сшивку STL в BREP тела». Задача звучит решённой. Пока не посмотришь, что именно получается после сшивки.

STL хранит треугольную сетку. Я взял деталь `tiltservomount_std.stl` — 2884 треугольника — и сшил её в замкнутое BREP-тело. Тело валидно. Но в нём 808 граней, и все плоские: отверстия и проушина состоят из узких плоских полосок, а не из цилиндрических поверхностей.

Для этого я добавил в свой форк FreeCAD MCP инструмент `convert_mesh_to_brep`, который распознаёт в сетке плоскости и цилиндры и заменяет их аналитическими BREP-поверхностями. На той же детали получилось 31 грань: 21 плоскость и 10 цилиндрических. Типы поверхностей прочитаны из самого BREP.

Шесть деталей из одного набора прошли через инструмент без ручного выбора граней и размеров: все тела замкнуты и валидны, объём изменился меньше чем на 0,04%. Но это первый тест: детали из одного комплекта, на них же шла разработка. Близкий объём не доказывает точность поверхностей, а максимальное расстояние до исходной сетки я не измерял.

Мне нужны STL, на которых инструмент сломается. Разбор, конвейер, таблица по всем шести деталям и пример вызова — в статье, код открыт: https://hram.github.io/articles/freecad-mcp-mesh-to-brep/

Валидное BREP-тело из STL | Сетка — социальная сеть от hh.ru