Copyright © CAD/CAM/CAE Observer # 5 (18)/2004

Моделирование сложных форм с компактным представлением 3D-данных

Валерий Рутковский, директор НОЦ ИКТ при Красноярском государственном техническом университете

В предлагаемой статье популярно описывается разработанный автором метод моделирования геометрии объектов со сложной формой (аэродинамические поверхности, кузова автомобилей, литые диски колес, корпуса судов, изделия из пластмасс, имплантанты зубов и протезы, ювелирные изделия, спортивная обувь, детские игрушки). Компактный файл модели хранит минимальный набор данных, по которым однозначно воссоздается 3D-геометрия. Этот метод уже применяется в коммерческих программных продуктах, разработанных для зарубежных заказчиков:

  • ExchangeWorks – двунаправленный обмен параметризованной геометрией между различными версиями SolidWorks (98, 2001+, 2004, 2005) с сохранением данных и дерева построения в компактном формате 3XF;
  • ShapeWorks – моделирование сложных поверхностей и обратный инжиниринг геометрии из художественных пакетов в SolidWorks;
  • BladeWorks – построение геометрии крыльев, лопастей пропеллеров, лопаток турбин, импеллеров, судовых винтов и др.;
  • ShipWorks – расчет сопротивления движению судна на водоизмещающих и глиссирующих режимах со свободной волновой поверхностью.
  • Граничное представление твердого тела

    Как известно, в современных CAD-системах широко используется так называемое твердотельное параметрическое моделирование, позволяющее за короткое время создать геометрию с высоким уровнем качества. На самом деле современные "твердотельные" системы моделирования основаны на поверхностном моделировании c граничным представлением твердых тел – BREP (Boundary REPresentation).


    Рис. 1. Граничное представление твердого тела: a – поверхности считаются соединенными по общим краям, если максимальные зазоры меньше заданной в системе моделирования точности; b – если все граничные поверхности ориентированы нормалями внутрь, то образуется твердое тело, если наружу – полость

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



    Рис. 2. Параметрическое твердотельное моделирование – этап построения обводов судна в SolidWorks 2005

    Для удобства работы параметрические модели представляются в виде логического дерева построения. В качестве примера на рис. 2 приведен этап работы по созданию обводов корпуса судна. Фактически, каждая геометрическая операция (вытянуть, построить по сечениям и др.) – это просто набор "макросов", создающих набор корректно связанных поверхностей. При изменении компонента дерева построения все последующие элементы будут перестроены. Если при этом исчезнут элементы, к которым были привязаны последующие построения, то модель окажется некорректной. Поэтому, проектируя изделие, необходимо четко представлять иерархию дерева и возможные способы последующего изменения геометрии.

    Недостатки твердотельного моделирования

    Существующая технология твердотельного моделирования не лишена недостатков:

  • При радикальном изменении дизайна дерево построения часто не дает возможности внесения желаемых изменений и приходится начинать построение модели заново.
  • При импортировании геометрии из другой системы дерево построения теряется, поэтому становится невозможно редактировать объект средствами параметрического моделирования.
  • Средствами твердотельного моделирования не всегда удается получить нужный характер распределения кривизны поверхности, что ухудшает внешний вид и параметры изделия. Зачастую не помогает даже введение множества дополнительных свойств операции, ряда вспомогательных сечений и направляющих кривых (рис. 2). В этом случае единственная альтернатива – использование пакетов поверхностного моделирования.
  • Иногда компьютерная модель объекта существует только в виде сетки конечных элементов или полигонов для визуализации объекта. Для редактирования подобной геометрии необходимо вначале воссоздать CAD-модель средствами обратного инжиниринга.
  • Форматы файлов для хранения и обмена геометрией технических объектов

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

    Существует выход – сохранять информацию в нейтральных форматах (Parasolid, STEP, IGES), жертвуя параметризацией. Однако нейтральные обменные файлы, генерируемые трансляторами коммерческих систем, не оптимизированы – они содержат много избыточной, а зачастую и некорректной информации. При передаче информации из одной системы в другую, качество и точность получаемой модели всецело зависит от качества транслятора.

    Идеология большинства открытых геометрических форматов далека от совершенства, и они представляют собой достаточно хаотический, неупорядоченный набор данных. При правильной организации формата такие файлы могут быть сжаты в десятки раз безо всяких отрицательных последствий (к примеру, см. статью "Появилась альтернатива формату STL", Observer #3/2004).

    Пользователи систем автоматизированного проектирования заинтересованы в сохранении своих данных в открытых форматах, однако производители коммерческих систем не спешат предоставить им эту возможность. Широко рекламируемые в последнее время инициативы "открытых 3D-форматов" типа JT Open, XVL, Open HFS и др. не являются панацеей, поскольку они не содержат точной геометрической информации, а всего лишь обеспечивают обмен визуальным компактным представлением 3D-информации для различных "неинженерных" служб (разработки технической документации, маркетинга и т.п.).

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

    На самом деле разработка универсального параметрического формата не является столь уж сложной задачей. Например, транслятор ExchangeWorks, обеспечивающий двусторонний обмен информации между различными версиями SolidWorks (от 98+ до 2005) с сохранением дерева построения, и используемый этим транслятором для хранения параметризованной информации формат 3XF были созданы всего одним программистом за шесть месяцев. Геометрические данные в формате 3XF занимают в 240...650 раз меньше места, чем файл SLDPRT – и это не предел.

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

    Библиотека BCTLib

    Как логическое развитие работы с форматом 3XF, автором статьи и инициативной группой программистов была поставлена и решена более серьезная задача, а именно: создана BCTLib (Boundary constrained T-splines library) – библиотека программ на C++ для моделирования поверхностей, задаваемых граничными условиями на базе T-сплайнов.

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

    Сейчас нами ведется работа по разработке не просто очередного формата, а полноценного объектно-ориентированного языка для хранения геометрической информации. Здесь уместно сказать, что, к сожалению, язык Express-2 (как и другие инициативы международного сообщества ISO) достаточно инертен и вяло реагирует на последние математические разработки, пришедшие из смежных областей: 3D-анимации, обратного инжиниринга, геоинформационных систем и др.

    Немного математики

    Современные CAD/CAM/CAE-системы используют для моделирования кривые и поверхности Безье и NURBS. Как известно, поверхности Безье точно проходят через набор контрольных (управляющих) точек. На этом их достоинства заканчиваются. Эти поверхности не могут точно описывать тела "правильной формы" – например, конус или шар. При изменении геометрии в некоторой локальной области изменяется и глобальная геометрия. Как следствие, возникают изломы и даже разрывы на границе с соседними поверхностями (рис. 3).



    Рис. 3. Пример работы с поверхностями Безье (сверху) и NURBS в ShapeWorks. Наложены ограничения радиуса кривизны и направления нормали в точке (показано красным вектором) излома поверхностей по общей границе (жирная синяя линия) гладкого сопряжения (жирная черная линия)

    В отличие от этого, NURBS-математика позволяет описывать тела "правильной формы". Кроме того, возможны локальные изменения геометрии. Однако, это преимущество не дается даром: все контрольные точки NURBS, кроме угловых (в случае непериодических поверхностей), находятся вне поверхности, поэтому их влияние на форму оценить труднее (рис. 3).

    Более новая математика использует так называемые Subdivision surfaces с различными схемами: Loop, Catmull Clarc, Butterfly, Dao-Sabin и др. При этом обеспечивается любая степень гладкости, но поверхности вообще не проходят через полигон контрольных точек! Подобная математика используется в модуле Imagine&Shape системы CATIA V5 R14, а также в пакетах Alias WaveFront и Maya.

    В предлагаемом автором формате хранится минимальный набор данных. В частности для элемента поверхности с постоянной гауссовой кривизной (сфера, конус, цилиндр, плоскость…) достаточно знать координаты его вершин. К примеру, для точного описания сферического треугольника (верхняя левая фигура на рис. 4) достаточно знания 9-ти компонентов: трех его вершин и трех компонентов вектора кривизны в одной из вершин. Для описания правой верхней фигуры на рис. 4 достаточно знать 12 компонентов – четыре вершины, три координаты точки, через которую должна пройти поверхность, и четыре граничных условия: два граничных радиуса кривизны (показаны желтым) и два условия тангенциальности (показаны синим).



    Рис. 4. Минимальные наборы информации для описания геометрии поверхности, заданной граничными условиями (сверху). Снизу дан пример оптимизации избыточного представления импортированной из Unigraphics модели

    Геометрия, импортированная из других пакетов, зачастую чрезвычайно избыточна. Снизу на рис. 4 изображены контрольные точки поверхностей до и после аппроксимации с заданной точностью 0.001 мм. До аппроксимации количество контрольных точек поверхностей NURBS было столь велико, что они отображались как сплошная область, залитая синим цветом. После аппроксимации поверхность достаточно точно описывается всего девятью контрольными точками (показано зеленым).

    Рассмотрим работу предлагаемого метода на примере программы ShapeWorks Professional. На первом этапе производится анализ импортированной или построенной средствами SolidWorks геометрии. При этом автоматически определяются топология и геометрические особенности модели – симметричность, плоскостность, кривизна отдельных граней и т.д. Обнаруженные особенности формируют набор правил поведения геометрии при попытке её изменения, что визуализируется с помощью различных цветов и уровней иерархии на модели. В дальнейшем пользователь может изменить некоторые ограничения и полностью изменить характер поведения геометрии в случае её модификации. Ограничения и размеры могут накладываться прямо на грани и ребра модели – как в примере с кузовом автомобиля (рис. 3). Важно, что эти операции наложения не нарушают конструктивные элементы в предшествующей части дерева построения (если оно существует). Поддерживается и работа с непараметрической моделью, импортированной из другой системы без дерева построения.

    Мощным инструментом в руках конструктора послужит аппарат динамического изменения сложной поверхностной геометрии при сохранении характера распределения кривизны. Главным этапом здесь является создание сетки "параметрических характерных линий". В нашем методе используются не кривые линии, а ленточные поверхности с различной формой сечений. В частности, для стакана на рис. 5 это будет набор скруглений между гранями, а для кузова автомобиля – переходные зоны между поверхностями с большой кривизной (показаны зеленым цветом).


    Рис. 5. Анализ характера кривизны поверхностей в ShapeWorks Professional

    Параметрические характерные линии могут иметь множество вариантов сечений, но основными являются три: C – радиусное скругление между поверхностями, S – ступенчатый переход с радиусами перехода (например отштамповка на капоте), L – угловой излом. Далее задаются граничные условия. Мы последовательно задаем точки, через которые проходят кривые и поверхности, направления касательных, радиусы кривизны на границах, уровень гладкости сопряжения на границах поверхностей – характеристичных линий. Если пользователь не указал эти условия, то они сформируются автоматически, исходя из принципа "минимума суммарной энергии поверхностей" при использовании аппарата метода конечных элементов.


    Рис. 6. Модель головы:
    а – облако из 300 000 неупорядоченных точек;
    b – произвольная модель топологии поверхностей;
    c – результат наложения subdivision на облако точек;
    d – карта перемещений облака точек а относительно поверхности с;
    e – результат редактирования поверхностей на уровне с

    Для упрощения работы мы используем (рис. 6) два уровня иерархии:

  • грубый уровень описания топологии и связи поверхностей;
  • уровень детального распределения кривизны.
  • В целом, применяемая технология близка к "художественному моделированию" поверхностей в системах 3D-анимации, но она адаптирована для потребностей дизайна промышленных изделий (здесь требуется, чтобы проектируемые поверхности сопрягались с высокой точностью и удовлетворяли граничным условиям). В художественных пакетах все поверхности сопрягаются гладко. В нашем же представлении моделей допустимо существование изломов и характеристических линий.

    Работая на грубом уровне, пользователь может быстро изменять концептуальную модель изделия. Перейдя на уровень детализации, он может изменить характер распределения кривизны. При интеграции нашей библиотеки в любую CAD/CAM/CAE-систему, появится возможность редактировать импортированную геометрию, а также вносить изменения в конструкцию проектируемого изделия на завершающей стадии, не углубляясь в изучение дерева построения.


    Рис. 7. Оптимизация представления сложных форм с помощью T-сплайнов

    Поскольку в нынешних CAD-пакетах нет представления Subdivision surfaces, мы использовали идеологию T-сплайнов (рис. 7). Это дало два преимущества:

  • уменьшение в два-три раза количества контрольных точек для упрощения редактирования;
  • возможность конвертации модели в форматы, поддерживающие представление поверхностей NURBS и Безье.

  • Рис. 8. Модель корпуса Maseratti coupe для сравнительных тестов

    В заключение рассмотрим результаты сравнительного анализа четырех форматов для точного хранения геометрической информации (табл. 1). Для проведения данного исследования мы воспользовались 3D-моделью корпуса автомобиля Maseratti coupe (рис. 8), любезно предоставленного нам компанией EuroMold SPA (Cardito, Италия). Тестирование производилось на компьютере с конфигурацией P4 1900, 512Mb RAM, HDD 80Gb Samsung (7200 rpm, 8Mb cache), Windows XP Professional SP1.

    Таблица 1.

    Форматы 3D-данных
    Измеряемые характеристикиSTEP ISO AP214IGES ISO 5.3Parasolid 15 (x_b)BCTLib 1.4
    Размер файла модели, Kb54 38716 0482 706476
    Время загрузки модели в SolidWorks 2005, секунд185921816

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

    Copyright © CAD/CAM/CAE Observer # 5 (18)/2004