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

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

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

Ядро - это набор математических функций, который предназначен для точного математического представления трехмерной формы изделия и управления этой моделью. Полученные с его помощью геометрические данные используются системами автоматизированного проектирования (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.

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

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

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