Обзор ядер геометрического моделирования. Общая структура ядра CAD, или CAD для "самых маленьких" Какое графическое 3d ядро у сапр leapfrog

  • Дата: 18.01.2024

Обзор ядер геометрического моделирования

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

Двигатель САПР

Ядро - это набор математических функций, который предназначен для точного математического представления трехмерной формы изделия и управления этой моделью. Полученные с его помощью геометрические данные используются системами автоматизированного проектирования (CAD), технологической подготовки производства (CAM) и инженерного анализа (САЕ) для разработки конструктивных элементов, сборок и изделий. Проектировщик получает доступ к функциям ядра из соответствующей САПР через графический пользовательский интерфейс. Таким образом, ядро имеет очень важное значение. Не зря его иногда называют "двигателем" системы проектирования. Именно оно определяет ее функциональные возможности и производительность.

Кроме того, от "начинки" зависит совместимость системы с другими САПР. Ведь ядро задает формат хранения моделей. Поэтому продукты, основанные на одном и том же ядре, могут читать проекты из других "братских" САПР как свои собственные. Это позволяет точно передавать геометрические и топологические параметры модели. И напротив экспорт данных из "неродных" систем сопряжен с трудностями. Для этого применяются конверторы и трансляторы, которые выполняют преобразование форматов либо напрямую (из одной системы в другую), либо через стандарты геометрического моделирования (например, IGES или STEP). Но в любом случае полной точности добиться не удается.

Сегодня в мире существует несколько десятков известных математических ядер. Исторически сложилось так, что они разделились на три типа: частные, лицензируемые и с открытым кодом. Рассмотрим особенности каждого из них.

Свое ядро ближе к САПР

Наиболее "старыми" являются частные ядра, которые создаются и развиваются только для использования с конкретной системой проектирования. Именно на них были основаны первые САПР, появившиеся еще на заре компьютерной эры. И сейчас многие компании придерживаются такого же подхода. В их числе поставщик тяжелой САПР - Dassault Systemes, разработчики систем среднего класса - think3 и VX Corporation, отечественные фирмы - АСКОН, "ГеММа", "Кредо" и др.

У своего ядра есть немало преимуществ. Во-первых, тесная интеграция с интерфейсом приложения расширяет проектировщику доступ к функциям ядра и тем самым упрощает его работу. Например, он может сколько угодно раз выполнять операции отката или повторного выполнения задания. Во-вторых, разработчик САПР может делать ядро под собственные нужды, создавая только ту функциональность, которая требуется для конкретной системы. В-третьих, у него есть возможность быстро устранять ошибки и оптимизировать свой продукт по скорости работы и по объему данных. "Собственное ядро - гибко и управляемо, изменения вносятся в него настолько оперативно, насколько это требуется самому создателю САПР", - объяснил Евгений Бахин, директор по стратегическому развитию компании АСКОН.

Кроме того, нельзя забывать финансовый фактор. При использовании покупного ядра его стоимость закладывается в цену продукта. Более того, даже за написание модулей импорта-экспорта в форматы готовых ядер нужно платить. От этого избавлены владельцы своего механизма. "Если применяется собственное ядро, то его доля в цене САПР, как правило, оптимальна и не зависит от изменений лицензионной политики стороннего разработчика", - утверждает г-н Бахин.

Но, как известно, ничего не дается даром. "Создание геометрического ядра - действительно дело сложное, - сказал Прокопий Николаев, начальник отдела разработки компании "ГеММа". - У нас такое решение сложилось исторически. В начале 90-х, когда мы начали создавать ГеММу-3D, в нашей стране не было принято использовать готовые решения для обеспечения базовой функциональности системы. Тогда практически все разработчики САПР строили продукты с нуля в меру своих сил и умения". Но для этого требовались квалифицированные специалисты в области вычислительной геометрии и компьютерной графики. Без них построить геометрическое ядро невозможно. "Найти специалиста, свободно разбирающегося в каверзных вопросах вычислительной геометрии, да еще и имеющего практический опыт, - задача очень непростая", - подчеркнул г-н Николаев.

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

Конечно, 100 человеко-лет - это немало. Неужели задачи геометрического моделирования так сложны? Оказывается, что главную трудность представляет не столько реализация стандартных функций ядра, сколько его "шлифовка" - отработка функционала и обеспечение высокой надежности. "Этого невозможно добиться одним только тестированием, - объяснил г-н Панченко. - Совершенно необходимо успешное практическое применение ядра вместе с САПР на реальных рабочих местах. Никто не будет покупать ядро и базирующуюся на нем систему, если оно ненадежно, а его функционал непригоден для использования".

Мало создать хорошее ядро, его нужно постоянно совершенствовать. Ведь требования к ядру меняются со временем. "Они зависят от очень многих факторов: круга решаемых задач, мощности вычислительной техники, да и просто от текущей моды на внешнее представление геометрических данных, - рассказал Прокопий Николаев. - Поэтому процесс улучшения ядра никогда не прекращается. При этом не только создаются новые функции, но и зачастую переделываются отлаженные части. Таким образом, идет его постоянная подстройка под текущие нужды разработчиков САПР".

Ядро напрокат

Трудоемкость создания собственного ядра заставляет некоторых игроков идти другим путем и брать готовый продукт. "Первоначально мы разрабатывали собственное ядро, часть его функций и сейчас используется в нашей системе, - рассказал Виталий Талдыкин, директор по маркетингу компании "Топ Системы". - Однако вскоре выяснилось, что это задача огромной сложности. Можно довольно быстро сделать прототип ядра, который будет выполнять основной набор требуемых функций на тестовых примерах, но потом выясняется, что для решения реальных задач нужно постоянно совершенствовать алгоритмы, учитывать частные случаи и т. д. При этом объем и сложность программного кода вырастают нелинейно, и объективно говоря, трудоемкость получения собственного промышленного ядра составляет сотни человеко-лет". По мнению Талдыкина, небольшая группа, пусть даже и одаренных людей, не может создать ядро, решающее все основные задачи геометрического моделирования на всем множестве практических примеров. "Одного таланта здесь недостаточно, - уверен г-н Талдыкин. - Это гигантский, кропотливый труд". Поэтому компания "Топ Системы" решила строить САПР на базе готового механизма.

Лицензируемое ядро разрабатывается и поддерживается одной компанией, которая продает на него лицензии другим создателям САПР. Пионером в "ядерном" бизнесе стала компания UGS, которая в 1988 г. выпустила в продажу ядро Parasolid, составляющее основу ее системы Unigraphics. В 1990 г. ее примеру последовала фирма Spatial Technologies, представившая ядро ACIS. Сейчас эти два продукта используются во многих известных системах твердотельного моделирования. Так, ACIS применяется в AutoCAD и Mechanical Desktop (Autodesk), TurboCAD (IMSI), CADKEY (Kubotek), а Parasolid - в SolidWorks (Dassault Systemes), Solid Edge (UGS), MicroStation (Bently), T-Flex ("Топ Системы"). В 2001 г. в лагерь сторонников лицензируемого ядра перешла компания PTC и начала распространять лицензии на Granite One - основу своей САПР Pro/ ENGINEER.

В общей сложности лицензируемые ядра составляют основу более сотни САПР, а число пользователей насчитывается миллионами. Таким образом, "ядерный" бизнес оказался весьма выгодным, причем с точки зрения как финансов, так и влияния на отрасль. Ведь от владельца ядра зависят многие другие игроки. Недаром в 2000 г. фирму Spatial купила Dassault Systemes, которая сейчас занимается развитием ядра ACIS. Активно совершенствует ядро и UGS. В частности, в октябре прошлого года она приобрела фирму D-Cube, чтобы встроить в Parasolid ее функции геометрического моделирования.

Разработчик получает доступ к документированным функциям ядра через интерфейс прикладного программирования (API). "Но это не значит, что мы используем только функциональность ядра и больше ничего, - подчеркнул Виталий Талдыкин. - Наши программисты самостоятельно пишут команды трехмерного моделирования с помощью мощных средств параметрического ядра системы T-FLEX. Это позволяет нам иметь ряд конкурентных преимуществ перед другими САПР, реализованными на Parasolid". Аналогично поступают и другие поставщики САПР, поэтому системы, построенные на базе одного и того же ядра, различаются по производительности и функционалу.

Компания Vero International Software использует Parasolid для создания систем проектирования пресс-форм, совместимых с различными САПР

Главное преимущество готового ядра заключается в том, что оно избавляет разработчиков САПР от решения трудоемких задач создания собственного механизма твердотельного моделирования и дает возможность сконцентрироваться на конкретной задаче, освобождая их от знания тонкостей внутреннего представления геометрических объектов. "Использование лицензируемого ядра позволяет резко сократить сроки разработки системы, повысить качество и функциональность решения и в результате быстро вывести систему в разряд пригодных к серьезному промышленному внедрению", - сказал г-н Талдыкин.

Именно так в середине 90-х поступили создатели первых систем среднего класса - SolidWorks и Solid Edge. И оказались правы: эти продукты совершили революционный переворот в мире САПР и успешно развиваются до сих пор.

У владельца ядра может быть свой интерес. Ведь открывая к нему доступ, он расширяет число приложений, совместимых со своей САПР и между собой. "Выпуская Granite One в качестве самостоятельного продукта, компания PTC не только сделала доступной базовую функциональность системы Pro/ENGINEER, но и обеспечила разработчиков инструментом для улучшения взаимодействия с этой САПР", - сказал Дмитрий Мотовилов, специалист из фирмы PTS, реселлера компании PTC.

Однако использование чуждого ядра имеет и оборотную сторону. Ведь даже имея лицензию, разработчик не может "залезть" внутрь ядра и подправить какой-либо базовый алгоритм для его улучшения. Но Виталий Талдыкин считает это положительным качеством: "Для творческих людей экспериментаторского склада это - весьма существенный недостаток, но если мы говорим о системе, которая сама является качественным промышленным изделием, то это скорее преимущество".

Кроме того, проблему может создать зависимость разработчиков от поставщика ядра. Ведь не известно, как сложится судьба этого поставщика. А вдруг он уйдет с рынка, перестанет развивать ядро или изменит правила лицензирования? Эти опасения не лишены основания. Например, с непростой ситуацией в свое время столкнулась компания "Топ Системы". "До Parasolid мы на протяжении нескольких лет использовали ACIS, но начавшаяся неразбериха с этим ядром, которая приводила к выпуску откровенно "сырых" версий, вынудила нас искать альтернативные решения, - рассказал г-н Талдыкин. - Немаловажную роль сыграла и странная политика лицензирования важных функций, которой придерживалась Spatial. Из-за этого разные разработчики оказывались в неравном положении в плане доступа к функциональности ядра. Были и другие проблемы. В результате мы перешли на Parasolid и ни разу не пожалели о своем выборе". Но, несмотря на такой опыт, он считает проблему зависимости преувеличенной: "Степень такой зависимости не превышает обычные житейские риски; например, где гарантия того, что главные разработчики "собственного" ядра не уволятся"?

К счастью, сейчас опасаться за судьбу ACIS и Parasolid не приходится. Это - зрелые продукты, существующие более десятка лет. В прошлом году у ACIS вышла 14-я версия, а у Parasolid - 16-я. Они принадлежат двум лидерам рынка САПР - компаниям UGS и Dassault, прочное положение которых сейчас не подвергается сомнению. О стабильности ситуации свидетельствует также сложившаяся вокруг ядер парадоксальная ситуация. Так, Parasolid составляет основу системы SolidWorks, которую выпускает компания Dassault - главный соперник UGS, а Autodesk использует в системе AutoCAD ядро ACIS, принадлежащее Dassault. Вроде бы все эти компании жестко конкурируют между собой, но в то же время - предоставляют друг другу лицензии на ядра. Видимо, совместно развивать рынок выгоднее.

На базе ядра ACIS компания Digital ArtForms

построила систему трехмерной графики

Впрочем, еще недавно обстановка в области механизмов моделирования была далеко не такой спокойной: между поставщиками Parasolid и ACIS бушевала война ядер: они беспрерывно снижали цены и выпускали новые версии так часто, что пользователи не успевали на них переходить. Но в 2001 г. воюющие стороны устали от "боевых" действий и предпочли заключить перемирие. Договорившись о взаимном лицензировании, они с помощью трансляторов обеспечили возможность обмена моделями между САПР с разными ядрами.

Ядро с открытым кодом

Механизмы моделирования этого типа появились позднее вышеописанных предшественников и представляют собой некоторое промежуточное звено. С одной стороны, они похожи на лицензируемые ядра, поскольку разработчик САПР получает на них лицензию у сторонней компании, а с другой - на собственные, поскольку открывают пользователю доступ к исходному коду и позволяют вносить в него изменения по своему усмотрению.

Наиболее известны два ядра с открытым кодом: Open CASCADE и комплект компании Solid Modeling Solutions (SMS), включающий программы геометрического моделирования SMLib, NLib, GSLib, TSNLib и SDLib. Оба представляют собой библиотеки функций геометрического моделирования и распространяются с открытым исходным текстом, но с одним существенным отличием: Open CASCADE можно использовать бесплатно, а за SMS нужно платить.

Open CASCADE имеет глубокие исторические корни. Его основу составляет CAS.CADE - платформа известной САПР Euclid компании Matra Datavision. Когда в 1998 г. ее купила Dassault, проект Euclid был закрыт, а ядро - опубликовано в Интернете под названием Open CASCADE. Сейчас оно принадлежит французской компании Principia Research & Development, развивающей это ядро и предоставляющей платные услуги по созданию специализированных приложений на его базе. В мае 2003 г. вышла пятая версия Open CASCADE, а сам код загрузили уже более 10 тыс. пользователей. Большой вклад в рост его популярности вносит образовавшееся вокруг него сообщество разработчиков. Они не только его используют, но и активно совершенствуют. Ведь в соответствии с принципами Open Source они должны открывать доступ к своим разработкам всем желающим.

Компания SMS пошла другим путем. Она продает лицензии на свои продукты, но утверждает, что они обойдутся гораздо дешевле, чем создание и поддержка собственного ядра. Тем более что через два года заказчик получает на них полное право и может больше не платить за лицензию. Правда, тогда он лишится новых версий и поддержки. Важное значение для стратегии SMS имеет ее независимость от крупных поставщиков САПР. Это - частная компания, принадлежащая сотрудникам и не имеющая партнеров. Штат ее невелик, но опыт в области геометрического моделирования довольно большой. В 1998 г. она выпустила библиотеку SMLib (сейчас поставляется версия 6.5), в 2002-м - дополнительные продукты TSNLib, GSNLib и NLib, а в 2004-м - SDLib.

Ядра с открытым кодом открывают возможность выбора перед компаниями, которые не хотят использовать лицензируемый механизм моделирования, но не имеют средств для разработки собственной платформы. Но такие ядра пока не особенно популярны. Одна из причин этого - недоверие к качеству данного ПО. "Проектов на базе ядра с открытым кодом очень мало, - сказал Прокопий Николаев. - Ведь непонятно, что проще - написать свой код или разобраться с чужим". С ним согласен Виталий Талдыкин: "Это некоторая диковинка на рынке. Насколько мы знаем, в промышленном масштабе они применяются еще очень редко. Исправлять чужие ошибки в огромном программном комплексе - сомнительное удовольствие".

Выбор за пользователем

"Вопрос о том, что лучше - использовать чужое или сделать самому, останется вечным, - подвел итог Прокопий Николаев. - В каждом конкретном случае решение будет приниматься индивидуально, с учетом текущих объективных и субъективных факторов. Готового рецепта нет, так как у каждого варианта есть как преимущества, так и недостатки".

Ядро геометрического моделирования является сердцем каждого коммерчески доступной системы 3D-моделирования. Понимание того, как работает ядро и различий между их типами поможет вам определить, какая система CAD-моделирования лучшая для вас.

Основные понятия о ядре

Ядро - это библиотека основных математических функций CAD-системы, которая определет и хранит 3D-формы ожидая команды пользователя.

Ядро обрабатывает команды, сохраняет результаты и осуществляет вывод на дисплей. На Рис. 1 показано это взаимодействие, на примере ядра thinkdesign (think3 Inc.) Архитектура, показанная здесь оптимизирована чтобы гарантировать максимальную интеграцию между CAD-приложением и низкоуровневыми компонентами ядра, обеспечивая большую гибкость приложения, устойчивость к ошибкам и быстродействие.

Рис. 1. Архитектура ядра thinkdesign

В настоящий момент существуют три типа ядер геометрического моделирования: лицензируемые, частные и доступные в исходном коде. Рассмотрим по два ядра каждого типа.

Лицензируемые ядра

Лицензируемые ядра геометрического моделирования разработаны и поддерживаются одной компанией, которая лицензирует их другим компаниям для их CAD-систем. К примеру, ядро Parasolid, разработано UGS (бывшая Unigraphics Solutions). Оно используется в Unigraphics и Solid Edge и лицензировано другим компаниям, включая CADMAX Corp. (True Solid/Master) и SolidWorks Corp. (SolidWorks). Лицензированные ядра могут обеспечивать более прямую совместимость (через форматы обмена, такие как SAT и X_T) между CAD-системами, которые их лицензировали.

В Ноябре 2000 года разработчика ядра Dassault Systemes купила Spatial Corporation, чем был дан новый толчек для улучшения этого ядра. Подразделение Spatial PlanetCAD образовало собственную компанию, под названием PlanetCAD Inc.

ACIS это объектно-ориентированная C++ геометрическая библиотека которая состоит из более чем 35 DLL-файлов и включает каркасные структуры, поверхности и твердотельное моделирование. Оно дает разработчикам программ богатый выбор геометрических операций для конструирования и манипулирования сложными моделями а так же полный набор булевых операций. Его математический интерфейс Laws Symbolic и основанная на NURBS деформация позволяют интегрировать поверхностное и твердотельное моделирование. Ядро ACIS осуществляет вывод в формат файлов SAT, который любая поддерживающая ACIS программа может читать напрямую.

Новое ядро ACIS 6.3 было выпущено в первом квартале 2001. Компания сообщает что качество и надежность - основные черты этой самой последней версии. ACIS 6.3 - всесторонне качественная программа, которая включает строгие тестовые критерии и ситуации. Как результат, в ACIS 6.3 для Windows NT неизвестно ни одной ошибки при работе с памятью.

Также новым является изобилие компонентов, которые позволяют ACIS 6.3 дать разработчикам программного обеспечения больше возможностей при создании приложений. ACIS теперь содержит более чем 50 компонент, включая смешивание, локальные операции, точные скрытые линии, пространственное изменение масштаба, продвинутые средства работы с поверхностями, ячеистую топологию и VISMAN (Visualization Manager).


Рис. 2. Фильтр, выполненый в использующем ACIS Autodesk Mechanical Desktop

И наконец, Spatial начала новую программу по продвижению ядра на рынке, основная идея которой заключается в том, что разработчики не платят за лиценизирования до момента выпуска ими готового программного продукта на этом ядре.

Parasolid - это самое быстрое ядро, доступное для лицензирования, разработано UGS. Parasolid обеспечивает технологию для твердотельного моделирования, обобщенного ячеистого моделирования, интегрированные поверхности свободной формы и листовое моделирование. Parasolid позволяет разработчикам быстро создавать конкурентоспособные продукты используя эти технологии. На этом ядре разработано много CAD/ CAM/CAE систем высокого и среднего уровня - к примеру SolidWorks, Delmia, Pro/DESKTOP, и FEMAP.

Parasolid поддерживает SMP (многопроцессорное аппаратное обеспечение), что позволяет увеличить производительность. Parasolid включает более чем 600 объектно-ориентированных функций для приложений под управлением Windows NT, UNIX, и LINUX.

Parasolid достиг 500,000 конечных пользователей во втором квартале 2000 года, а в настоящий момент число пользователей перевалило за 700,000, и это ядро используется более чем в 230 программных продуктах. Parasolid используют в своих программных продуктах Bentley Systems, Visionary Design Systems, CADKEY, ANSYS, Mechanical Dynamics, и MSC.Software.

В дополнении к формату обмена XT, Parasolid позволяет трансляцию и восстановление данных из других систем моделирования с помощью уникальной технологии Tolerant Modeling. В третьем квартале 2000 года был выпущен основанный на XML формат eXT для расширения возможностей обмена данными.


Рис. 3. Отвертки, выполненые на ядре Parasolid в Unigraphics

Последние версии Parasolid сфокусированы на расширении экстермального моделирования в наиболее технически сложных областях. Они были пионерами прямого моделирования, которое позволяет пользователям интуитивно модифицировать непараметризованые модели, как будто бы они имеют параметры.

Частные ядра

Частные ядра геометрического моделирования разрабатываются и поддерживаются разработчиками CAD-систем для использования исключительно в своих приложениях. Преимуществом частных ядер является более глубокая интеграция с интерфейсом CAD-приложения. Как результат этого - большие возможности управления системой пользователем - к примеру неограниченные undo и redo. Два представленных ниже ядра объединяют пространственное и твердотельное моделирование в одном приложении.

Основой CAD-системы think3 является ядро thinkdesign. Его уникальная архитектура дает разработчикам параметризированные твердые тела, расширенные средства по моделированию поверхностей, каркасные структуры, и 2D-черчение в одной CAD-системе (Рис. 4). Топология ядра thinkdesign делает возможным смешивать поверхности и твердые тела, импортировать и использовать несовершенную 3D-геометрию, полностью интегрировать 2D-чертежи в трехмерные базы данных и обеспечивает диогностическую информацию на событие, когда операция твердотельного моделирования не может быть завершена. Ядро также может назначать переменные допуски к различным геометрическим примитивам.


Рис. 4. Ядро thinkdesign поддерживает внутри сборки все геометрические типы данных.

Высоко-производительное эксклюзивное ядро, которое обладает сложными возможностями трехмерного гибридного моделирования и предоставляет высоко-технологичные средства на рабочем столе. VX Overdrive предлагает реальную гибридную систему, которая объединяет твердотельное и расширеное свободно-форменное поверхностное моделирование.

VX Overdrive поддерживает такие функции как одновременная разработка, храненит информацию о версиях объекта, гибкий хронологический контроль, сложные средства заполнения и смешивания, неограниченное undo/redo, и настоящее моделирование сборки "в контексте".

CAM - родная среда для VX Overdrive - не дополнение, позднейшая доработка или разработка другой компании. Планирование производства и подпрограммы для станков с ЧПУ - интегрированая часть ядра, которая гарантирует полную синхронизацию между проектированием и производством. Изменения в спроектированной геометрии напрямую отражаются изменениями в автоматических производственных операциях.


Рис. 5. Пример разработки на VX Overdrive

VX Overdrive имеет открытую, масштабированную архитектуру разработанную чтобы удовлетворять возрастающие требования рынка. Его API позволяет сторонним разработчикам создавать свои свои специализированные дополнения.

Ядра, доступные в исходном коде

Ядра, доступные в исходном коде подобны лицензированным ядрам.Они также разрабатываются и поддерживаются одной компанией и затем лицензируются другим компаниям для использования в CAD-приложениях.

Отличие стоит в том, что эти разработчики обеспечиваю исходный код ядра. Для пользователей которые имеют группы разработки и хотят сами настраивать ядро системы очень удобно иметь возможности настройки, посколько исходный код доступен.

Open CASCADE (Matra Datavision)

Open CASCADE v3.1 (выпущен в Ноябре 2000 года) представляет Visual C++ проекты, которые позволяют пользователям компилировать код Open CASCADE на их платформах. В дополнении, форматы экспорта данных теперь доступны для STL, VRML и HPGL2, и представлен Open CASCADE Application Framework для быстрой разработки приложений 3D моделирования.

SMLib от Solid Modeling Solutions - это набор основанных на NURBS геометрических и топологических библиотек, который существует на рынке семь лет и который используют более чем 200 компний и университетов. SMLib включает обширный набор NURBS-функций криволинейного и поверхнсотного моделирования а также оптимизированный код для быстрого измерения расстояния между объектами.

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

SMLib имеет уникальную бизнес-модель, по которой продукт распространяется в форме исходного кода без авторских отчислений. Это обеспечивает чрезвычайно притягательную возможность для поддержки и обновления без всякого смещения к приватизации программного обеспечения или форматов данных.

Типы ядер геометрического моделирования

Ядро Разработчик Web-сайт Тип ядра
ACIS 3D Geometric Modeler Spatial/Dassault Systemes http://www.spatial.com/ Лицензируемое
Open CASCADE Matra Datavision http://www.opencascade.org/ Доступно в исходном коде
Parasolid UGS http://www.parasolid.com/ Лицензируемое
SMLib Solid Modeling Solutions http://www.smlib.com/ Доступно в исходном коде
thinkdesign kernel think3 Inc. http://www.think3.com/ Частное
VX Overdrive Varimetrix Corp. http://www.varimetrix.com/ Частное

В настоящее время существует множество систем геометрического моделирования, различающихся как по функциональности, так и по области применения. Как можно было заметить, все эти системы обладают сходными чертами, все они служат для работы с трех- и двумерными объектами. Однако во всех этих программных разработках есть и свои отличия – все они специализированы в своей определенной области. Таким образом, во всех системах геометрического моделирования есть какая то общая часть, которая служит основой для моделирования. В графических системах геометрического моделирования основой служит так называемое ядро, в котором заложены основные функциональные возможности.

Однако, ядро не самоценно, оно создается для использования в прикладных программах. Доступ к функциям ядра открывает CAD-система (как правило через графический пользовательский интерфейс. Математическое ядро определяет предел функциональных возможностей использующей его САПР. При использовании множеством продуктов одного и того же ядра в пределе все они имеют одинаковые возможности и ограничения, а различаются только интерфейсом. Можно идти двумя путями: использовать все возможности ядра и сделать систему «тяжелой» для использования или сделать удобный пользовательский интерфейс, но пренебречь некоторыми функциями ядра.

Ядро (Geometric modeling kernel) (синонимы: движок моделирования; геометрическая библиотека) – это библиотека основных математических функций CAD системы, которая определяет и сохраняет элементы трехмерной модели в ответ на команды пользователя.

Ядро обрабатывает команды изменения модели, сохраняет результаты и производит их вывод на дисплей.

Если вкратце изложить возможности геометрического ядра, то они заключаются в следующем:

    моделирование каркасных, поверхностных и твердотельных объектов;

    создание объектов на основе кинематических операций, например, выталкивания профиля вдоль заданного пути;

    пересечение поверхностей и кривых;

    операции сопряжения и сшивки поверхностей;

    операции сопряжения граней твердого тела (vertex and edge blending);

    булевы операции над твердотельными объектами;

    параметрические 2D-чертежи

Обзор ядер геометрического моделирования

В настоящий момент существуют три типа ядер геометрического моделирования: лицензируемые, частные и доступные в исходном коде.

Лицензируемые ядра

Лицензируемые ядра разрабатываются и поддерживаются одной компанией, которая продает на них лицензии другим создателям САПР. Впервые ядра такого тип появились в 1988 году (первая версия Parasolid), когда компания UGS выпустила в продажу ядро Parasolid, составляющее основу ее системы Unigraphics. Parasolid – дальнейшая разработка ядра ROMULUS, разработанного в 1978 г. В 1990 году появилось ядро ACIS фирмы Spatial Technologies. Преимущества лицензируемых ядер:

    Избавляет разработчиков САПР от решения трудоемких задач создания собственного ядра. В результате сокращаются сроки разработки систем, повышается качество.

    Ядро опробовано на большом количестве пользователей, что сводит к минимуму возможность ошибки.

Недостатки:

    Нельзя «залезть» внутрь ядра и подправить какой-либо базовый алгоритм для его улучшения.

    Зависимость от разработчиков

Лицензированные ядра могут обеспечивать прямую совместимость через форматы ядра.

После покупки ядра создатели САПР расширяют его функциональность под свои задачи.

Ядро ACIS создавалось как некая общая математическая модель, поэтому оно слишком универсальное, решает множество задач. Spatial (ACIS) придерживается политики, что разработчики не платят за лиценизирования до момента выпуска ими готового программного продукта на этом ядре. Название ACIS взято из греческой мифологии. Используется – AutoCAD и Mechanical Desktop, Inventor (Autodesk), Cimatron. Форматы – SAT (SAB).

Parasolid – это самое быстрое и разработанное ядро, доступное для лицензирования. Оно изначально создавалось как ядро САПР. Это ядро используется более чем в 350 программных продуктах. Лучшее ядро для твердотельного моделирования. Форматы – X_T.

В Parasolid впервые было применено прямое моделирование, которое позволяет пользователям интуитивно модифицировать непараметризованые модели, как будто бы они имеют параметры. Parasolid – Unigraphics NX, SolidWorks (Dassault Systems), SolidEdge (UGS), T-FLEX (Топ Системы, Москва, сначала была на собственном ядре (ядро Баранова), потом на ACIS), ANSYS. Также используется машиностроительными компаниями Boeing, General Electric, Mitsubishi Motors и др.)

В 2001 году стала продавать лицензии на свое ядро компания PTC – система Pro/Engineer.

09.09.2015, Ср, 16:02, Мск , Текст: Владислав Мещеряков

«Дочка» компании «Аскон» C3D Labs сообщила о продаже лицензии на свое геометрическое ядро C3D южнокорейской SolidEng. В C3D Labs говорят о своем продукте как об одном из пяти самых распространенных коммерческих ядер на рынке.

Продажа ядра корейцам

Отечественный разработчик систем автоматизированного проектирования компания «Аскон» продал права на использование своего геометрического ядра C3D южнокорейской компании SolidEng.

Геометрическое ядро - это совокупность программных средств (библиотек), на основе которых строятся средства проектирования, управления станками с ЧПУ и различного инженерного ПО.

В частности, на ядре C3D базируются несколько продуктов самого «Аскона»: система трехмерного моделирования «Компас-3D», модули «Компас-График», «Компас-Строитель» и др.

Покупатель асконовского ядра компания SolidEng - говорит о себе как о ведущей южнокорейской консалтинговой компании и системном интеграторе, занятом трехмерным проектированием (3D PLM) в автомобильной, аэрокосмической, судостроительной отраслях.

Кроме того, SolidEng разрабатывает собственные программные решения для различных производств, а также мобильные игры.

Узел, разработанный системой на основе ядра C3D

Секретные условия продажи

Для каких работ SolidEng планирует использовать приобретенное у «Аскона» ядро C3D, корейцы не сообщают. Известно, что соглашение между компаниями не ограничивает число лицензий на ядро в пределах единого центра разработки (таким образом над проектом с применением ядра C3D смогут трудиться неограниченное число разработчиков).

Сумма сделки не раскрывается. Представители «Аскона» говорят, что это - обычная практика для сделок по лицензированию геометрических ядер, которые, как правило, всякий раз заключаются на отдельно оговариваемых условиях.

По информации с официального сайта «Аскон», лицензия на ядро C3D подразумевает ежегодную оплату. При выпуске заказчиком коммерческих продуктов или услуг на базе C3D, он должен ежеквартально перечислять роялти «Аскону». Величина роялти не зависит от стоимости продукта - она фиксированная. В качестве опции «Аскон» предлагает расширенную техподдержку и сопровождение с годовой оплатой.

Вторая похожая сделка

Интересно, что лицензирование ядра SolidEng - не первая подобная сделка, заключенная с южнокорейской компанией: до этого пользователем и дистрибьютором ядра стала компания Solar Tech.

Кроме того, весной 2015 г. о продаже лицензии ядра C3D шведской компании Elecosoft Consultec. Это была первая сделка такого рода в Западной Европе у «Аскона».

Как уточняют в «Асконе», сейчас у компании имеются 17 клиентов-покупателей ядра, среди которых есть РФЯЦ-ВНИИЭФ, частные компании и университеты из России («НТП Трубопровод», «НИП-Информатика», Центр «ГеоС», «Базис-центр», Мордовский государственный университет) и Украины.

C3D как популярный продукт

Непосредственный разработчик ядра - компания C3D Labs, «дочка» «Аскона» и резидент «Сколково».

Представитель C3D Labs Аркадий Камнев причисляет C3D к числу пяти самых известных геометрических ядер, доступных для коммерческого лицензирования. Остальные четыре это Parasolid (разрабатывается Siemens PLM Software), ACIS (Spatial, Dassault Systemes), CGM (Dassault Systemes), а также ядро с открытым кодом Open CASCADE, в создании которого принимает участие центр разработки в Нижнем Новгороде.

Сегодня представить современное производство без каких-либо средств автоматизации очень сложно. Каждое мелкое или крупное предприятие так или иначе сталкивается с системами автоматизированного проектирования. И в частности с CAD системами.
Как правило, основой САПР является графический редактор, при помощи которого создаются и редактируются электронные макеты, состоящие из примитивов (точек, отрезков, дуг и тд). Примитивы могут быть объединены в блоки и многократно использованы при создании других электронных макетов, что колоссально повышает производительность труда инженера-проектировщика. Современные программы позволяют создавать и редактировать пространственные модели объектов практически неограниченной сложности.
Фундаментальный компонент в архитектуре системы трехмерного моделирования – геометрическое ядро. Геометрическое (математическое) ядро - это набор функций, выполнение которых обеспечивает построение трехмерных моделей. Ядро не самоценно, оно создается для использования в прикладных программах. Доступ к функциям ядра конечному пользователю открывает CAD-система (как правило, через графический пользовательский интерфейс). Кроме того, ядро иногда называют «движком» системы геометрического моделирования. Подобно тому, как двигатель автомобиля определяет «потолок» его скорости, математическое ядро определяет предел функциональных возможностей использующей его САПР.
Основные функции ядра:
- представление геометрических данных в контексте системы;
- реализация хранения данных в нейтральных форматах для обеспечения интеграции с существующими системами, необходимой для возможности широкого распространения продукта;
- реализация типичных операций представления, таких как масштабирование, поворот и перемещение поверхностей;
- реализация простейших операций редактирования тел и поверхностей;
- интерактивное взаимодействие с компонентами математической модели проектируемого изделия и получения сведений о размерах и положении частей математической модели.

Схематически ядро можно представить, как показано на рис 1.

Рис 1. Структура ядра

Структура данных и топология

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

Первая структура представляет собой дерево, описывающее историю применения булевских операций к примитивам. Журнал операций носит название конструктивное представление объемной геометрии (CSG). А само дерево называется деревом CSG


Рис 2. Дерево CSG

Дерево CSG обладает следующими преимуществами :
· структура данных проста, а их представление компактно, что облег-чает обработку;
· объемное тело, описываемое деревом CSG, всегда является коррект-ным, то есть его внутренний объем однозначно отделен от внешнего. Примером некорректного объемного тела является тело с лишним ребром. Для него деление объема на внутренний и внешний вблизи вершины, к которой подходит это ребро, оказывается неоднознач-ным;
· представление CSG всегда может быть преобразовано к соответст-вующему представлению B-Rep. Это позволяет взаимодействовать с программами, ориентированными на использование B-Rep;
· параметрическое моделирование легко реализуется изменением па-раметров соответствующих примитивов
Недостатки :
· поскольку дерево CSG хранит историю применения булевских опе-раций, в процессе моделирования могут использоваться только они. Это требование жестко ограничивает диапазон моделируемых объек-тов. Более того, оно исключает использование удобных функций ло-кального изменения, таких как поднятие и скругление;
· для получения сведений о граничных поверхностях, их ребрах и свя-зях между этими элементами из дерева CSG требуется сложные вы-числения. К сожалению, сведения о границах нужны для множества приложений, в частности для отображения тел. Для того, чтобы ото-бразить затушеванное изображение или чертеж объемного тела, нужно иметь информацию о гранях или вершинах этого тела. Поэто-му представление CSG является недостаточным для интерактивного отображения тел и манипулирования ими. Другой пример – расчет траектории движения фрезы с ЧПУ для обработки поверхностей те-ла. Для этой задачи нужны сведения о поверхностях, их ребрах и связности. Получить все эти данные из дерева CSG очень непросто.

Из-за этих недостатков разработчики программ, основанных на представ-лении CSG, стараются добавить соответствующие сведения о границах. Такое комбинированное математическое представление называется гибридным и тре-бует поддержания согласованности между структурами данных.

Вторая структура содержит сведения о границах объема (вершинах, реб-рах, гранях) и их соединении друг с другом. Это представление называется гра-ничным представлением (boundary representation - B-rep). Многие структуры B-rep строятся по-разному в зависимости от того, какой элемент считается основ-ным при сохранении сведений о связности.
Допустим, есть тело, представленное на рис. 3.

Рис 3 Дерево CSG

В структуре B-Rep это тело будет выглядеть, как показано в табл. 1.

Табл 1. Представление тела в структуре B-Rep

В каждой строке таблицы ребер хранятся вершины, находящиеся на кон-цах соответствующего ребра, а в строках таблицы вершин хранятся координаты всех вершин. Эти координаты обычно определяются в модельной системе ко-ординат, связанной с данным телом. Если убрать отсюда таблицу граней, эту структуру данных можно будет использовать для хранения форм, созданных в системах каркасного моделирования. Структура данных для каркасной модели может использоваться в качестве базовой для систем автоматизированной раз-работки чертежей, если допустить указание двумерных координат для точек.
Структура данных B-Rep выглядит очень простой и компактной. Однако она не используется в развитых системах твердотельного моделирования из-за перечисленных ниже недостатков.
· Структура данных B-Rep ориентирована на хранение плоских много-гранников. Если потребуется сохранить данные о теле с криволиней-ными гранями и ребрами, то строки таблиц граней и ребер придется изменять таким образом, чтобы в них можно было включить уравне-ния поверхности и кривой соответственно (уравнения поверхностей и кривых, а также координаты вершин называют геометрическими данными, тогда как отношения между гранями, ребрами и вершина-ми называют топологическими данными. Данные в любой структуре B-Rep могут быть классифицированы либо как геометрические, либо как топологические). Уравнения для плоских граней сохранять не обязательно, поскольку плоские грани определяются находящимися на них вершинами.
· Грань с внутренними и внешними границами (рис. 4 а) не может быть сохранена в таблице граней, поскольку для нее нужно два списка ребер вместо одного. Такие грани появляются, например, при моделирова-нии объемных тел со сквозными отверстиями. Простым решением этой проблемы является добавление ребра, соединяющего внешнюю и внутреннюю границы (рис. 4 б). В этом случае два списка вершин мо-гут быть объединены. Соединительное ребро называется мостиком или перемычкой (bridge edge) и попадает в список ребер в двух экземплярах.


Рис. 4. Поверхность с двумя границами и метод их обхода
· Количество ребер у разных граней может быть различно (см. табл.1). Более того, невозможно определить заранее количество столбцов (по одному на каждое ребро), которые потребуются для конкретной грани, поскольку это количество может меняться в процессе моделирования. Следовательно, количество столбцов должно сохраняться в виде пере-менной в момент объявления таблицы граней. Работа с таблицей пере-менного размера создает некоторые неудобства.
· Получать сведения о связности непосредственно из данных, сохранен-ных в трех таблицах, может быть довольно утомительно. Представьте себе поиск двух граней с общим ребром в случае граничного представ-ления тела в трех таблицах. Придется просмотреть всю таблицу граней, чтобы найти строки, в которых присутствует нужное ребро. Если нужно найти все ребра, соединяющиеся в конкретной вершине, опять-таки придется просматривать всю таблицу ребер. Легко видеть, что при больших размерах таблиц поиск в них становится крайне неэффективным.

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

Третья структура представляет объем в виде комбинации элементарных объемов (например, кубов) – декомпозиционная модель (воксельное представ-ление, октантное дерево – совокупность шестигранников, ячеечное представле-ние).


Рис. 5. Декомпозиционная модель

Математический аппарат

Математический решает ряд задач. Это непосредственное представление кривых и поверхностей, пересчет координат при изменении параметров (это выполняет т.н. параметризатор), а также решение систем уравнений для нахождения пересечения поверхностей и кривых.
Для каждого криволинейного ребра в компьютере хранится либо уравнение кривой, либо эквивалентные характеристические параметры (центр, радиус, вектор нормали к плоскости, в которой лежит окружность, - примеры характеристических параметров, эквивалентных уравнению окружности).
Уравнения кривых можно разделить на два основных типа . К первому типу относятся параметрические уравнения, описывающие связь координат x, y и z точки кривой с параметром. Ко второму типу относят непараметрические уравнения, связывающие x, y и z некоторой функцией.
В САПР чаще всего используются параметрические уравнения кривых и поверхностей. В некоторых случаях точки пересечения кривых удобно искать, если одна из кривых задана в параметрической форме, а другая – в непараметрической. Поэтому в отдельных системах используется преобразование уравнений из параметрической формы в непараметрическую и обратно.
Чаще всего для описания кривых, используемых в программах CAD, используются уравнения третьего порядка, потому что они обладают важным свойством: две кривые, описываемые такими уравнениями, могут быть соединены таким образом, что вторые производные в точке соединения будут равны друг другу. Это означает, что кривизна в точке соединения остается постоянной, отчего кривые кажутся одним целым. Ту же непрерывность можно получить и для кривых более высоких порядков, однако работа с ними требует интенсивных вычислений.
Уравнения поверхностей, как и уравнения кривых делятся на два основных типа: параметрические, связывающие значения x, y и z со значениями параметра (самые распространенные), и непараметрические, связывающие координаты x, y и z непосредственно друг с другом какой-либо функцией.
Расчет точек пересечения кривых необходим для определения границ ксегментов при применении булевских операций. Ксегмент - часть кривой, по которой пересекаются две грани, относящиеся к разным объемным телам. Ксегмент принадлежит обеим граням. Границы ксегмента получаются путем вычисления точек пересечения кривой, ограничивающей пересекающие поверхности, с кривой, по которой пересекаются эти поверхности (относящиеся к разным телам). После получения границ ксегмента нужно сделать еще один шаг, чтобы разделить кривую пересечения в точках пересечения.

Модуль визуализации

Раньше почти все приложения работы с графикой имели свой внутренний графический движок. Сейчас же появились специализированные графические библиотеки.
Конкретное приложение может обращаться напрямую через аппаратно-зависимый драйвер устройства или через графическую библиотеку.
1) Приложение -> драйвер -> Устройство ввода/вывода.
2) Приложение -> Графическая библиотека -> Драйвер -> Устройство ввода/вывода
Недостаток первого подхода – требуется поддержка большого количества видеокарт.
Графическая библиотека представляет собой набор подпрограмм, предназначенных для решения определенных задач. Она основывается на командах драйвера устройства. В современных САПР для визуализации используется библиотека OpenGL.

Набор интерфейсов API

API (Application Program Interface) – интерфейс прикладной программы. Набор таких интерфейсов должен обеспечить взаимосвязь между внешними модулями прикладной программы и низкоуровневыми функциями ядра, а так же между компонентами ядра – различными библиотеками.

Вместо заключения
Разработка ядра является очень наукоемкой и сложной задачей. Для её реализации требуется привлечение большого числа высококвалифицированных специалистов и, в первую очередь, математиков. Разработка и отладка функции ядра может занять очень длительный срок, что не всегда приемлемо для многих компаний.

Литература

1. Ли К. Основы САПР (CAD/CAM/CAE). – СПб.: Питер, 2004. – 560 с.