Granite One в вопросах и ответах
Каковы потенциальные пользователи Granite?
Чем Granite отличается от других подобных технологий?
Поддерживает ли Granite взаимодействие между разработчиками?
Кто сможет получить Granite ля использования?
Чем Granite отличается от Pro/TOOLKIT
Почему РТС решила выпустить Granite One как средство разработки?
Какие языки программирования и платформы поддерживает Granite?
Какова концепция фичерса в Granite?
Как в Granite отслеживаются имена объектов?
Как Granite обеспечивает выполнение команд Undo и Rollback?
Использует ли Granite преимущества многопроцессорных платформ?
Как осуществляется управление памятью в Granite?
Как приложения хранят и читают файлы Granite?
Как Granite обрабатывает ошибки и нештатные ситуации?
Какие способы представления кривых и поверхностей используются в Granite?
Тестирование, сообщения о выявленных ошибках и поддержка пользователей
Какая техническая поддержка предоставляется пользователям Granite?
Какая документация по Granite доступна пользователям?
Весной этого года компания PTC объявила о начале лицензирования Granite One — среды разработки прикладного программного обеспечения, основанной на возможностях геометрического моделирования, создания интеллектуальных операций-фичерсов, графики и обмена данными, лежащих в основе Pro/ENGINEER. Начало лицензирования Granite знаменует собой появление на рынке новейшей платформы, пришедшей на смену первому поколению простых ядер геометрического моделирования и определяющей новый стандарт ядра для систем CAD/CAM/CAE — ядра, поддерживающего не только геометрическое моделирование, но и функциональную совместимость приложений. PTC полагает, что появление Granite даст компании возможность стать одним из лидеров в этой области. Проводя политику «открытых дверей», компания PTC готова в целях создания нового эффективного стандарта совместимости лицензировать Granite One пользователям, партнерам и даже конкурентам. Ряд ведущих разработчиков программного обеспечения (Moldflow Corp и др.) уже объявили о планах использовать Granite One в качестве ядра своих приложений. Учитывая большой интерес специалистов к Granite One, постараемся ответить на наиболее часто задаваемые вопросы.
Стратегия PTC
Что такое Granite One?
Granite — ядро для создания ассоциативно совместимых друг с другом CAD/CAM/CAE-систем и приложений. Опираясь на передовые разработки и решения PTC, Granite заключает в себе возможности, позволяющие различным приложениям совершенно естественно читать файлы друг друга без использования трансляторов, анализировать прочитанную информацию и создавать новую геометрию. Цель Granite — посредством создания ассоциативной и гетерогенной среды инженерной разработки превратить реальный процесс проектирования и подготовки производства в действительно параллельный процесс. Первая версия Granite — Granite One — включает в себя библиотеки, обеспечивающие возможности ассоциативного моделирования, а также среду разработки для быстрого создания и отладки приложений, написанных на Granite.
Каковы потенциальные пользователи Granite?
Круг потенциальных пользователей Granite весьма широк, в их числе:
- компании — разработчики прикладных систем и приложений, работающих с твердотельными моделями, могут использовать возможности Granite One по созданию интеллектуальных операций-фичерсов в качестве функционального ядра моделирования своих систем, а также для совместимости с другими CAD/CAM/CAE-системами, тоже написанными на Granite. Такой подход аналогичен использованию компанией PTC среды Granite в своих продуктах Pro/ENGINEER и Pro/DESKTOP;
- компании — разработчики приложений, не являющихся твердотельными моделлерами, но осуществляющих визуализацию, анализ или иного рода работу с такими CAD-моделями, созданными на базе ядра Granite, могут использовать Granite для чтения моделей и работы с ними, сохраняя при этом все преимущества ассоциативной связи. Используя подобное приложение, компания — изготовитель оснастки, например, могла бы читать файлы Pro/ENGINEER, содержащие модель оснастки. При этом если бы изменилась модель оснастки в Pro/ENGINEER, то и в приложении для ЧПУ-обработки, написанном на Granite и используемом изготовителем оснастки, все изменения были бы видны. Кроме того, ассоциативная связь позволила бы получить измененные траектории ЧПУ-обработки, если таковые были ранее рассчитаны;
- опытные пользователи могут самостоятельно интегрировать в среду Granite собственные разработки, предназначенные для решения задач моделирования или анализа, чтобы обеспечить их совместимость и ассоциативную связь с имеющимися у них CAD/CAM/CAE-системами, базирующимися на Granite. Например, компания — разработчик авиационной техники могла бы интегрировать с Granite написанные и используемые в компании расчетные программы в целях создания нового специального приложения, генерирующего формы поверхностей крыльев, которые могли бы быть использованы в процессе дальнейшей разработки конструкции в Pro/ENGINEER;
- высшие учебные заведения, особенно математического, технического или компьютерного профиля, могут использовать Granite как средство для изучения методологии твердотельного моделирования, а также для создания различных CAD-приложений для выполнения учебных и исследовательских работ. Полученные при этом модели будут полностью совместимы со всеми другими системами и приложениями, разработанными на базе Granite.
Чем Granite отличается от других подобных технологий?
По сравнению с технологиями других компаний-разработчиков, использование Granite дает множество преимуществ. Рассмотрим лишь некоторые из них.
Совместимость на уровне собственных форматов файлов. Созданные с использованием Granite приложения могут читать файлы любых других программ, написанных на базе Granite, в их собственных форматах без использования «нейтральных» файлов или трансляторов.
Ассоциативность. Созданные с использованием Granite приложения ассоциативно совместимы с другими приложениями, написанными на базе Granite, включая Pro/ENGINEER. Это означает, что деталь может быть разработана в одной прикладной программе, проанализирована в другой, а в третьей программе для нее могут быть рассчитаны траектории обработки на станках ЧПУ. При изменении исходной детали результаты работ, выполненных в последующих связанных приложениях, обновляются автоматически. Это позволяет организовать действительно параллельную инженерную разработку в гетерогенной среде.
Надежность Pro/ENGINEER. Ядро моделирования Granite использует те же самые библиотеки геометрического моделирования, что и Pro/ENGINEER — наиболее популярный и надежный твердотельный моделлер в мире. Следовательно, уже сегодня более 250 тыс. инженеров работают с приложениями, созданными на базе Granite. Granite используется при инженерной разработке промышленной продукции самого широкого спектра, включая такие стратегической важности проекты, как проект корабля X-38 для спасения экипажа международной космической станции, разработка оборудования для испытаний, проводимых Министерством энергетики США, а также при разработке потребительской продукции с тщательно продуманным дизайном, как, например, кукла Барби от Mattel или новое Интернет-устройство Compaq iPAQ. Выпуск новых версий Granite будет производиться параллельно с выходом новых версий Pro/ENGINEER, поэтому развитие Pro/ENGINEER обеспечит и развитие Granite.
Моделирование с использованием интеллектуальных операций-фичерсов. Granite содержит в себе ядро моделирования, базирующееся на использовании операций-фичерсов (features). Использование такого ядра значительно упрощает работу по созданию прикладных программ для моделирования, применяющих управление моделью на уровне фичерсов. Объекты-фичерсы являются частью объектной модели Granite. В фичерсах содержится вся информация о геометрии, а также история ее создания, с операциями Rollback (Прокрутить назад), Undo (Отменить) и Redo (Вернуть). Команда Undo, таким образом, доступна в любое время на уровне модели, а не только во время текущего сеанса моделирования. Все изменения конкретной модели сохраняются непосредственно в ней самой, а следовательно, не нуждаются в регенерации при последующей загрузке модели из файла. Прикладные программы, основанные на использовании Granite, могут «видеть» фичерсы и историю создания моделей непосредственно в данных Granite, принадлежащих другим приложениям.
Встроенные трансляторы. Для обмена данными с системами, не использующими Granite, предусмотрены двусторонние трансляторы в форматах IGES, STEP, VDA и ACIS SAT. Ну и конечно, Granite может читать без каких-либо трансляторов файлы приложений, созданных на базе Granite.
Современные архитектура и средства. Созданные для использования на персональных компьютерах и с учетом современной Интернет-инфраструктуры, средства разработки приложений (API) Granite позволяют реализовать самое разнообразное взаимодействие с объектами посредством Java, COM, а также C++.
Поддерживает ли Granite взаимодействие между разработчиками?
Для современного процесса инженерной разработки и производства продукции возможность обмениваться проектной информацией важна в такой же мере, что и возможность создавать эту информацию. Инженерная информация о разрабатываемом продукте должна легко и без потерь передаваться между различными CAD/CAM/CAE-приложениями.
Granite обеспечивает новую технологию передачи инженерной информации между приложениями. Построенные на базе Granite прикладные программы могут работать с CAD-файлами, созданными в любой другой построенной на базе Granite прикладной программе, читая данные Granite прямо из файлов в собственных форматах таких приложений. Это достигается путем использования плагина gPlug, поставляемого разработчиком соответствующей прикладной программы. Плагин «знает», где найти данные Granite в структуре файла в собственном формате. Поскольку файлы Granite ассоциативны, то каждый раз, когда в приложении, написанном на Granite, осуществляются изменения модели, соответствующие изменения происходят и в последующих связанных приложениях; при этом нет необходимости в обременительной процедуре экспорта данных.
Чтобы обеспечить совместимость приложений, разработчики должны написать соответствующие плагины gPlug для своих приложений на базе Granite и сделать их свободно доступными для любого пользователя. Такая задача не должна смущать разработчиков приложений, поскольку технология написания плагина gPlug достаточно проста. В случае отсутствия плагина gPlug для приложения пользователь такого приложения не сможет воспользоваться преимуществами работы в среде действительно гетерогенной, параллельной инженерной разработки.
Кто сможет получить Granite для использования?
PTC стремится к тому, чтобы лицензии Granite смогли получить заинтересованные разработчики CAD/CAM/CAE-систем и приложений, пользователи Pro/ENGINEER, учебные заведения, а также другие потенциальные пользователи.
Чем Granite отличается от Pro/TOOLKIT?
Pro/TOOLKIT является средством настройки Pro/ENGINEER и разработки приложений, работающих в среде Pro/ENGINEER. Поскольку Pro/TOOLKIT напрямую связан с Pro/ENGINEER, находящимся в активном сеансе работы, то для использования созданных с помощью Pro/TOOLKIT приложений и настроек необходимо приобрести и установить Pro/ENGINEER. Pro/TOOLKIT наиболее подходит для пользователей Pro/ENGINEER и разработчиков, создающих приложения, расширяющие возможности Pro/ENGINEER. Некоторые возможности Pro/ENGINEER, в том числе работа со сборками, чертежами, эскизами, взаимодействие с Pro/INTRALINK, доступны посредством Pro/TOOLKIT API, но не являются предметом Granite.
Granite — это небольшая библиотека, предназначенная для включения в независимые прикладные программы и приложения. Предоставляя для создания геометрии больше возможностей, чем Pro/TOOLKIT, Granite не обеспечивает непосредственного доступа в приложения Pro/ENGINEER. Связь Granite c Pro/ENGINEER, как и с любой другой прикладной программой, написанной на Granite, заключается в естественной способности Granite читать файлы Pro/ENGINEER в их собственном формате.
Откуда появился Granite One?
Компания РТС гордится тем, что создала Pro/ENGINEER — одну из лучших в мире технологий твердотельного моделирования, поддерживающую совместную разработку продукции. PTC постоянно инвестирует средства в развитие архитектуры Pro/ENGINEER, не прерывая работ по обновлению Pro/ENGINEER. Приобретая права на новые прикладные программы и делая эти программы частью своего ассоциативного семейства решений для инженерной разработки, PTC интегрировала в них технологию, используемую в Pro/ENGINEER. В процессе интеграции РТС тщательно создавала и отлаживала компоненты этой технологии для их последующего эффективного использования среди своих многочисленных групп разработки программного обеспечения во всем мире. Для выпуска Granite РТС просто приняла решение собрать эти компоненты в единый пакет и сделать его доступным для разработчиков, работающих в других компаниях.
Почему PTC решила выпустить Granite One как средство разработки?
РТС достигла беспрецедентно высокой эффективности взаимодействия своих продуктов. Компания принимала и принимает активное участие в деятельности многих комитетов, комиссий и рабочих групп, направленной на решение проблем обмена данными, помогая расширять и поддерживать STEP, IGES и другие протоколы обмена. Теперь РТС решила сделать шаг вперед. Опираясь на свою высокую компетентность в области твердотельного моделирования и управления данными, на сотрудничество с известными партнерами, а также на свои достижения в области разработки программных продуктов, компания РТС намерена радикально изменить представление о совместимости приложений на рынке систем автоматизированной инженерной разработки и производства продукции. Granite, с его ассоциативностью и поддержкой взаимодействия между приложениями на уровне файлов в их собственном формате, является примером этой стратегии. Разумеется, поддерживается совместимость и с другими стандартами передачи данных, ведь Granite включает в себя трансляторы IGES, STEP, ACIS и VDA.
Granite One — новый продукт. Будет ли он столь же надежен в работе, как и другие подобные технологии?
Granite использует те же самые коды, что и Pro/ENGINEER, имеющий заслуженную репутацию самого надежного решения для твердотельного моделирования. Хотя Granite использует некоторые новые средства и языки программирования, в его основе лежит технология моделирования, остающаяся на сегодняшний день самой эффективной и надежной в мире.
В отличие от других подобных систем, развитие Granite не связано с разработкой и написанием новых функций для моделирования. Просто РТС посредством Granite API сделала доступной функциональность, используемую Pro/ENGINEER для твердотельного моделирования.
Архитектура и концепции
Какие языки программирования и платформы поддерживает Granite?
Средства Granite API доступны из среды объектно-ориентированного программирования высокого уровня, поддерживающей Java, COM и C++.
В настоящее время Granite работает на платформах Windows, версии для других платформ доступны по специальному запросу.
Какова концепция фичерса в Granite?
Granite использует объекты-фичерсы для представления моделирующих операций, структурируя их в значимую дискретную последовательность. Каждая моделирующая операция связана с использованием какого-либо фичерса, которому принадлежит часть геометрии модели, созданная в результате применения данного фичерса.
- как элемент модели фичерс является объектом действия для команд Undo/Redo и Rollback;
- как носители информации фичерсы содержат в себе информацию о геометрии, созданной в процессе моделирования. Объект-фичерс определяет методы сбора, поиска, доступа к информации о поверхностях, кромках, кривых, истории, а также определяет средства диагностики, принадлежащие данному фичерсу;
- как совокупность методов объект-фичерс содержит моделирующие операции высокого уровня, такие как выдавливание (Extrude), вращение (Revolve) и им подобные, а также моделирующие операции низкого уровня. Помимо этого Granite предоставляет расширенные возможности для моделирования, в частности построение протяжек (Sweep), скруглений (Round) и др.
Как в Granite отслеживаются имена объектов?
Для обеспечения ассоциативности каждый раз, когда происходит регенерация модели, в Granite автоматически отслеживаются идентификационные номера (ids) объектов, входящих в состав модели. Одна и та же моделирующая операция, выполненная при одинаковых входных параметрах того же самого фичерса, приведет к созданию поверхностей и кромок с такими же идентификационными номерами. Эти ids будут оставаться неизменными в процессе изменения геометрии и (когда это возможно) топологии модели. А если в результате топологических изменений связи с ids нарушаются, Granite использует специальные функции для поиска новых альтернатив ids, ставших недоступными.
Кроме того, механизмы истории и поиска по истории обеспечивают для каждого фичерса точное соответствие между операциями нижнего уровня, входными ids и результирующими выходными ids. Пользователь может формулировать свои семантические правила отслеживания объектов посредством прямого доступа к таблице истории.
Как Granite обеспечивает выполнение команд Undo и Rollback?
Granite предоставляет два механизма возврата к предыдущему состоянию в истории модели: подавление фичерсов и Undo. Сочетание этих возможностей обеспечивает высокоэффективное моделирование.
Undo дает возможность вернуть модель в ее предыдущее состояние. Сделанные в каждой модели изменения могут быть независимо как отменены (Undo), так и возвращены назад (Redo). Приложения могут устанавливать любое количество меток на модели и производить операции Undo до этих меток. Работа с меткой проста и осуществляется посредством ссылки на метку. В отношении Redo поддерживается аналогичный механизм.
Rollback — иной механизм, обычно используемый в целях подавления фичерсов, что приводит к отмене изменений в геометрии и топологии модели, произошедших в результате применения данного фичерса. Информация Rollback также хранится вместе с моделью, а потому сохраненные модели не нуждаются в регенерации при повторной загрузке.
Использует ли Granite преимущества многопроцессорных платформ?
Да, вычислительные операции, требующие существенной загрузки процессора и подлежащие векторизации, могут выполняться по многопоточной схеме, с числом потоков, равным числу установленных процессоров.
Как осуществляется управление памятью в Granite?
Используя ту же самую схему управления памятью, что и Pro/ENGINEER, Granite запрашивает память из области динамически распределяемой памяти (heap) операционной системы с помощью стандартных методов. Прикладная программа не требует никаких дополнительных утилит управления памятью к тому, что уже реализовано в ядре Granite. Динамическая память запрашивается большими порциями, которые затем распределяются внутри приложения с использованием специально оптимизированных алгоритмов, предназначенных для работы с геометрическими данными 3D.
Как приложения хранят и читают файлы Granite?
На выходе из Granite модели являются потоком байтов. Само приложение предоставляет функции внешнего (обратного) вызова для сохранения этих данных в каком-либо файле или в базе данных (в зависимости от того, что требуется этому приложению), а также для обратного чтения данных из файла или из базы данных. Таким образом, приложение полностью контролирует способ хранения и отвечает за сохранность данных, тогда как Granite осуществляет интерпретацию данных и непосредственное моделирование геометрии.
На этой концепции основана архитектура плагина gPlug. Идея заключается в том, что для любого приложения можно создать небольшую программу с набором стандартных интерфейсов, предоставляющую доступ к потоку данных, создаваемому Granite. Такая программа может служить в качестве плагина для других приложений, построенных на базе Granite.
Как Granite обрабатывает ошибки и нештатные ситуации?
Granite обрабатывает в C++ и Java нештатные ситуации (исключения), подавая сигнал об ошибке. В COM исключения обрабатываются с использованием стандартных средств COM, предусмотренных для обработки ошибок. Сообщение о нештатной ситуации содержит такую подробную информацию об ошибке, как код (степень) серьезности и тип ошибки, необходимое для исправления ошибки действие, а также специальную геометрическую информацию, зависящую от конкретной ошибки.
Моделирование геометрии
Какие способы представления кривых и поверхностей используются в Granite?
Возможности Granite включают представления вспомогательной геометрии, кусков поверхностей, а также граничные представления твердотельных моделей. Эти представления оптимизированы для решения задач моделирования, характерных для процесса инженерной разработки продукции, и работают в ситуациях, обычных для процесса решения таких задач.
Все кривые и поверхности, хранящиеся в Granite, являются непроцедурными, а получаемые оценки точны и эффективны. Всегда, когда это возможно, используется аналитическая геометрия.
Granite поддерживает определения различных типов кривых и поверхностей. Кривые могут быть линиями, дугами, эллипсами, параболами, гиперболами, сплайнами, b-сплайнами и композитными кривыми. Типы поддерживаемых поверхностей — плоские, цилиндрические, конические, торы, поверхности вращения, сплайновые и b-сплайновые поверхности.
Тестирование, сообщения о выявленных ошибках и поддержка пользователей
Имеется ли в ядре встроенная возможность ведения протокола, упрощающая процесс выявления и исправления ошибок?
Сообщения Granite API могут быть записаны в нейтральном для языков программирования формате, который легко конвертируется в коды Java или C++ для исполнения в среде наладки. Можно также послать в PTC файлы протоколов вместе с сообщением о выявленных ошибках.
Предусмотрены ли средства тестирования новых программных кодов, реализующих новые функции приложений, и средства обнаружения ошибок?
Среда разработки Granite — gStudio — представляет собой базирующееся на Java средство создания и тестирования новых программных кодов, которое отображает модели Granite и позволяет проводить их проверку и оценку, имеет строчный интерпретатор для команд Java и Granite. С помощью gStudio можно быстро создавать и тестировать новые программные коды, а также получать файлы с протоколами работы своих приложений для обнаружения ошибок. Вы можете также конвертировать эти файлы протоколов в коды C++ или Java и использовать их в своих приложениях.
Какая техническая поддержка предоставляется пользователям Granite?
Пользователи, имеющие лицензии Granite с активным статусом сопровождения (maintenance), могут обращаться за консультациями по вопросам работы с Granite, а также с сообщениями о выявленных ошибках по телефону или электронной почте в службу поддержки пользователей PTC, осуществляющую поддержку Granite. Специалисты PTC, являющиеся экспертами по использованию Granite, будут работать над всеми вашими вопросами и проблемами, чтобы помочь вам найти соответствующие решения.
Какая документация по Granite доступна пользователям?
Комплект документации по Granite, поставляемый пользователям в виде набора интерактивных документов для чтения с использованием стандартных Web-браузеров, включает:
- функциональный обзор модели данных, используемой Granite, и концепций моделирования;
- руководство по решению задач, являющееся обучающим пособием по основам Granite API;
- справочник классов Granite API;
- документацию для пользователя по работе с сопутствующими приложениями, например gStudio.
Помимо этого пользователям предлагаются учебные курсы и консультации.
Как можно приобрести Granite?
Желающим приобрести лицензию Granite необходимо обратиться в PTC к Блэйку Картеру (Blake Courter, Manager, MCAD Business Development) по адресу:
PTC
140 Kendrick St
Needham, MA 02494, USA
Тел.: +1 (781) 370-5250
E-mail: bcourter@ptc.com.
«САПР и графика» 8'2001