Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Ядро геометрического моделирования Parasolid
Parasolid — коммерческое ядро геометрического моделирования, разрабатываемое и поддерживаемое компанией Siemens PLM Software. Компания Siemens PLM Software применяет Parasolid в собственных системах NX, Solid Edge, Femap и Teamcenter, а также предоставляет лицензии независимым поставщикам программного обеспечения и конечным пользователям. Ядро Parasolid предназначено для математического представления трехмерной формы изделия и управления этой моделью. Полученные с его помощью геометрические данные используются системами автоматизированного проектирования (CAD), технологической подготовки производства (CAM) и инженерного анализа (САЕ) при разработке конструктивных элементов, деталей и сборок[1]. Parasolid поддерживает SMP (многопроцессорное аппаратное обеспечение) и включает множество объектно-ориентированных функций для приложений под управлением Windows NT, UNIX, и LINUX. Общий формат обеспечивает единство данных между внутренними приложениями и коммерческими системами. Концепция обмена данными известна как «Parasolid Pipeline» и означает обмен твердотельными моделями Parasolid, сохраненными в открытом файловом формате.x_t. Другой формат.x_b — двоичный формат, менее зависимый от аппаратных средств и не дающий ошибок при преобразовании[2]. История создания. Parasolid является наследником ядра ROMULUS[3], разработанного компанией Shape Data в 1978 г. Первая версия Parasolid появилась в 1988 г., вскоре после этого Shape Data была поглощена McDonnell Douglas, а ядро Parasolid легло в основу системы Unigraphics. Функциональные возможности Функциональные возможности Parasolid включают более 800 объектов на основе функций, включающие создание моделей, утилиты запросов и редактирования, прикладные функции высокого уровня. Parasolid также обеспечивает поддержку визуализации и графических средств, включая линии невидимого контура, структурные схемы страниц и чертежи, тесселяцию и запросы данных модели. Средства моделирования позволят пользователям создавать и редактировать модели путем применения булевы операции, такие как объединение, вычитание, пересечение. Создавать базовые элементы (кубы, конусы, сферы и пр.). При работе можно комбинировать проволочные, твердотельные, листовые и поверхностные модели. Для выполнения функций происходит выбор областей. Работа ведется как с непараметризованными объектами, так и с параметрическими. Поддержка элементов. Parasolid предлагает несколько методов получения твердотельной геометрии с помощью элементов: вытягивание (выдавливание) профилей, тиснение для создания сложных площадок и карманов, создание массивов из существующих элементов. Средства моделирования поверхностей. Заметание позволяющее создать сложные формы исползуя перемешение профиля по направляющим. Поверхности, но наборам сечений с заданием касательности и другими функциями управления формы. Автоматическое заполнение оверстий на поверхностях свободных форм. Parasolid дает возможность работы с тонкостенными деталями. Придание толщины листовой модели, построение оболочек на основе твердых тел, создание смешений для поверхностей и граней. Parasolid включает широкий спектр возможностей по созданию уклонов, скруглений, фасок, масштабированию. Parasolid также включает инструменты для прямого редактирования деталей: сжатия-расширения, создания смещений, замены геометрии и перемещения элементов детали с автоматическим обновлением соответствующих данных. Импорт данных из других CAD систем поддерживается Parasolid благодаря технологии Tolerant Modeling («Моделирование с заданной точностью»). Модели, созданные с помощью Parasolid, могут быть использованы в качестве конечных 3D представлений с возможностью запроса информации по массовым характеристикам, структуре данных, областям для выбора, оценке геометрии, нахождению пересечений, расчету минимальных и максимальных дистанций. Parasolid также содержит полностью интегрированные В-кривые и В-поверхности, использующие представления NURBS для упрощения обмена данными, а также аналитические поверхности (когда это возможно) для повышения надежности и эффективности. Parasolid также имеет расширенные возможности листового моделирования, включая сшивания и утолщение листов для создания твердых тел. Для эффективного использования Parasolid, пользователям необходимо обладать знаниями в области систем автоматизированного проектирования (САПР), вычислительной геометрии и топологии. Parasolid является базовой платформой геометрического моделирования для многих ведущих мировых САПР {x}, систем технологического проектирования и инженерного анализа (CAD/CAM/CAE). Включая такие системы как:
Parasolid также используется машиностроительными компаниями (Boeing, General Electric, Israel Aircraft Industries, Mitsubishi Motors и др.) для разработки специальных внутренних приложений. Новая версия. Последняя версия Parasolid сфокусирована на улучшении производительности, работе с поверхностями и визуализации. 4 декабря 2012 г. Siemens PLM Software объявила о начале поставок 25-й версии геометрического ядра Parasolid. В новой версии Parasolid V25 введены улучшения в самых различных областях, особое внимание уделено построению кривых и поверхностей, производительности и визуализации. Поверхностное моделирование включает в себя улучшения, которые позволяют пользователям точное управление поверхностными моделями. Система дает возможность при выполнении операций заметания настройки плавного перехода с гранями, прилегающими к профилям. При работе с кривыми дает новые возможности и обеспечивает точный контроль при управлении. Из цепочки плавно связанных ребер можно получить одну плавную кривую. Одна или несколько кривых могут быть спроецированы на поверхность вдоль нормали к поверхности или по указанному вектору. Оптимизация производительности была сделана для выполнения булевых операций и процессов при работе с CAE приложениями.
Лекция 7. Матричные преобразования систем координат Преобразования, связанные с системой координат Необходимо научиться управлять изображением на экране, вносить изменения в его положение, форму, ориентацию, размер. Для этих целей существуют специальные геометрические преобразования, которые позволяют изменять эти характеристики объектов в пространстве. Представим задачу создания компьютерного имитатора полетов на военном самолете. Объекты на земле, как и сам самолет, изменяют свое положение: вращается антенна локатора, движется танк. При этом, наблюдатель видит эту картину из определенной точки в пространстве в выбранном направлении. Необходимо описать эти сложные преобразования математически. Введем три вида систем координат. Первая из них – мировая система координат – задается осями . Мы размещаем ее в некоторой точке, и она остается неподвижной всегда. Вторая – система координат наблюдателя. Эту систему назовем . Она определяет положение наблюдателя в пространстве и задает направление взгляда. И третья – система координат объекта. В нашем случае их две: система координат локатора и система координат танка. Эти системы также могут перемещаться и изменять свое положение в пространстве относительно мировой системы координат. Координаты точек объектов задаются в системах координат объектов, каждая из которых, в свою очередь, привязана к мировой системе координат. Система координат наблюдателя также перемещается относительно мировой системы координат. Теперь становится понятно, что для того, чтобы увидеть трехмерный объект на экране компьютера надо проделать следующие шаги. 1. Преобразовать координаты объекта, заданные в собственной системе координат, в мировые координаты. 2. Преобразовать координаты объекта, заданные уже в мировой системе координат, в систему координат наблюдателя. 3. Спроецировать полученные координаты на проекционную плоскость в системе координат наблюдателя. Отметим, определенную двойственность впечатлений, возникающих при взаимных перемещениях систем координат друг относительно друга. Представим себе, что мы наблюдаем кубик в пространстве. Пусть теперь этот кубик начнет вращаться вокруг, например, вертикальной оси. Мы увидим, что кубик вращается. Но тот же самый эффект мы получим, если сами начнем облетать вокруг кубика и рассматривать его с разных сторон. Визуальный эффект остается тем же самым, хотя в первом случае наша система координат остается неподвижной, а во втором – вращается по орбите. Этот эффект можно использовать при выводе формул движения в пространстве. Двумерные матричные преобразования Рассмотрим преобразования координат точек на плоскости. На рис. 1 точка перенесена в точку .
Рис. 1. Операция переноса или трансляции точки в точку .
Математически этот перенос можно описать с помощью вектора переноса . Пусть радиус вектор, соответствующий вектору переноса . Тогда переход из точки в точку будет соответствовать векторной записи . Отсюда получаем, что для переноса точки в новое положение необходимо добавить к ее координатам некоторые числа, которые представляют собой координаты вектора переноса: Масштабированием объектов называется растяжение объектов вдоль соответствующих осей координат относительно начала координат. Эта операция применяется к каждой точке объекта, поэтому можно также говорить о масштабировании точки. При этом, конечно, речь не идет об изменении размеров самой точки. Масштабирование достигается умножением координат точек на некоторые константы. В том случае, когда эти константы равны между собой, масштабирование называется однородным. На рис.2 приведен пример однородного масштабирования треугольника . Рис. 2. Операция масштабирования.
После применения операции однородного масштабирования с коэффициентом 2 он переходит в треугольник . Обозначим матрицу масштабирования . Для точек и операция масштабирования в матричном виде будет выглядеть следующим образом: . Рассмотрим далее операцию вращения точки на некоторый угол относительно начала координат. На рисунке 3 точка переходит в точку поворотом на угол . Рис. 3. Операция поворота точки на угол .
Найдем преобразование координат точки А в точку В. Обозначим угол, который составляет радиус-вектор с осью Оx. Пусть r – длина радиус-вектора , тогда Так как и , то подставляя эти выражения в уравнения для и , получаем: В матричном виде вращение точки А на угол выглядит следующим образом:
Однородные координаты и
В предыдущем параграфе были рассмотрены три вида преобразований точек на плоскости. Два из них – операции вращения и масштабирования - описываются в виде произведения матрицы на вектор, а третья – операция переноса – описывается как сумма двух векторов. В случае последовательного выполнения любой комбинации операций вращения и масштабирования результат легко можно записать в виде произведения матриц соответствующих преобразований. Это будет матрица результирующего поворота и масштабирования. Очевидно, что удобнее применять результирующую матрицу вместо того, чтобы каждый раз заново вычислять произведение матриц. Однако, таким способом нельзя получить результирующую матрицу преобразования, если среди последовательности преобразований присутствует хотя бы один перенос. Матричное произведение в компьютерной графике также называют композицией. Было бы удобнее иметь математический аппарат, позволяющий включать в композиции преобразований все три выше указанные операции. При этом получился бы значительный выигрыш в скорости вычислений. Однородные координаты и есть этот математический аппарат. Двумерный вектор в однородных координатах записывается в виде , где . Число называется масштабным множителем. Для того, чтобы из вектора, записанного в однородных координатах получить вектор в обычных координатах необходимо разделить первые две координаты на третью: . В общем случае осуществляется переход от n-мерного пространства к Рассмотрим некоторые свойства однородных координат. Некоторые точки, неопределенные в n-мерном пространстве, становятся вполне определенными при переходе к однородным координатам. Например, однородный вектор в трехмерном пространстве соответствует бесконечно удаленной точке . Поскольку в однородных координатах эту точку можно представить в виде , при , то в трехмерном пространстве это соответствует точке . Рассмотрим точку трехмерного пространства . Если представить эту точку как однородное представление точки двумерного пространства, то ее координаты будут . Сравнивая эти координаты со вторым видом формул, выведенных для центральной перспективной проекции, легко заметить, что двумерное представление точки с координатами выглядит как ее проекция на плоскость , как показано на рис. 4.
Рис. 4. Проекция точки на плоскость .
Аналогично, рассматривая применение однородных координат для векторов трехмерного пространства, можно представить трехмерное пространство как проекцию четырехмерного пространства на гиперплоскость , если . В однородных координатах преобразование центральной перспективы можно определить матричной операцией. Эта матрица записывается в виде:
Покажем, что эта матрица определяет преобразование точки объекта, заданной в однородных координатах, в точку перспективной проекции (также в однородных координатах). Пусть – точка в трехмерном пространстве. Ее однородное представление . Умножим v на P: Теперь точки двумерного пространства будут описываться трехэлементными вектор-строками, поэтому и матрицы преобразований, на которые будет умножаться вектор точки, будут иметь размеры 3´ 3. Запишем матричное преобразование операции переноса для однородных координат: или , где . При последовательном переносе точки в точку и затем в точку компоненты суммарного вектора переноса являются суммами соответствующих компонент последовательных векторов переноса. Рассмотрим, каковы будут элементы матрицы суммарного переноса. Пусть , . Подставив первое уравнение во второе получаем . Матричное произведение т.е. суммарный перенос равен произведению соответствующих матриц переноса. Запишем матричный вид операции масштабирования. . Определим матрицу масштабирования Так же, как последовательные переносы являются аддитивными, покажем, что последовательные масштабирования будут мультипликативными.
Для операции поворота матричный вид будет такой: Определим матрицу поворота Аналогично двум предыдущим случаям, покажем, что матрица поворота остается таковой при последовательных поворотах. Таким образом, доказано, что два, а значит и любое количество последовательных поворотов можно записать в виде одной матрицы суммарного поворота. Также легко заметить, что любая последовательность операций, включающая в себя перенос, масштабирование и вращение в однородных координатах, может быть представлена одной матрицей, которая является произведением матриц данных операций. Рассмотрим, каким образом с помощью композиции матричных преобразований можно получить одно общее результирующее преобразование. Для этого будем использовать матрицы T, S и R. С вычислительной точки зрения гораздо проще и быстрее применять матрицу уже готового преобразования вместо того, чтобы применять их последовательно одну за другой. К точке более эффективно применять одно результирующее преобразование, чем ряд преобразований друг за другом. Для примера рассмотрим задачу поворота объекта на плоскости относительно некоторой произвольной точки . Пока мы умеем поворачивать объекты только вокруг начала координат. Но можно представить эту задачу как последовательность шагов, на каждом из которых будет применяться только элементарная операция: перенос, масштабирование или вращение. Вот эта последовательность элементарных преобразований (рис. 5): 1. Перенос, при котором точка переходит в начало координат. 2. Поворот на заданный угол. 3. Перенос, при котором точка из начала координат возвращается в первоначальное положение .
Рис. 5. Последовательность преобразований при повороте объекта вокруг точки на угол a.
Точка . Первый перенос производится на вектор , а обратный перенос ‑ на вектор .
Трехмерные матричные преобразования Подобно тому, как двумерные преобразования описываются матрицами размером , трехмерные преобразования могут быть представлены матрицами размером . Тогда трехмерная точка записывается в однородных координатах как , где . Для получения декартовых координат надо первые три однородные координаты разделить на . Два однородных вектора описывают одну декартову точку в трехмерном пространстве, если , где и - векторы, записанные в однородных координатах. Матрицы преобразований будем записывать в правосторонней системе координат. При этом положительный поворот определяется следующим образом. Если смотреть из положительной части оси вращения (например, оси ) в направлении начала координат, то поворот на против часовой стрелки будет переводить одну положительную полуось в другую (ось в , в соответствии с правилом циклической перестановки). Заметим, что на практике удобнее применять левостороннюю систему координат, так как в этом случае удобнее интерпретировать тот факт, что точки с большими значениями находятся дальше от наблюдателя. Запишем теперь матрицу трехмерного переноса. Аналогично двумерному случаю. , при этом
. Операция масштабирования: Перейдем к операции поворота, с ней в трехмерном случае придется разбираться чуть побольше, чем в двумерном. Так как при двумерном повороте в плоскости координаты остаются неизменными, то поворот вокруг оси записывается так: . Матрица поворота вокруг оси имеет вид: , и вокруг оси : Обратите внимание на смену положения синуса угла с отрицательным знаком в матрице поворота вокруг оси . Правильность этих матриц легко проверить поворотом одного из ортов на , при этом он должен перейти в следующий по порядку орт на соответствующей координатной оси. Обратные преобразования будут выражаться обратными матрицами. Для операции переноса надо лишь заменить знаки компонент вектора переноса на противоположные: ; для операции масштабирования – на обратные значения: ; для поворота – выбором отрицательного угла поворота: . Результатом нескольких последовательных поворотов будет матрица . Здесь верхняя матрица размером называется ортогональной. Важным ее свойством является то, что обратная к ней матрица является транспонированной: . Это полезно тем, что при вычислениях достаточно поменять индексы местами и обратное преобразование получается автоматически. После перемножения любого числа матриц вида и результирующая матрица всегда будет иметь вид: . Здесь верхняя часть размером определяет суммарный поворот и масштабирование, а три коэффициента последней строки – суммарный перенос.
Вопросы эффективности вычислений Рассмотрим проблему ускорения вычислений в одной из самых трудоемких операций компьютерной графики – операции поворота точки относительно начала координат. Как было показано ранее, для ее выполнения необходимо произвести 4 операции умножения, 2 операции сложения, а также вычислить значения синуса и косинуса угла поворота. Напомним вид формул поворота: Одним из наиболее часто встречающихся способов ускорения операции поворота является отказ от вычисления синуса и косинуса угла во время выполнения программы, и использование их заранее подсчитанных значений, которые занесены в специальную таблицу. Например, в этой таблице могут храниться значения синусов и косинусов углов поворота с шагом в 1 градус. Тогда целое количество градусов угла поворота может служить в качестве индекса при извлечении соответствующих значений синусов и косинусов из таблицы. Такой прием называется табличным поворотом. Рис. 6. Вывод формулы О. Бьюнемана.
Дополнительным способом ускорения операции поворота является уменьшение количества операций умножения. Рассмотрим вывод формулы О. Бьюнемана с использованием тангенса половинного угла, в которой поворот точки вокруг начала координат производится за 3 операции умножения и 3 операции сложения. Так как на многих микропроцессорах операции умножения выполняются дольше чем операции сложения, то экономия времени достигается за счет уменьшения операций умножения. Вывод формулы будем получать из геометрических построений, как показано на рис.6.
Будем искать выражение координат и через и . На оси отложим отрезок , такой что . Тогда . Здесь отрезок является горизонтальной проекцией отрезка , где , , , где . Теперь, зная , можно выразить в виде суммы длин отрезков и . Так как длины отрезков и равны как радиусы окружности с центром в точке , то . Обозначим , отсюда следует, что
, ,
Последние три равенства будем называть формулой Бьюнемана.
Популярное:
|
Последнее изменение этой страницы: 2017-03-03; Просмотров: 2093; Нарушение авторского права страницы