|
Универсальная технология доступна существующим и новым клиентам компании с апреля 2006 года. На данный момент испытать технологию в работе вы можете приняв участите в программе предварительного доступа (EAP), после регистрации на сайте.
Интеграция параметрического ядра с геометрическим: универсальный подход от ЛЕДАС
Подавляющее большинство современных САПР и систем трёхмерного моделирования от самых простых до самых сложных построены вокруг геометрического ядра. Геометрическое ядро это тот набор объектов, интерфейсов и внутренних структур данных, который позволяет всем пользовательским функциям и приложениям в рамках САПР работать с общей моделью. Более того, эта модель зачастую может средствами ядра быть сохранена или передана как пользователям этой же САПР, так и в другие приложения (CAM и CAE системы и даже в другие САПР). Модель содержит геометрические и топологические свойства разрабатываемого изделия форму, размеры, относительное расположение, связи вида часть-целое между его конструктивными элементами и сборками. Ядро отвечает за внутреннее представление модели, её создание, изменение (включая достаточно сложные геометрические преобразования) и отображение.
Геометрическое ядро достаточно сложный программный компонент и на его создание могут уйти сотни человеко-лет и потому всё чаще разработчики САПР выбирают ядра сторонних производителей, таких как Spatial (ядро ACIS), UGS (ядро Parasolid) или PTC (ядро Granite). Существуют даже геометрические ядра с открытым кодом, например OpenCASCADE (сейчас принадлежит Principia Research & Development). Покупное ядро даёт разработчикам САПР возможность сосредоточиться на функциях собственно САПР не думая над сложными алгоритмами вычислительной геометрии и графического рендеринга. Кроме того, поставщики ядер поддерживают самое последнее оборудование, и использует новейшие алгоритмы в области компьютерной геометрии, что позволяет разработчикам САПР идти в ногу со временем, с минимальными затратами создавая системы, которые используют максимум мощности современных компьютерных систем. Справедливости ради, надо отметить, что существует и немало САПР, построенных на собственных ядрах. Обычно это разработки с солидной историей и в ядро вложены годы работы. Собственное ядро даёт ряд преимуществ: во-первых в нём всегда можно реализовать то, что нужно именно для данной системы, во-вторых оно даёт доступ к модели на очень низком уровне, что позволяет реализовывать многие функции проще, ну и в-третьих сопровождение и развитие собственного ядра на порядок оперативнее и точнее, ведь не надо обращаться в службу поддержки другой компании, объяснять проблему и ждать очередного обновления.
Рост вычислительной мощности современных компьютеров приводит к тому, что многие функции, ранее доступные только в больших САПР, теперь становятся фактически стандартными даже в средних и настольных системах. Ярким примером может служить параметрическое проектирование возможность наложения параметрических связей между объектами модели: если, например, раньше длины на чертеже применялись как инструмент, то теперь они становятся частью модели и изменение одного размера приводит к изменению других параметров чертежа, чтобы все наложенные ограничения остались выполнены (ну или, если не повезёт, к диагностике противоречия). Большинство геометрических ядер не поддерживают параметрическую функциональность совсем или поддерживаю её в ограниченном объёме. Для полномасштабной поддержки нужно другое ядро параметрическое. На рынке таких ядер не много, из самых известных DCM британской компании D-Cubed (была куплена компанией UGS) и LGS российской компании ЛЕДАС. О параметрических ядрах мы достаточно подробно писали в предыдущих своих публикациях и здесь мы на их описании останавливаться не будем.
Оба упомянутых ядра универсальны и могут быть использованы с любым геометрическим ядром, как лицензируемым, так и собственным. Однако, понятно, что UGS выгоднее развивать и распространять DCM вместе со своим геометрическим ядром Parasolid. Компания ЛЕДАС была и остаётся независимым разработчиком и в подтверждение этого компания выпускает универсальную технологию для встраивания LGS в системы, построенные на любых геометрических ядрах.
Для интеграции параметрического ядра с геометрическим в рамках одного приложения необходимо реализовать следующие интерфейсы:
- Вызов функций параметрического ядра из приложения для пересчёта координат объектов;
- Передачу данных из геометрического ядра в параметрический решатель: данные включают объекты и ограничения модели, а также параметры этих объектов и ограничений.
- Поддержку топологических связей между объектами модели для сохранения её целостности.
- Возврат данных обратно в геометрическое ядро. Возвращаются только параметры и статусы объектов и ограничений.
- Отображение ограничений в графическом представлении модели. Часть визуальных средств может быть переиспользована (например, расстояния и углы), а часть надо делать специально (например, отображение параллельности или концентричности).
Проанализировав опыт интеграции LGS с OpenCASCADE и ACIS эксперты компании ЛЕДАС выяснили, что более 80% интеграционного кода не зависит от геометрического ядра и призвано смоделировать сложные объекты и функции геометрического ядра более простыми объектами и ограничениями ядра параметрического. Так, например, отрезок из геометрического ядра распадается в параметрическом ядре на две точки, прямую и два ограничения.
Интеграция геометрического и параметрического ядра. Подход ЛЕДАС
По результатам этих исследований была разработана библиотека для упрощения интеграции LGS с любыми геометрическими ядрами и целая технология на основе этой интеграционной библиотеки. Независимо от того, какое ядро лежит в основе той или иной САПР или системы трёхмерного моделирования, и какая версия LGS используется, технология позволяет максимально быстро и просто интегрировать LGS с геометрическим ядром и приложением. Библиотека как раз и содержит те 80% кода общего для интеграции с любым ядром будь то ACIS, Parasolid, Granite или вообще собственное ядро. Она содержит моделирование сложных объектов простыми, высокоуровневые функции работы с LGS, средства работы с пользовательскими объектами для передачи данных обратно в приложение. На основе библиотеки была разработана универсальная технология, позволяющая заметно упростить интеграцию: она позволяет разработчику сосредоточиться на кодировании только тех частей, которые существенно зависят от геометрического ядра и приложения. Из приведённых пяти интерфейсов она упрощает реализацию четырёх: лишь отображение ограничений никак не поддерживается, поскольку сильно зависит от конкретного приложения.
Опыт показывает, что в различных геометрических ядрах данные представляются существенно по-разному. Так в OpenCASCADE геометрические объекты лишь элементы истории изменения топологических объектов и чтобы вернуть данные в приложение надо не модифицировать исходные объекты, а создать новые они попадут в более высокоуровневый объект как элементы истории его изменения. В самом же приложении все ссылки идут на этот высокоуровневый объект. В других случаях геометрический объект может быть достаточно высокоуровневым и надо менять лишь его свойства, чтобы сохранились все ссылки на него в приложении. Чтобы поддержать всё многообразие представлений данных одной библиотеки было бы недостаточно. Потому частью технологии является настраиваемый генератор шаблона интеграционного модуля. Удобный в использовании помощник позволяет задать ряд параметров (включая и дисциплину использования объектов геометрического ядра, версию LGS, необходимость генерации тестового приложения) и выдаёт набор заготовок исходного текста для работы со структурами данных пользователя. В эти заготовки разработчик САПР должен будет вписать свои процедуры, семантика которых зафиксирована и чётко документирована. В результате получится интерфейсная библиотека, вызовы которой и будет использовать интеграционная библиотека для связи с геометрическим ядром.
Документация важная часть описываемой технологии, позволяющая максимально упростить кодирование тех частей интеграционного модуля, которые нельзя сделать общими. Другой важной частью технологии является полнофукнциональный пример её использования интеграционный модуль для приложения на ядре OpenCASCADE позволяет понять какие функции и как именно необходимо реализовать для полноценной интеграции. Как показывает практика, имея перед глазами работающий образец, написать код аналогичного программного модуля существенно проще. Кроме того, вместе с заготовкой для интерфейсной библиотеки может быть сгенерировано тестовое приложение. Оно позволяет загружать модели, описанные на специальном языке, и сохранять их в родном формате геометрического ядра, после чего эта модель может быть загружена в САПР и проанализирована. Само тестовое приложение использует интерфейсную библиотеку, а не работает напрямую с геометрическим ядром. Такая архитектура позволяет генерировать тестовые приложения для любых ядер, даже для тех о которых специалисты компании ЛЕДАС никогда не слышали.
Универсальная технология для интеграции LGS в приложения будет доступна клиентам и партнёрам компании ЛЕДАС уже в марте месяце. Об условиях распространения обращайтесь непосредственно к специалистам компании по адресу info@ledas.com.
Вам помогут не только получить доступ к интеграционному модулю, но и подобрать необходимую вам конфигурацию LGS и даже окажут консультации по интеграции LGS с наиболее распространёнными геометрическими ядрами: ACIS, Parasolid, Granite.
|