В связи со стремительным развитием технологий и их повсеместным внедрением, автоматизация разработки и моделирования путём внедрения API является неотъемлемой частью производства. Пользовательские интерфейсы приложения способствуют автоматизации процесса разработки продуктов, соответственно, это позитивно скажется в целом на производстве, так как, отрасль машиностроения развивается максимально быстро.
В данном исследовании в качестве объекта изучения была выбрана технология NX Open, являющаяся интерфейсом прикладного программирования. Задача исследования состоит в определении сравнительной эффективности данной технологии.
Описываемая в статье технология NX Open является API, предлагающая возможность создавать и использовать собственные расширения приложений для NX на разных языках программирования. Основной интерфейс представляет собой объектно-ориентированную структуру классов, предоставляющую пользователю все необходимые классы и структуры с их функциями. Эти структуры доступны в таких языках программирования как C/C++, Java и как оболочка из структуры С/С++ для языков .NET и VB.NET
Широкий спектр функций NX Open предоставляет такие возможности при разработке, как создание геометрии деталей, сборок, чертежей, объектов CAE и CAM, циклический просмотр объектов в файле детали, создание пользовательских интерфейсов, которые позволяют пользователям выбирать объекты и вводить данные. Так как NX построен на архитектуре автоматизации, которая обеспечивает общую основу для автоматизации и программирования, то следует рассмотреть саму структуру NX Open, которая будет представлена на рис.1
Рисунок 1. Структура NX Open API
На схеме видим, что в самом низу находится весь функционал Siemens NX т.е. его внутренние функции. Далее следуют User Function (пользовательские функции) c помощью которых пользователь можен взаимодействовать с NX. Над пользовательскими функциями находится интерфейс NX Open, который, как уже говорилось ранее позволяет писать прикладные программы и доступен на нескольких языках программирования. И наконец, в самом верху находится SNAP – интерфейс прикладного программирования, который позволяет писать программы для настройки и расширения NX. Преимущество заключается в том, что небольшие приложения созданные таким образом, часто могут ускорить выполнение повторяющихся задач и получить важные сведения о процессе проектирования. На рис.2 представлена схема архитектуры NX Open.
Рисунок 2. Схема архитектуры NX Open
Одним из способов начать программирование с использованием технологии NX Open является записывание «Журналов» и их разбор. Их можно записывать на определенном языке программирования, а затем использовать в качестве шаблона собственной разработки. «Журнал» либо «Journal Editor» - это инструмент позволяет автоматизировать стандартные инженерные процедуры. процедуры. Основным преимуществом «Журнала», которое напрямую связывает его с технологией NX Open это то, что с его помощью можно конвертировать лю бое действие, выполненное в NX, в программный код. «Журнал» помогает пользователю автоматизировать определенные задачи при разработке API. Работа в Journal Editor накладывает некоторые ограничения при разработке: весь код должен быть в одном файле, вызов функций возможен только из набора специальных библиотек (NX Open DLL, Snap DLL, несколько библиотек Windows).
Набор инструментов является довольно обширным, среди которых: традиционная автоматизация (Open C++, NXOpen для .NET, Java, создание журналов), инструменты разработки интерфейса пользователя (приложение BlockUI Styler, упрощенный инструмент SNAP, GRIP), автоматизация на основе знаний (Knowledge Fusion, студия разработки шаблонов, инструменты проверки).
Как и в большинстве современных программных систем, классы объектов NX Open организованы в иерархическую структуру. Более низкоуровневые элементы наследуются от элементов более высокго уровня. На рис. 3 показана иерархия вплоть до простых часто используемых объектов.
Рисунок 3. Диаграмма иерархии объектов
Изучив диаграмму, видно, что Point – это своего рода «SmartObject», который является своего рода «DisplayableObject» и так далее. В этом заключается иерархия объектов. Но помимо всего прочего необходимо выделить наиболее важные типы объектов: RemotableObject (является основой для всех «UF» классов), TaggedObject (используется для списков объектов, для метода Selection), NXObject (используется для Part объектов и для объектов, которые находятся внутри файла деталей NX, но не отображаются – это виды, макеты, выражения и т.д.) NXObject имеют имена и другие неграфические атрибуты, DisplayableObject (включает в себя большинство типов такие как: аннотации, тела, грани, базовые объекты, CAE-объекты), SmartObject (включает в себя точки, кривые и некоторые типы объектов, используемых в качестве компонентов других объектов при реализации ассоциативности.
Список литературы
- NX Open .NET Reference Guide – URL: https://docs.plm.automation.siemens.com/tdoc/nx/10/nx_api#uid:index_xid969099:xid961278
- Документация Siemens Programming Tools – URL: https://docs.plm.automation.siemens.com/tdox/nx/10/nx_api#uid:index
- Getting Started with NX Open – URL: https://docs.plm.automation.siemens.com/data_services/resources/nx/1872/nx_api/common/en_US/graphics/fileLibrary/nx/nxopen/NXOpen_Getting_started.pdf