4 - 2013

Знакомьтесь — геометрическое ядро C3D

Николай Голованов, Олег Зыков, Юрий Козулин, Александр Максименко

Год назад со скромного постера на Конгрессе о Будущем Инженерного Программного Обеспечения (COFES) начался путь геометрического ядра C3D на рынок. О том, что интересного произошло за это время, мы и расскажем в данной статье. Но в начале нужно пояснить, что же такое — это ядро геометрического моделирования и кому оно нужно.

Авторы статьи — «костяк» команды геометрического ядра C3D

Николай Голованов, архитектор, руководитель разработки, к.т.н. В АСКОН 17 лет

Олег Зыков, директор по продукту C3D. В АСКОН 12 лет

Юрий Козулин, руководитель разработки C3D Modeler, к.т.н.
 В АСКОН 7 лет

Александр Максименко, руководитель разработки C3D Solver. В АСКОН 13 лет

Кому нужно геометрическое ядро?

Геометрическое ядро — это программный компонент для разработчиков прикладных решений. Оно представляет собой программную реализацию математических методов построения численных моделей геометрии реальных и воображаемых объектов, а также математических методов управления этими моделями. Численные модели используются в системах, выполняющих проектирование (CAD), расчеты (CAE) и подготовку производства (CAM) моделируемых объектов.

Каждый разработчик прикладного решения стоит перед выбором: писать ли необходимые математические алгоритмы самому или приобрести сторонний компонент. У каждого подхода есть свои плюсы и минусы.

Что дает разработчику использование стороннего ядра? Главное — это возможность быстро повысить функциональные возможности своего продукта, не занимаясь решением задач геометрического моделирования, а работая над прикладными задачами приложения. Следующим важным моментом является снижение затрат на разработку продукта, ведь математические алгоритмы — самая сложная и трудоемкая часть систем автоматизированного проектирования.

Основные потребители геометрического ядра — это разработчики САПР, производители 3D­пакетов. Но не стоит забывать о том, что ядро может пригодиться и учебным заведениям! Оно поможет в обучении студентов по курсам: начертательная геометрия, машинная графика, геометрическое моделирование и вычислительная геометрия, будет полезно в образовании будущих математиков­программистов и разработчиков САПР. Использовать напрямую ядро (а не API CAD­систем) можно при выполнении научно­исследовательских работ, требующих построения трехмерных геометрических моделей. Кроме того, ядро геометрического моделирования может использоваться как при написании вузовского специализированного программного обеспечения, так и для создания коммерческого ПО в рамках малых инновационных предприятий, активно создаваемых при университетах.

Кстати, о предприятиях. Если в организации есть сложные, узкоспециализированные задачи, для решения которых на рынке нет программного обеспечения (или оно по каким­то причинам недоступно), то лицензирование ядра позволит такое ПО создать самостоятельно. Конечно, в штате предприятия должны быть программисты и аналитики, обладающие необходимым опытом и знаниями.

Как видите, задач для геометрических ядер много, а самих ядер — очень мало. Полноценные коммерческие ядра геометрического моделирования разработаны единичными командами в мире, а в России компания АСКОН — единственная, кому это удалось. И сейчас настало время поговорить о нашем C3D.

Что такое C3D?

Решение о написании собственного геометрического ядра было принято в компании АСКОН в 1995 году в рамках начала работ по созданию системы трехмерного моделирования КОМПАС­3D, коммерческий выпуск которой состоялся в 2000 году. До 2012 года ядро не было коммерческим продуктом и использовалось только в составе собственной САПР КОМПАС­3D. Все эти годы оно совершенствовалось, обеспечивая функциональное развитие КОМПАС­3D. Перечислим основные этапы:

  • 2000 год. Создание достаточного количества алгоритмов трехмерного твердотельного моделирования для использования в САПР;
  • 2001 год. Реализация решателя геометрических ограничений и конвертеров в основные обменные форматы данных;
  • 2002 год. Создание механизма построения ассоциативных видов по трехмерным моделям;
  • 2003 год. Появление основ поверхностного моделирования;
  • 2004 год. Описание математических алгоритмов создания элементов листового тела;
  • 2005 год. Реализация многотельного моделирования;
  • 2007 год. Поддержка каркасной модели;
  • 2008 год. Реализация кинематических сопряжений для моделирования механизмов;
  • 2009 год. Поддержка атрибутов геометрической модели;
  • 2010 год. Появление полноценного поверхностного моделирования;
  • 2011 год. Поддержка кроссплатформенности;
  • 2012 год. Реализация элементов прямого моделирования.

Команда разработки 17 лет развивала геометрическое ядро: совершенствовала его архитектуру, создавала новую функциональность, модернизировала ранее реализованные методы. Без уникального опыта, основанного на практическом применении КОМПАС­3D на десятках тысяч рабочих мест, невозможно было бы говорить о возможности выпуска C3D в свободное коммерческое плавание. Создать конкурентоспособное ядро без опыта практического применения просто невозможно.

В настоящий момент ядро C3D — единственное в мире, объединяющее в одном продукте три важнейших модуля САПР:

  • геометрический моделировщик C3D Modeler, предоставляющий достаточный набор возможностей для твердотельного и гибридного моделирования, эскизирования и 2D­черчения;
  • решатель геометрических ограничений C3D Solver, позволяющий накладывать вариационные зависимости на 2D­ и 3D­элементы геометрической модели;
  • конвертер данных C3D Converter, обеспечивающий чтение/запись геометрической модели в основные обменные форматы.

Все эти модули теперь доступны не только командам разработки внутри АСКОН, но и всем желающим.

Первопроходцы

В эти дни, весной 2013 года, первый продукт, подготовленный на ядре АСКОН вне собственных подразделений разработки, представлен широкой публике. Это ESPRIT Extra CAD — простой в использовании трехмерный моделировщик, встроенный непосредственно в популярную CAM­систему ESPRIT. Интерфейс системы можно увидеть на рис. 1. Разработка выполнялась совместно компаниями ЛО ЦНИТИ и Rubius.

Рис. 1. ESPRIT Extra CAD

Рис. 1. ESPRIT Extra CAD

В конце 2012 года лицензию на ядро приобрела компания Базис­центр, которая будет использовать наш компонент в конструкторских модулях своей мебельной САПР. Два этих события уже говорят о том, что компания АСКОН не зря решила предоставить сторонним компаниям доступ к своему геометрическому ядру. Рынок действительно нуждался в новом игроке!

Говоря о заказчиках C3D, не будем обходить вниманием и компанию АСКОН, которая в феврале выпустила КОМПАС­3D V14 (рис. 2) — 3D­САПР, построенную на новейшей, четырнадцатой, версии ядра C3D. Все текущие разработки АСКОН сегодня также базируются на нашем программном компоненте.

Рис. 2. КОМПАС-3D V14

Рис. 2. КОМПАС-3D V14

Что нового в C3D V14?

Новая версия для нас особенная — ведь это первый релиз продукта после объявления о старте лицензирования ядра внешним разработчикам. Ранее все релизы выходили только в составе КОМПАС­3D. Это уже оказало влияние на продукт: теперь в развитии ядра мы опираемся не только на мнение разработчиков КОМПАС­3D, но и на пожелания новых клиентов. Начиная с V14, ядро имеет свою систему защиты и возможность покомпонентного лицензирования. В остальном же развитие идет так же, как и раньше — совершенствуются алгоритмы, расширяется функциональность, повышаются скорость и надежность.

C3D Modeler

Функциональные возможности модуля:

  • моделирование тел;
  • моделирование поверхностей;
  • моделирование листовых тел;
  • триангуляция геометрической модели;
  • вычисление инерционных характеристик модели;
  • анализ столкновений элементов модели;
  • построение плоских проекций и разрезов модели.

В новой версии доработана операция скругления: появилась возможность остановки скругления (рис. 3в) и остановки с площадкой (рис. 3г).

В операциях Оболочка, Придание толщины и Эквидистантная поверхность, имеющих общие алгоритмы, появилась возможность обработки вырождения коротких ребер и поверхностей (граней). Для поверхностей возможна обработка как явного (невозможность создания эквидистанты), так и неявного вырождения (поглощение соседними гранями). Наглядно это видно на рис. 4.

Рис. 3. Доработана операция скругления: исходная ситуация (а), было возможно ранее (б) и (в), стала возможным остановка скругления (г)

Рис. 3. Доработана операция скругления: исходная ситуация (а), было возможно ранее (б) и (в), стала возможным остановка скругления (г)

Рис. 4. Оболочка: было (а), стало возможным (б, в)

Рис. 4. Оболочка: было (а), стало возможным (б, в)

Рис. 5. Эллиптическая обечайка и ее развертка

Рис. 5. Эллиптическая обечайка и ее развертка

Следует также отметить такую крупную новинку, как построение развертки линейчатого тела (на рис. 5 показан пример Эллиптической обечайки).

C3D Solver

Сегодня C3D Solver — это мощный решатель 2D­ограничений для 2D­черчения и эскизов в 3D, а также решатель 3D­ограничений для создания сборочных единиц и кинематического анализа.

В новой версии появилась возможность диагностики переопределенных систем ограничений. В КОМПАС­3D данная функция реализована в виде выделения оранжевым цветом «лишних» ограничений (рис. 6).

Рис. 6. Переопределенный эскиз в КОМПАС-3D

Рис. 6. Переопределенный эскиз в КОМПАС-3D

Рис. 7. Параметризация NURBS

Рис. 7. Параметризация NURBS

Доработана параметризация NURBS­кривых: улучшилась решаемость системы ограничений, стало возможным множественное касание NURBS с другими кривыми. Особое внимание было уделено концевым случаям — теперь обеспечена гладкая стыковка контуров с участием сплайнов (рис. 7).

Кроме того, существенно доработаны алгоритмы наложения ограничений на эллипс и проекционную кривую, улучшена работа на крупномасштабных чертежах.

C3D Converter

В настоящее время модуль поддерживает следующие форматы:

  • STEP (чтение/запись);
  • Parasolid (чтение/запись);
  • ACIS (чтение/запись);
  • IGES (чтение/запись);
  • STL (запись);
  • VRML (запись).

В V14 cущественно улучшена работа с импортированными поверхностями: теперь конвертер всегда распознает элементарные поверхности при импорте NURBS. Также для всех поддерживаемых форматов решена задача преобразования NURBS­поверхностей, описывающих цилиндры или конусы непосредственно в цилиндры или конусы, и задача объединения поверхностей вращения при импорте (например, из половинок цилиндра получаем один).

***

Мы перечислили только основные новинки, в новом релизе их гораздо больше. Большая их часть уже нашла свое применение в недавно вышедшей системе трехмерного моделирования КОМПАС­3D V14. И мы надеемся, что эти и другие технологические находки еще найдут применение в новых системах, создаваемых нашими настоящими и будущими пользователями.

Ядро геометрического моделирования C3D доступно для лицензирования всем разработчикам САПР и прикладных решений, вузам и промышленным предприятиям. На три месяца компонент можно получить на бесплатное тестирование. Вся документация продукта доступна онлайн. Для удобства ознакомления с ядром разработано небольшое приложение под операционные системы Windows и Linux, которое доступно в исходных текстах. По всем вопросам, связанным с C3D, обращайтесь на почту c3d@ascon.ru. 

САПР и графика 4`2013