Геометрическое моделирование
Задача геометрического моделирования является важной областью САПР. Поскольку данные о физических объектах реального мира не могут быть целиком введены в компьютер, необходимо априори ограничить объем информации об объекте в рамках интересующего нас вопроса, например:
o Какие части объекта видимы?
o Какой цвет должен быть присвоен каждому элементу объекта?
o Какова площадь поверхности, какой объем занимает объект и какую массу он имеет?
o Не пересекается ли объект с другими объектами?
o Находится объект внутри или снаружи другого объекта?
И если будет выбрано подходящее представление геометрической модели объекта для оговоренного круга задач, она будет решена эффективно, и наоборот.
Геометрические модели в САПР используются для решения многих задач: визуализации, построения расчетных сеток, генерации управляющих программ ЧПУ и т. д. В первую очередь они предназначены для хранения информации о форме объектов и их взаимном расположении и предоставления ее для обработки в удобном для компьютерной программы виде. В этом ключевое отличие электронной геометрической модели от чертежа, который представляет собой условное символьно-графическое изображение, предназначенное для чтения человеком.
Лекция 5
Каркасное моделирование
Это исторически первая технология представления объемной геометрии. Она естественным образом развилась из систем 2D-черчения. Это самый простой способ представления трехмерных моделей – так называемые проволочные каркасы, или просто каркасы, которые дают неоспоримые преимущества по сравнению с моделированием на плоскости. Они помогают более ясно представлять модель и надежно контролировать взаимное расположение составляющих ее элементов. Кроме того, каркасы можно использовать и для создания проекционных видов. Достаточно простые структуры данных и алгоритмы работы с каркасами позволили реализовать их на маломощном оборудовании конца 70-х годов XX века.
Недостаток каркасного представления моделей состоит в том, что программы не могут отобразить всех особенностей поверхностей, определяемых каркасами, и это делает невозможным построение, например, точных сечений. Визуальное представление каркасных моделей достаточно аскетичное и в ряде случаев не дает возможности однозначно интерпретировать увиденное.
Тем не менее, даже такая, имеющая множество ограничений технология позволила существенно расширить функциональные возможности САПР по сравнению с 2D-системами. В настоящее время построение каркасов также используется в геометрическом моделировании САПР, но лишь как вспомогательная система промежуточных построений.
Пример каркасной модели высокой точности показан на рис. 3.1. Поскольку форма изделия сложна, для ее передачи пришлось использовать множество расположенных близко друг к другу линий.
Поверхностное моделирование
В отличие от каркасного представления, моделирование при помощи поверхностей имеет существенно меньше ограничений, так как позволяет определить своеобразную «оболочку» трехмерного объекта.
Геометрические модели на основе поверхностного представления обеспечивают качественную визуализацию, более простой переход к построению расчетных сеток для численного моделирования, обеспечивают ряд полезных функций, таких как построение пространственных сопряжений, сечений, определения линии пересечения оболочек, генерацию чертежных проекций. Пример визуализированной поверхностной модели показан на рис. 3.2.
Поверхностные модели различаются по способу аппроксимации поверхности.
Более простой в части структуры данных и используемых для работы с ними алгоритмов является полигональная аппроксимация, когда поверхность представляется набором взаимосвязанных плоских граней, на практике чаще всего треугольных. Такая аппроксимация легко строится, для нее разработаны эффективные алгоритмы реалистичной визуализации, она не требует значительных вычислительных ресурсов, хотя может быть и затратной по памяти. Главным ограничением подобной аппроксимации является то, что она имеет фиксированную точность, то есть отклонение положения модельной поверхности от «идеальной» моделируемой. Для достижения высокой точности требуется создание сеток с малым шагом, что ведет к росту требований к вычислительным возможностям системы. Поэтому использование полигональной аппроксимации в САПР на текущий момент ограничено подсистемами визуализации и простейшего ЗD-эскизирования.
Рис. 3.1 Каркасная модель теоретических обводов космического корабля Буран
Рис. 3.2 Поверхностная модель теоретических обводов космического корабля Буран
Этих недостатков лишена технология NURBS (Non-Uniform Rational В- Spline, неоднородный В-сплайн), сегодня наиболее часто используемая в практике САПР. Такое описание поверхности обеспечивает определение координат любой ее точки, радиуса кривизны в ней, направления нормали к поверхности с высокой, в общем случае (без учета вычислительных затрат) любой наперед заданной точностью. Определенным недостатком такого подхода является сложность алгоритмов работы с NURBS, однако это обстоятельство исторически преодолено исследователями и разработчиками.
В определенной степени NURBS-представление является развитием полигонального, но в отличие от него позволяет описывать не только плоские, но и криволинейные грани и ребра (кромки). Совокупность таких граней с общими ребрами по традиции называют сеткой.
Пример полигональной и NURBS-моделей одного и того же изделия показан на рис. 3.3.
Рис. 3.3 Аппроксимация теоретических обводов самолета: а) полигональная и б) NURBS-аппроксимация
Технология NURBS обеспечивает реализацию ряда функциональных возможностей, недоступных или существенно ограниченных при использовании каркасного либо полигонального представления: вычисление радиуса кривизны поверхностей, их гладкое сопряжение, построение траекторий на поверхности, что важно для подготовки ЧПУ-программ, получение точных изображений, спроецированных на плоскость, например для получения чертежных видов и т. д. и т. п.
Традиционно в САПР используются несколько типовых контекстов создания поверхностей:
o плоская поверхность получается заполнением плоского контура (2D-эскиз или набор замкнутых кромок, лежащих в одной плоскости);
o поверхность вытяжки образуется в результате плоскопараллельного вытягивания замкнутого или разомкнутого 2D/3D-эскиза в направлении, перпендикулярном плоскости эскиза, или под произвольным углом;
o поверхность вращения получается вращением произвольного профиля (2D-эскиз) относительно оси;
o поверхность по траектории создается движением 2D/3D-эскиза вдоль криволинейной образующей (2D/3D-эскиз, ЗD-кривая) и произвольного числа направляющих кривых (2D/3D-эскиз, ЗD-кривая), деформирующих исходный контур;
o поверхность по сечениям – аналог поверхности по траектории; отличается тем, что строится не по одному, а по нескольким поперечным сечениям с направляющими кривыми;
o граничная поверхность – аналог поверхности по сечениям; отличается тем, что строится по нескольким произвольно сориентированным в пространстве ЗD-кромкам других поверхностей с сохранением касательности к ним и с соблюдением непрерывности по второй производной (гладкая стыковка); при построении могут использоваться направляющие кривые;
o поверхность свободной формы строится разбиением сетки с управляющими точками на поверхности грани ЗD-модели; изменение формы поверхности достигается перетаскиванием контрольных точек;
o эквидистантная поверхность получается смещением на определенное расстояние от существующих граней или поверхностей;
o поверхность разъема используется при проектировании литейных форм в качестве вспомогательной геометрии для разделения матрицы и пуансона;
o срединная поверхность создается на середине (или заданном проценте) толщины тонкостенной детали;
o линейчатая поверхность строится под углом к выбранной кромке и предназначена для построения граней с уклоном.
В том случае, если установлена программная связь между вспомогательным каркасом и результирующей поверхностью, моделирование становится ассоциативным, при этом изменение каркасных элементов ведет к автоматическому изменению геометрии поверхностей, построенных с использованием этого контекста.
Твердотельное моделирование
Несмотря на достаточно широкие возможности, которые предоставляет поверхностное моделирование, и оно имеет ряд существенных ограничений с точки зрения использования в САПР, в частности невозможность вычисления объемов, масс и моментов инерции объектов, ограниченность применения к ним булевых операций (вычитания, объединения, пересечения). Эти ограничения снимаются при использовании твердотельного моделирования, ставшего на сегодня стандартом де-факто в 3D CAD/CAM/CAE-системах.
Существуют различные алгоритмические методы представления твердотельных моделей – воксельное, использование октарных и бинарных деревьев, однако в практике САПР наиболее широкое применение имеет технология, базирующаяся на граничном представлении элементарных односвязных тел (BREP, Boundary Representation) в совокупности с конструктивной геометрией (CSG, constructive solid geometry), описывающей операции над телами.
Граничное представление (рис. 3.4) определяет сплошное тело неявно путем описания ограничивающей его поверхности. Суть BREP-представления заключается в том, что твердое тело описывает замкнутая пространственная область, ограниченная набором элементарных тонких поверхностей (граней) с общими образующими контурами (ребрами) на границе поверхностей и признаком внешней или внутренней стороны поверхности, а также обеспечивающим следующий ряд операций, определенных над телами:
o проверка правильности задания, для односвязных тел осуществляется по формуле Эйлера, в наиболее общем виде записываемой как: V-E+F=2, где V – количество вершин, Е – количество ребер, F – количество граней;
o вычисление габаритного объема;
o вычисление нормали в точке;
o вычисление кривизны поверхности;
o нахождение точки пересечения с контуром или другой поверхностью;
o определение положения точки относительно поверхности.
Лекция 6
Для описания сложных тел, моделирующих объекты реального мира, получаемые обработкой материала или неразъемной сборкой, используется иерархическая структура, описывающая тела как последовательность применения булевых операций над набором элементарных твердых тел, – так называемое CSG-дерево (Constructive Solid Geometry tree). В рамках CSG представления для описания составных твердых тел определены следующие операции над исходными (рис. 3.5, а) элементарными телами:
o вычитание (рис. 3.5, б);
o объединение (рис. 3.5, в);
o пересечение (рис. 3.5, г).
Так же как и для элементарного тела, правильность построения определяется формулой Эйлера, записываемой для многосвязных тел в частном виде:
V-E+F-H=2(C-G), где V – количество вершин, Е – количество ребер, F– количество граней, Н – количество несквозных отверстий, С – количество компонент, G – количество сквозных отверстий. Рис. 3.6 позволяет самостоятельно проверить верность формулы.
Таким образом, любое составное тело может быть описано в виде традиционного уравнения из булевых функций, в котором аргументами являются либо элементарные тела, либо другие составные тела. Это представление называют деревом построений. Такое представление, кроме удобства модификации геометрии результирующего тела, позволяет существенно снизить требования к вычислительным ресурсам за счет применения оптимизирующих процедур к дереву построений. Пример дерева построения детали показан на рис. 3.6.
Представление твердых тел в виде дерева построений удобно также и с точки зрения организации пользовательского интерфейса, обеспечивающего наглядный и быстрый доступ к любому элементу, входящему в описание геометрии тела, его модификацию и получение отчетной информации.