CAD
Браузерное (WebGL) CAD/CAE-приложение для автоматизированного проектирования монолитных утепленных фундаментных плит и связанных конструкций. По нарисованному в 3D-сцене контуру здания система за секунды генерирует полную инженерную модель: тело плиты произвольной ортогональной формы, многослойный пирог основания, двухуровневую раскладку арматуры с П-элементами, фиксаторами, маяками и распорными элементами, опалубку с упорами, наружные и внутренние стены, плиты перекрытия, приямки и проемы. Параллельно автоматически рассчитываются спецификация материалов (арматура по диаметрам с массами, бетон, песок, щебень, утеплитель, вязальная проволока, фиксаторы) и формируется комплект рабочих чертежей в PDF - все внутри обычного браузера, без установки тяжелого инженерного ПО.
Задача
Проектирование армирования и подготовка рабочей документации по монолитным плитам - рутинная, трудоемкая и подверженная ошибкам работа. В классическом маршруте (AutoCAD/Revit + ручной подсчет) на один объект уходит до 1–2 рабочих дней: вручную раскладываются стержни с шагом по нормам, обходятся приямки и отверстия, подбираются защитный слой и фиксаторы, считаются длины и массы каждого типоразмера, оформляются чертежи и спецификация. Любое изменение габаритов или толщины плиты означает пересчет практически с нуля.
Требовалось приложение, которое:
- принимает контур плиты произвольной ортогональной формы (Г-, Т-, П-образные и более сложные планы), а не только прямоугольник;
- полностью автоматически строит конструктив и армирование по правилам строительных норм;
- мгновенно пересобирает всю модель при изменении любого параметра;
- генерирует готовую спецификацию и чертежи;
- работает в браузере на любом устройстве, без установки и без мощного железа.
Решение
Реализован параметрический движок, в котором вся конструкция - чистая функция от набора параметров и контурных точек. Любое редактирование (сдвиг угла, смена толщины, добавление проема) вызывает единую процедуру пересборки CreateBase(), заново детерминированно выводящую геометрию, армирование, опалубку и спецификацию. Это убирает целый класс ошибок рассинхронизации модели и документации.
Ключевые возможности:
- Интерактивное черчение контура в 3D с привязкой к существующим точкам, фиксацией углов кратно 90°, призраком стены и живыми размерными подписями в миллиметрах.
- Автогенерация армирования: нижняя и верхняя сетки с нормативным шагом, краевые П-стержни, фиксаторы защитного слоя (тип подбирается автоматически от величины защитного слоя), маяки с итеративным заполнением больших пролетов, распорные элементы - с корректным обходом приямков и отверстий.
- Многослойный пирог основания (геотекстиль, песок, щебень, подбетонная плита, утеплитель и т. д.) с индивидуальными правилами укладки и расширения слоев за габарит плиты.
- Вырезание проемов и отверстий (прямоугольных и круглых) в стенах, плитах и перекрытиях через булевы операции над мешами в реальном времени.
- Автоматическая спецификация: длины и массы арматуры по диаметрам (с таблицей погонных масс), объемы бетона и стен, объемы сыпучих и утеплителя, количество и тип фиксаторов, расход вязальной проволоки.
- Экспорт: сохранение/загрузка проектов, выгрузка спецификации и генерация PDF-чертежей через мост в хостинг-страницу.
Архитектура и сложности
Собственное вычислительно-геометрическое ядро. Главная сложность - корректная раскладка арматуры внутри невыпуклого ортогонального многоугольника с вырезами. Построена модель ребер контура (вертикальные/горизонтальные Edges), сканлайн-пересечения для определения отрезков стержней строго внутри тела плиты, тесты «точка/прямоугольник внутри контура» (InBounds), классификация всех 8 типов углов для правильной стыковки наружных стен, а также снаппинг и выравнивание близких координат для устойчивости к погрешностям ручного ввода. Препятствия (приямки, отверстия) описываются через BoundsAny и вычитаются из траекторий стержней.
CSG в рантайме. Для проемов и отверстий интегрирован модуль конструктивной блочной геометрии на BSP-деревьях (булево вычитание мешей), дающий корректную «водонепроницаемую» геометрию с коллайдерами - фактические отверстия в стенах и плитах, а не визуальная имитация.
Кодификация инженерных правил. В систему заложены реальные нормативные зависимости: шаг стержней, защитный слой - типоразмер фиксатора, декомпозиция высоты опалубки на стандартные доски, погонные массы арматуры по сортаменту, эвристики расстановки маяков и упоров. Это превращает CAD-редактор в предметный экспертный инструмент.
WebGL-деплой и мост C# - JavaScript. Поскольку браузерная сборка не имеет прямого доступа к файловой системе, персистентность, чтение/запись настроек, выгрузка спецификации и генерация PDF реализованы через нативный .jslib-плагин, пробрасывающий вызовы в хостинг-страницу; модель сериализуется в JSON. Хранение проектов организовано по клиент-серверной схеме.
Полностью процедурная сцена. Конструкция не выкладывается руками в редакторе, а целиком строится из кода (примитивы, префабы арматурных изделий, материалы), что и делает возможной мгновенную параметрическую пересборку.
Результат
- Время проектирования и выпуска документации по одной плите сокращено с ~1–2 рабочих дней ручной работы до считанных минут.
- Полностью устранен ручной подсчет спецификации арматуры и материалов - источник самых частых и дорогих ошибок: количества, длины и массы выводятся напрямую из 3D-модели.
- Поддержаны планы произвольной ортогональной формы с приямками и проемами - не только типовые прямоугольные плиты.
- Нулевая установка: приложение запускается в браузере на обычном ноутбуке, без САПР-лицензий и требований к видеокарте.
- Сложная предметная логика уложена в компактное ядро (~3 000 строк прикладного C# плюс геометрический и CSG-модули) с детерминированной пересборкой модели, что делает систему предсказуемой и расширяемой.
- На выходе - связанный комплект: 3D-модель, спецификация материалов и PDF-чертежи, согласованные между собой по построению.
Стек
- Движок/платформа: Unity 2021.3 LTS, C#, целевая сборка WebGL.
- Геометрия: собственный 2D-геометрический движок (ребра контура, сканлайн, point-in-polygon, классификация углов) + модуль CSG на BSP-деревьях (булевы операции над мешами).
- UI: Unity UI Toolkit (UIElements) и uGUI, TextMesh Pro, New Input System.
- Данные/интеграции: сериализация в JSON (Newtonsoft.Json / JsonUtility), мост C# - JavaScript через .jslib (сохранение проектов, настройки, экспорт спецификации, генерация PDF), клиент-серверное хранение (HTTP API, SQL Server).
- Контент: процедурная генерация сцены, библиотека параметрических префабов арматурных изделий (стержни, П-арматура, фиксаторы ФБ, маяки, упоры, распорные элементы).
