Российская BIM-система
eng

Блог / В гостях у C3D

В процессе разработки Renga мы решаем множество задач по созданию геометрии архитектурных и конструктивных объектов, преобразованию этой геометрии, получению разрезов и фасадов зданий, расчету масс и площадей. Основную часть этих задач мы решаем с помощью математического ядра C3D.
Это мощная библиотека для твердотельного моделирования, установки зависимостей и ограничений для геометрических объектов, работы с различными форматами.
18-19 мая в прекрасном городе Коломна прошла конференция, организованная компанией C3D Labs, разработчиком этого ядра. На наш взгляд, конференция получилось отличная - душевная и полезная. Мы познакомились с новинками, поделились опытом, пообщались с разработкой, погуляли по Коломенскому кремлю. Но обо всем по порядку.
C3D Labs рассказали о новинках в Modeler, Vision и Viewer. Докладываем, как их поняли мы, активные пользователи ядра.
C3D Modeler - это основной модуль ядра C3D, предназначенный для построения и редактирования геометрических моделей, как плоских так и твердотельных. По просьбам пользователей ядра в него был добавлен ряд новых возможностей. Была значительно доработана и расширена функциональность построения скруглений. Улучшены операции выдавливания до поверхности и построения тел по сечениям, которые теперь справляются с самыми сложными формами.
 
Добавлены новые возможности для работы с листовыми телами. Что особенно интересно для команды разработки Renga Structure, появилась возможность строить серединные оболочки.
Реализован новый формат хранения данных, позволяющий выполнять частичную загрузку модели. Кроме того было проведено множество других доработок, которые перечислять в рамках нашей статьи было бы слишком утомительно, и с которым при желании можно ознакомиться в документации к ядру.
Интересной новостью стало то, что на основе C3D Modeler появился модуль 3D моделирования для Teigha, которая разрабатывается Open Design Alliance и представляет собой платформу разработки САПР с поддержкой форматов DWG и DGN. До этого момента у пользователей Teigha был выбор только между сложно лицензируемым модулем ACIS и штатным ODA Modeler с откровенно слабыми возможностями. Модуль C3D займет место как раз между ними, предоставляя широкие возможности. А приобрести его можно за один клик через ODA.
Если Modeler это старейший и базовый модуль, то Vision это новая разработка. Ядро C3D обзавелось своим собственным визуализатором модели, основанным на OpenGL.
Любой разработчик САПР, и мы не исключение, знает, какой трудоемкой задачей является создание собственного визуализатора. Так вот, C3D Vision позволит пользователям ядра получить модуль визуализации, совместимый с объектами C3D. При этом в первой версии Vision обладает базовыми функциями: представлением сцены в виде графа, выбором стиля визуализации (цветной, каркасный), настройкой освещения, настройкой уровней детализации, управлением камерой, и другими.
На основе модуля C3D Vision разработчиками ядра был создан отдельный продукт C3D Viewer. Приложение позволяет просматривать твердотельные модели, как в родном формате ядра *.c3d, так и в таких популярных форматах, как STEP, ACIS, Parasolid, IGES, STL, VRML, JT. Для загрузки сторонних моделей используется ещё один модуль ядра C3D Converter.
C3D Viewer предоставляет конечному пользователю весь спектр возможностей визуализатора. Кроме того, возможно открытие в одном пространстве массива файлов, сохранение в растр с настройками сцены, а также включение анимации модели. Для разработчиков ПО, в котором требуется просмотр твердотельных моделей, без моделирования как такового, будет интересной возможность встраивания ActiveX компонента C3D Viewer в собственные приложения.
В недавнем времени у ядра появилась C# обертка, которая сейчас покрывает почти всё API ядра. Разработчики рассказали об особенностях работы с оболочкой (отображение типов ядра в типы оболочки, особенности связанные с самой платформой .Net, и др.). Особенный интерес представляет новинка - реализация модуля C3D Solver для JavaScript, было продемонстрировано использование решателя в веб приложении. Движение в сторону применения ядра в веб кажется весьма перспективным, думаем, в скором времени стоит ожидать адаптации под веб остальных компонентов ядра.
Разумеется, на конференции C3D докладывались не только хозяева, но и гости.
Алексей Барахвостов из РФЯЦ-ВНИИТФ рассказывал о редакторе геометрической модели, которая используется в системе моделирования переноса излучения. Первоначально их редактор был основан на математическом ядре OpenCascade, но в данный момент они перешли на значительно более производительное ядро C3D.
Разработчик Базис-Центра Роман Колесников представил собственную разработку WebPlanner, это браузерное решение для моделирования интерьеров помещений. Серверная часть в своей основе использует математическое ядро C3D, а клиентская часть визуализирует модель с использованием WebGL.
От нас, т.е. от разработки Renga, докладчиками выступали Саша Волков - рассказывал об алгоритме построения крыш, Влад Монахов - рассказывал о том, как использовать пользовательские атрибуты для разметки частей геометрических объектов, Саша Ершов - рассказывал (и показывал) как можно визуализировать переменные геометрических объектов в процессе отладки в VisualStudio (у Саши есть об этом пост на Хабре).

Все наши доклады, судя по реакции аудитории, были интересными и полезными. И если доклад про отладку геометрических переменных сопровождался обсуждением вариантов доступа к адресному пространству другого процесса и прочих гиковских фокусов, столь дорогих нашему программистскому сердцу, то доклады про атрибуты и кровли вызвали сугубо практический интерес коллег по цеху инженерного ПО. Надеемся, что смогли помочь им в решении их насущных задач или хотя бы натолкнуть на новые идеи.
Сами мы узнали много нового у разработчиков ядра и участников конференции. Мы вернулись с конференции как и положено с кучей новых идей, с некоторыми решенными текущими проблемами и с мощным зарядом позитива. Да и просто пообщались с хорошими людьми=) Это мероприятие стоило посетить, а C3DLabs - Молодцы!

P.S. А если у вас после прочтения нашего обзора возникли какие-то вопросы к нам, будем рады на них ответить!