27.06.2019

44 аксонометрические проекции в новом релизе Renga.
Как геометрическое ядро C3D участвует в развитии первой российской BIM-системы

В июне вышел новый релиз комплексной BIM-системы архитектурно-строительного проектирования Renga, которая разрабатывается инструментами C3D Toolkit. Он примечателен невероятным разнообразием аксонометрии – ни одна другая аналогичная система не предоставляет столь широкого выбора проекций. Кроме того, заметно нарастил «мускулы» инструмент «Двери» в Renga Architecture, а в Renga MEP появился функционал для проектирования систем отопления и индивидуальных тепловых пунктов.

Посмотрим, как проявились в новых возможностях Renga лучшие качества компонентов C3D Toolkit: геометрического ядра C3D Modeler и параметрического решателя C3D Solver. Разобраться в особенностях создания BIM-программ нам помогают разработчики Renga Software: Евгений Коростелев, Андрей Большаков и технический директор Илья Маз.

Аксонометрические проекции

Инструмент «Аксонометрический вид», доступный во всех программах семейства Renga, предлагает на выбор 44 проекции, включая все положенные по стандарту ГОСТ «ЕСКД. Аксонометрические проекции». Для пользователей Renga MEP, проектирующих внутренние инженерные системы (водоснабжение, канализация), жизненно необходимы аксонометрические проекции, т.к. они являются обязательной частью проектной документации по стандартам ГОСТ СПДС.


Аксонометрическая схема хозяйственно-бытовой канализации

Стандартные проекции (планы этажей, виды фасадов и разрезов) всегда присутствовали в Renga. В новом релизе добавились новые проекции: прямоугольные и косоугольные. Но если для прямоугольного проецирования в C3D Modeler был предусмотрен специальный метод, то косоугольное потребовало разработки соответствующего алгоритма.


Прямоугольные и косоугольные проекции

Разработчики Renga Software и C3D Labs совместными усилиями решили задачу косоугольного проецирования – путем использования прямоугольного проецирования с последующим преобразованием плоской проекции. Объект проецируется ортогонально на вспомогательную плоскость методом GetVestiges ядра C3D Modeler. Затем выполняется трансформация масштабирования и поворота – операция над примитивами C3D Modeler. Результат этих преобразований соответствует искомой проекции на нужную плоскость косоугольного проецирования.

Евгений Коростелев (Renga Software):

«Мы можем отобразить проекции модели на чертеже, получить их в векторном виде, сохранить в различные векторные форматы. Для Renga MEP востребована аксонометрическая косоугольная фронтальная изометрия, и мы реализовали алгоритм построения с использованием геометрического ядра C3D Modeler. Важно отметить, что большинство BIM-систем не реализуют косоугольного проецирования, тем самым ограничивая пользователей. На мой взгляд, это неоправданное ограничение, и мы рады предоставить новые возможности для оформления чертежей согласно актуальным стандартам.

Двери в Renga Architecture

Как и полагается BIM-системе, Renga Architecture основана на принципах объектного проектирования, когда трехмерная модель здания создается инструментами (объектами): стена, дверь, колонна, окно, лестница и т.д. Их параметры задаются через Стили инструмента. Июньский релиз программы содержит усовершенствованный инструмент «Двери»: в его Стилях теперь можно управлять параметрами дверной коробки, порога, наличников, дверного полотна, фрамуги. За формирование 3D-модели двери с заданными параметрами отвечает геометрическое ядро C3D Modeler.

Чтобы линии открывания дверей отображались на чертеже, разработчики Renga использовали такую возможность C3D Modeler, как затенение кривых твердыми телами при проецировании. Кстати, этот функционал появился в ядре в 2018 году именно по запросу Renga Software.


Сравнение отображения дверей на 3D виде: было (вверху) и стало (внизу)

Трассы отопления и водоснабжения в Renga MEP

Объектный подход работает и в программе Renga MEP: здесь основным объектом при проектировании водоснабжения, а теперь и отопления является трасса. Что такое трасса? Это контуры, которые состоят из прямолинейных отрезков и соединяют между собой источники воды и потребителей (оборудование, сантехнику). На трассы навешиваются трубы, задвижки, аксессуары, детали, фитинги.


Система отопления многоэтажного жилого многоквартирного дома в Renga MEP

Поскольку Renga нацелена на максимальную автоматизацию труда проектировщиков, пользователь не строит трассу вручную. Вместо этого он выбирает два объекта, и система сама прокладывает между ними трассу согласно специальным алгоритмам. А что если нужно передвинуть сантехническое оборудование? При этом трасса не должна оторваться от точек подключения.

На случай модификации трассы в Renga MEP был разработан свой алгоритм редактирования: найти ближайшие к потребителю (или редактируемой родительской трассе) сегменты трассы, определяющие максимальное число степеней свободы, и изменить их длину.

Для реализации алгоритма разработчики Renga Software использовали трехмерный решатель параметрического ядра C3D Solver и его ограничение «линейный паттерн», согласно которому объекты располагаются вдоль определенной линии. При этом в систему ограничений не включаются «навесные» элементы (трубы, детали, аксессуары), так как они не должны влиять на возможность решения системы.

Как работает C3D Solver при редактировании трассы, объясняет Андрей Большаков (Renga Software):

«Мы вызываем функцию 3D решателя, передаем в него опорный объект (начало сегмента трассы) и добавляем линию, на которой лежит сегмент. Конечную точку добавляем с помощью другой функции 3D решателя. Добавляем расстояние между начальной и конечной точками и флаг возможности изменения длины сегмента.

auto pattern = GCM_AddLinearPattern(m_system, startPoint, dirLine);
GCM_AddGeomToPattern(m_system, pattern, endPoint, distance, GCM_NO_ALIGNMENT, scaleType);

Для сегментов, которые определяют степени свободы, задаем флаг (scaleType) GCM_LINEAR_SCALE. Для остальных сегментов, которые не должны изменять свою длину, – флаг GCM_RIGID.

Мы также должны зафиксировать направление сегментов. Если сегменты потеряют свойство параллельности с оригиналом, то может измениться угол между ними, а набор фитингов (отводов и тройников) у нас ограничен. После модификации трассы не хотелось бы искать новые отводы под новые углы. Для этого достаточно зафиксировать линию, определяющую линейный паттерн:

GCM_FixGeom(m_system, dirLine);

Нельзя забывать, что помимо простых трасс, которые соединяют два оборудования, могут быть ответвления, когда дочерняя трасса одним концом подходит не к оборудованию, а к родительской трассе. Здесь есть требование: точка соединения дочерней и родительской трасс (тройник) не должна покинуть пределы своего сегмента. Нам могло бы пригодиться ограничение «Точка на отрезке», но в C3D Solver его пока нет. В результате мы реализовали его самостоятельно следующим образом.

Добавляем ограничение «Точка на прямой» GCM_COINCIDENT или GCM_LINEAR_PATTERN. Прямая – та, на которой лежит отрезок родительской трассы, к которому подходит дочерняя трасса, а точка – это точка тройника. Решаем систему ограничений. Проверяем, лежит ли новое положение точки тройника в пределах отрезка. Если точка оказалась вне отрезка, то удаляем первоначальное ограничение методом GCM_RemoveConstraint и накладываем ограничение «Совпадение» точки тройника и ближайшего к ней конца отрезка. Решаем систему заново».

Что показывает опыт использования геометрического ядра C3D в разработке Renga? Хотя задачи трехмерного моделирования в BIM-системах не превосходят по сложности MCAD, тем не менее свои специфические требования здесь есть, и в компонентах C3D они учитываются. Если же в наших компонентах не хватает какой-либо функциональности, то мы добавляем ее по запросу заказчика либо совместно находим оригинальное решение на основе существующих методов.


Google+