6 - 2002

Место и роль геометрического ядра в современной САПР

Леонид Баранов

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

В настоящее время сложилось единое понимание основной архитектуры современной трехмерной параметрической САПР. В частности, в основе любой системы лежат два важных компонента — параметрическое и геометрическое ядра. Существуют разные взгляды на процедуру взаимодействия этих двух компонентов. Главное теоретическое расхождение здесь касается того, какой компонент первичен — геометрический или параметрический. В первом случае мы получаем систему геометрического моделирования, во втором — систему параметрического моделирования, то есть систему, базирующуюся на конструкторско-технологических элементах (feature-based). Первому принципу соответствуют системы CATIA и Unigraphics, второму — SolidWorks, Solid Edge и Pro/ENGINEER. Конечно, это деление достаточно условно и приведено здесь лишь как иллюстрация того, какие подходы используются сегодня архитекторами САПР при разработке своих систем. На практике иногда имеет место архитектурный симбиоз разных подходов, но идеология любой системы и, как следствие, ее функциональность и «потенциал развития» во многом определяются именно архитектурными решениями разработчиков.

Рассмотрим подробнее ситуацию с геометрическими ядрами, оставив пока в стороне геометрические процессоры. О том, какие промышленные ядра сейчас присутствуют на рынке, написано достаточно много, так что не будем повторяться. Интереснее другое. История САПР насчитывает уже по меньшей мере сорок лет. За это время практически все известные фирмы неоднократно предпринимали попытки разработки собственных ядер. Специалисты, работающие в САПР не один десяток лет, помнят Unigraphics на собственном ядре, первые версии продуктов Autodesk на ядрах, отличных от ACIS, — был же Autodesk Mechanical Extension (AME)! Не говоря уже о том, что ядра поменяли SolidWorks — со своего на Parasolid и CADKEY — со своего на ACIS. Список подобных примеров довольно обширен. Тем не менее не приходят в голову примеры, так сказать, «обратных замен» — отказа от готового ядра в пользу собственного (недавний пример Autodesk с отказом от ACIS в пользу своего ядра — ShapeManager — не показателен, потому что пока это только смена вывески). Возникает резонный вопрос: почему это происходит, по какой причине крупные фирмы идут на значительные затраты, чтобы заменить собственную геометрическую базу на покупное ПО? Причин тому много, однако самая главная заключается в том, что это экономически выгодно и в конечном счете с лихвой окупает все затраты по переходу. В наукоемкой продукции, каковой является геометрическое ядро, действуют те же тенденции, что и в машиностроительном производстве. Заказать узел у завода, который на них специализируется, гораздо дешевле, чем производить все на одном предприятии. Входит ли цена заказного агрегата в стоимость готовой продукции? Безусловно, но она тем меньше, чем больше объемы производства у субподрядчика, и в любом случае существенно меньше содержания целого завода с малыми сериями. В случае геометрических ядер разница в затратах становится еще больше, а помимо них в дело вступают и другие факторы, как-то: тестирование на сотнях тысяч рабочих мест, учет пожеланий от заказчиков разных областей и т.д. То есть начинает срабатывать феномен промышленного стандарта — инженер, проектирующий сложное и ответственное оборудование, будь то двигатель самолета или система аварийной защиты реакторов, должен быть уверен, что ядро работает с нужной точностью на всем спектре его задач и что до него уже многие пользователи это проверили, а изделия, полученные при помощи трехмерного моделирования, изготовлены и работают в реальных условиях. Трехмерное моделирование радикально отличается от подготовки чертежей на компьютере именно тем, что в оперативной памяти возникает некий электронный образ изделия, по которому и будут изготавливать станок и который будет служить основой расчетной модели на прочность и жесткость. Это совсем другой уровень технологии, другой уровень требований и, как следствие, другой уровень трудозатрат на создание ядра. Все современные промышленные ядра — это 300-600 человеко-лет работы коллективов из десятков, а то и сотен квалифицированных инженеров и математиков, собранных со всего мира в 4-5 центрах разработки. Может быть, не все знают, что основная группа разработки Parasolid превышает 60 человек, в Spatial Technologies один только алгоритм построения линии пересечения разрабатывает команда из 15 математиков, а алгоритмы построения сопряжения поверхностей группа из 30 человек программирует уже второе десятилетие. При всем нашем пренебрежении к западным инженерам смею вас уверить — разработкой ядер занимаются действительно высококвалифицированные профессионалы.

Поэтому при рассмотрении вопроса о том, какое ядро использовать в качестве соответствующего компонента для системы T-FLEX CAD 3D, было очевидно, что попытки повернуть время вспять малопродуктивны. Базироваться надо на известных ядрах и предоставлять пользователям системы максимальную функциональность в области моделирования. Такое решение основано на убежденности, что пользователи системы, во-первых, не должны платить за исследовательский пыл разработчиков, которым вдруг захотелось пройти весь тернистый путь разработки нового ядра с функциями уже существовавших на момент начала работы ядер, а во-вторых, не должны выступать в роли «подопытных» — ведь если что-то пойдет не так, работу придется начинать сначала. Согласитесь, трудно предположить, что у людей, до той поры не разработавших ни одного промышленного ядра, все получится правильно. Дело в том, что известные ядра созданы не на пустом месте. Костяк подобных команд составляют специалисты, делавшие ядра CATIA, Unigraphics и CADDS, — набившие шишки, но получившие богатый опыт. Именно наличие уникальной команды позволило в свое время PTC довольно быстро разработать свое ядро, которое сейчас известно как Granite One. Начинали же они одновременно с ShapeData — разработчиком первых версий Parasolid и STI — разработчиком ACIS почти 20 лет назад — в 80-е годы. А до этого еще было малоизвестное ядро Romulus…

К сожалению, в советский период в России так и не было создано свое твердотельное ядро, а строить здание без фундамента можно лишь тогда, когда не собираешься в нем жить…

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

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

Поэтому поверхностный взгляд на функциональность различных САПР через призму внутренних ядер, на которых базируются системы, имеет мало общего с реальностью. Ведь заявление, что ядро ACIS больше предназначено для решения задач поверхностного моделирования, в то время как Parasolid — твердотельного, для специалиста значит примерно то же, что автомобили BMW лучше ездят по мокрым дорогам, а Mercedes — по сухим. Каждому понятно, что в обоих случаях речь идет о хороших машинах, а поведение их на дороге — на совести водителя.

Как отмечалось выше, любая система ориентирована на определенный класс задач и развивается вместе с этим набором задач. Практика промышленного использования систем показывает, что при всей мощности стандартных ядер существуют различные практические задачи, которые не решаются обычной функциональностью ядер. В качестве простого примера можно привести операцию построения тела по сечениям с заданным трехмерным путем — траекторией центра сечений. В настоящее время такая функциональность отсутствует в Parasolid, однако этот факт не помешал тому, что в системах SolidWorks и T-FLEX CAD 3D данная функция существует, хотя и работает по разным алгоритмам. Еще один пример: в T-FLEX CAD 3D версии 7.1 по просьбам заказчиков, проектирующих обувь, была сделана функция «постелить профиль на набор граней табулированного цилиндра без искажений». Такой функции нет в Parasolid, а также в системах «среднего уровня», она имеется только в «больших» системах типа CATIA, Unigraphics, Pro/ENGINEER. Однако заказчикам она была нужна. То же касается пружин с поджатием и шлифованием и некоторых других функций. Спору нет — быстрое и качественное решение подобных задач во многом стало возможным благодаря мощным базовым инструментам, предоставляемым ядром, но основные алгоритмы все равно разрабатывались программистами и математиками фирмы АО «Топ Системы».

Есть еще один вариант подъема решаемых задач на качественно новый уровень — за счет тесной интеграции параметрического и геометрического ядер, когда в ходе построения геометрической формы используется параметрически изменяемая геометрия. Примером таких построений служат «параметрический путь», «параметрический массив» и «параметрическое тело по траектории», реализованные в T-FLEX CAD.

Представленный пример компании Digital Marine Technology, выполненный в T-FLEX CAD 3D (см. верхний рисунок на предыдущей странице), является полностью параметрическим — изменяя ширину, длину и высоту борта, а также некоторые другие параметры, можно автоматически получить новые обводы судна. Якорь и якорная ниша также подбираются автоматически.

Можно задать вопрос: «Все ли возможности Parasolid использует T-FLEX CAD?» Ответ на него следует из всего вышеизложенного — T-FLEX CAD использует все то, что позволяет решать задачи пользователей, применяющих его в своей работе. В конце концов, вряд ли конечного пользователя должна интересовать внутренняя технология САПР. Назначение системы — во-первых, помогать пользователю решать задачи просто и эффективно, а во-вторых, динамично расти вместе со сложностью пользовательских задач. Именно в этом и состоит главное направление развития T-FLEX CAD. Что до геометрического ядра, то чем оно надежнее, быстрее и точнее, тем больше гарантий, что в созданном с его помощью изделии не будет возникать проблем. Как будет называться ядро, может быть, и не столь важно, важно лишь точно знать, что реакторы, спроектированные при помощи этой математики, работают, а самолеты летают.

«САПР и графика» 6'2002