![]() |
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Ядро геометрического моделирования 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. Операция поворота точки
Найдем преобразование координат точки А в точку В. Обозначим Так как В матричном виде вращение точки А на угол
Однородные координаты и
В предыдущем параграфе были рассмотрены три вида преобразований точек на плоскости. Два из них – операции вращения и масштабирования - описываются в виде произведения матрицы на вектор, а третья – операция переноса – описывается как сумма двух векторов. В случае последовательного выполнения любой комбинации операций вращения и масштабирования результат легко можно записать в виде произведения матриц соответствующих преобразований. Это будет матрица результирующего поворота и масштабирования. Очевидно, что удобнее применять результирующую матрицу вместо того, чтобы каждый раз заново вычислять произведение матриц. Однако, таким способом нельзя получить результирующую матрицу преобразования, если среди последовательности преобразований присутствует хотя бы один перенос. Матричное произведение в компьютерной графике также называют композицией. Было бы удобнее иметь математический аппарат, позволяющий включать в композиции преобразований все три выше указанные операции. При этом получился бы значительный выигрыш в скорости вычислений. Однородные координаты и есть этот математический аппарат. Двумерный вектор В общем случае осуществляется переход от n-мерного пространства к Рассмотрим некоторые свойства однородных координат. Некоторые точки, неопределенные в n-мерном пространстве, становятся вполне определенными при переходе к однородным координатам. Например, однородный вектор Рассмотрим точку трехмерного пространства
Рис. 4. Проекция точки
Аналогично, рассматривая применение однородных координат для векторов трехмерного пространства, можно представить трехмерное пространство как проекцию четырехмерного пространства на гиперплоскость В однородных координатах преобразование центральной перспективы можно определить матричной операцией. Эта матрица записывается в виде:
Покажем, что эта матрица определяет преобразование точки объекта, заданной в однородных координатах, в точку перспективной проекции (также в однородных координатах). Пусть Теперь точки двумерного пространства будут описываться трехэлементными вектор-строками, поэтому и матрицы преобразований, на которые будет умножаться вектор точки, будут иметь размеры 3´ 3. Запишем матричное преобразование операции переноса для однородных координат: или При последовательном переносе точки Запишем матричный вид операции масштабирования.
Определим матрицу масштабирования Так же, как последовательные переносы являются аддитивными, покажем, что последовательные масштабирования будут мультипликативными.
Для операции поворота матричный вид будет такой: Определим матрицу поворота Аналогично двум предыдущим случаям, покажем, что матрица поворота остается таковой при последовательных поворотах. Таким образом, доказано, что два, а значит и любое количество последовательных поворотов можно записать в виде одной матрицы суммарного поворота. Также легко заметить, что любая последовательность операций, включающая в себя перенос, масштабирование и вращение в однородных координатах, может быть представлена одной матрицей, которая является произведением матриц данных операций. Рассмотрим, каким образом с помощью композиции матричных преобразований можно получить одно общее результирующее преобразование. Для этого будем использовать матрицы T, S и R. С вычислительной точки зрения гораздо проще и быстрее применять матрицу уже готового преобразования вместо того, чтобы применять их последовательно одну за другой. К точке более эффективно применять одно результирующее преобразование, чем ряд преобразований друг за другом. Для примера рассмотрим задачу поворота объекта на плоскости относительно некоторой произвольной точки Вот эта последовательность элементарных преобразований (рис. 5): 1. Перенос, при котором точка 2. Поворот на заданный угол. 3. Перенос, при котором точка из начала координат возвращается в первоначальное положение
Рис. 5. Последовательность преобразований при повороте объекта вокруг точки
Точка
Трехмерные матричные преобразования Подобно тому, как двумерные преобразования описываются матрицами размером Матрицы преобразований будем записывать в правосторонней системе координат. При этом положительный поворот определяется следующим образом. Если смотреть из положительной части оси вращения (например, оси Заметим, что на практике удобнее применять левостороннюю систему координат, так как в этом случае удобнее интерпретировать тот факт, что точки с большими значениями Запишем теперь матрицу трехмерного переноса. Аналогично двумерному случаю.
Операция масштабирования: Перейдем к операции поворота, с ней в трехмерном случае придется разбираться чуть побольше, чем в двумерном. Так как при двумерном повороте в плоскости
Матрица поворота вокруг оси
и вокруг оси Обратите внимание на смену положения синуса угла с отрицательным знаком в матрице поворота вокруг оси Обратные преобразования будут выражаться обратными матрицами. Для операции переноса надо лишь заменить знаки компонент вектора переноса на противоположные:
для операции масштабирования – на обратные значения:
для поворота – выбором отрицательного угла поворота:
Результатом нескольких последовательных поворотов будет матрица
Здесь верхняя матрица размером После перемножения любого числа матриц вида
Здесь верхняя часть размером
Вопросы эффективности вычислений Рассмотрим проблему ускорения вычислений в одной из самых трудоемких операций компьютерной графики – операции поворота точки относительно начала координат. Как было показано ранее, для ее выполнения необходимо произвести 4 операции умножения, 2 операции сложения, а также вычислить значения синуса и косинуса угла поворота. Напомним вид формул поворота: Одним из наиболее часто встречающихся способов ускорения операции поворота является отказ от вычисления синуса и косинуса угла во время выполнения программы, и использование их заранее подсчитанных значений, которые занесены в специальную таблицу. Например, в этой таблице могут храниться значения синусов и косинусов углов поворота с шагом в 1 градус. Тогда целое количество градусов угла поворота может служить в качестве индекса при извлечении соответствующих значений синусов и косинусов из таблицы. Такой прием называется табличным поворотом. Рис. 6. Вывод формулы О. Бьюнемана.
Дополнительным способом ускорения операции поворота является уменьшение количества операций умножения. Рассмотрим вывод формулы О. Бьюнемана с использованием тангенса половинного угла, в которой поворот точки вокруг начала координат производится за 3 операции умножения и 3 операции сложения. Так как на многих микропроцессорах операции умножения выполняются дольше чем операции сложения, то экономия времени достигается за счет уменьшения операций умножения. Вывод формулы будем получать из геометрических построений, как показано на рис.6.
Будем искать выражение координат
Последние три равенства будем называть формулой Бьюнемана.
Популярное:
|
Последнее изменение этой страницы: 2017-03-03; Просмотров: 2093; Нарушение авторского права страницы