Плотно пока не занимался с этим сборником API. Возможно предстоит и я решил оглядеться.
Довольно широкий диапазон языков: Python, VB, C#, Java, C++. Это хорошо. Режим журналирования может генерировать скрипты, что удобно. Журналирование позволяет автоматизировать некоторые процессы при работе в NX, что не мешает использовать сгенерированный код в своих приложениях.
Попался также Block UI Styler. Это утилита для создания графических диалогов NX, для которых генерируются код на различных языках программирования (можно выбрать нужный). Диалоги создаются в стиле NX в отличии от .NET форм, которые являются обычными окнами Windows.
Самый быстрый способ начать, это использовать скрипт VB. Скрипт можно повесить на кнопку на панели инструментов.
Imports System
Imports NXOpen
Module NXOpenSample
Sub Main()
Dim theSession = Session.getSession()
Guide.InfoWriteLine("Hello, World!")
End Sub
End Module
Более сложный вариант - это приложение .NET в виде сборки dll или exe. Также можно использовать class файлы Java или архивы jar.
Для .NET необходимые сборки лежат в папке <NX install directory>\UGII\managed. Для Java всё лежит в <NX install directory>\UGII.
Скомпилировал тестовую dll-ку под VS 2013 Express. Также попробовал под VS 2017 Community. Всё работает отлично. Кстати в документации описано применение шаблонов для студии 2013 Express, но Microsoft говорит, что такого типа шаблона не могут использоваться в 2013-ой. Они для старой версии студии. Я понял, что в документации используются другие шаблоны, не как у меня в дистрибутиве NX. Там говорится о каких-то архивах, но у меня всё не так. Нет таких архивов, только папки (вполне возможно, что я туплю, но это не факт). Мои не подошли. Ну и ладно, без них обойдусь. Тем более, что это шаблоны только для Visual Basic'а.
Необходимо иметь в виду то, что компилировать приложения NX Open необходимо учитывая разрядность процессора. Если установлен NX для 64-х разрядных процессоров, то и приложение должно быть для 64-х разрядных процессоров, иначе возникнет ошибка.
Также необходимо обратить внимание на расположение приложений. Вернее на переменную окружения UGII_USER_DIR в которой хранится путь до папки с приложениями. Например если папка с приложениями application лежит в папке c:\nx\myapps, то её и необходимо прописать в переменной. В документации упоминается приоритетный способ задания папок через файл custom_dirs.dat. На форуме есть про это.
Остались ещё вопросы конечно, но я не начал углубляться. Непонятно зачем создавать приложения с расширением exe, если они не запускаются самостоятельно? Хотя, если прикреплять приложения к командам, то там нет exe при выборе, только dll. Надо на Java попробовать написать приложение. Python используется 3-х версий.
Есть вопросы по лицензированию. Использовать журналирование можно без особых головных болей, а вот создание самостоятельных приложений требует дополнительных телодвижений. Должна быть специальная лицензия для создания приложений. Также попадался текст о подписании кода. Как узнаю что-нибудь интересное, поделюсь.
В общем так. Дело это непростое и интересное. Удачи!
Довольно широкий диапазон языков: Python, VB, C#, Java, C++. Это хорошо. Режим журналирования может генерировать скрипты, что удобно. Журналирование позволяет автоматизировать некоторые процессы при работе в NX, что не мешает использовать сгенерированный код в своих приложениях.
Попался также Block UI Styler. Это утилита для создания графических диалогов NX, для которых генерируются код на различных языках программирования (можно выбрать нужный). Диалоги создаются в стиле NX в отличии от .NET форм, которые являются обычными окнами Windows.
Самый быстрый способ начать, это использовать скрипт VB. Скрипт можно повесить на кнопку на панели инструментов.
Imports System
Imports NXOpen
Module NXOpenSample
Sub Main()
Dim theSession = Session.getSession()
Guide.InfoWriteLine("Hello, World!")
End Sub
End Module
Более сложный вариант - это приложение .NET в виде сборки dll или exe. Также можно использовать class файлы Java или архивы jar.
Для .NET необходимые сборки лежат в папке <NX install directory>\UGII\managed. Для Java всё лежит в <NX install directory>\UGII.
Скомпилировал тестовую dll-ку под VS 2013 Express. Также попробовал под VS 2017 Community. Всё работает отлично. Кстати в документации описано применение шаблонов для студии 2013 Express, но Microsoft говорит, что такого типа шаблона не могут использоваться в 2013-ой. Они для старой версии студии. Я понял, что в документации используются другие шаблоны, не как у меня в дистрибутиве NX. Там говорится о каких-то архивах, но у меня всё не так. Нет таких архивов, только папки (вполне возможно, что я туплю, но это не факт). Мои не подошли. Ну и ладно, без них обойдусь. Тем более, что это шаблоны только для Visual Basic'а.
Необходимо иметь в виду то, что компилировать приложения NX Open необходимо учитывая разрядность процессора. Если установлен NX для 64-х разрядных процессоров, то и приложение должно быть для 64-х разрядных процессоров, иначе возникнет ошибка.
Также необходимо обратить внимание на расположение приложений. Вернее на переменную окружения UGII_USER_DIR в которой хранится путь до папки с приложениями. Например если папка с приложениями application лежит в папке c:\nx\myapps, то её и необходимо прописать в переменной. В документации упоминается приоритетный способ задания папок через файл custom_dirs.dat. На форуме есть про это.
Остались ещё вопросы конечно, но я не начал углубляться. Непонятно зачем создавать приложения с расширением exe, если они не запускаются самостоятельно? Хотя, если прикреплять приложения к командам, то там нет exe при выборе, только dll. Надо на Java попробовать написать приложение. Python используется 3-х версий.
Есть вопросы по лицензированию. Использовать журналирование можно без особых головных болей, а вот создание самостоятельных приложений требует дополнительных телодвижений. Должна быть специальная лицензия для создания приложений. Также попадался текст о подписании кода. Как узнаю что-нибудь интересное, поделюсь.
В общем так. Дело это непростое и интересное. Удачи!
Комментариев нет:
Отправить комментарий