Урок 8 — интеграция с PLM-системой из расширения C#
Цели
- Изучить базовую структуру расширения для интеграции с PLM-системой;
- Создать расширение на C# или изменить готовый пример для работы с PLM-системой.
Практическая часть
Чтобы создать расширение:
- Установите актуальную версию NuGet-пакета с базовыми интерфейсами:
SprutTechnology.CAMAPI.SDK.Net.
- Реализуйте два интерфейса:
IExtension— общий интерфейс, через который CAM-система загружает расширение. Его единственное свойствоIExtensionInfo Infoсодержит основные metadata;IExtensionPLM— интерфейс интеграции с PLM-системой: подключение, отправка и получение данных.
- Начните с обязательных методов:
GetParameters— возвращает объектIPLMParameters, с помощью которого CAM-система отображает настройки расширения;Connect— получает значения параметров и устанавливает соединение с PLM-системой;Disconnect— закрывает соединение и при необходимости очищает внутреннее состояние.
- Реализуйте основные методы работы с элементами:
- Получение элементов:
GetChilds— получает дочерние элементы по идентификатору родителя. Если родитель не указан, возвращает элементы корневого уровня;FindItems— ищет элементы по имени;GetItem— загружает элемент по идентификатору;GetLinkedItem— возвращает связанный элемент;GetItemData— загружает подробные данные выбранного элемента.
- Передача элементов:
DownloadItems— скачивает выбранные элементы, кроме проектов;UploadItem— загружает обычные элементы в PLM-систему, кроме проектов;DownloadProject/UploadProject— выполняют соответствующие действия с проектами.
- Получение элементов:
- Реализуйте методы жизненного цикла:
InstallиUninstallвызываются при регистрации и удалении расширения. Их можно оставить пустыми, если дополнительные действия установки и очистки не нужны.
- Логические свойства
SupportProjectLoad,SupportMachineLoad,SupportPostprocessorLoad,SupportPostprocessorInsideMachineLoad,SupportToolLoad,SupportToolSave,SupportDomainAuthсообщают CAM-системе, какие функции поддерживает расширение. Если свойство возвращаетfalse, соответствующая возможность отключается в интерфейсе.
Полный перечень методов и их описания приведены в API reference.
Можно клонировать готовый пример, использовать его без изменений или доработать для собственной PLM-системы:
- Откройте репозиторий примеров GitVerse и клонируйте его.
- Найдите каталог с примером интеграции с PLM-системой — он послужит основой расширения.
- Откройте проект
PLMExtension/PLMExtensionNet/project/main/PLMExtensionNet.csprojв выбранной среде разработки или редакторе кода. - Обратите внимание на следующие настройки:
PLMExtension/PLMExtensionNet/.stbuild/build/stbuild.csproj— версия системы сборки. Для доступа к новым возможностям системы сборки может потребоваться её обновление;- Версия NuGet-пакета
SprutTechnology.CAMAPI.SDK.Net.
- Адаптируйте пример к своей PLM-системе. Он содержит базовую рабочую реализацию обоих интерфейсов и имитирует работу PLM-системы с помощью каталогов.
Когда расширение готово:
- Соберите решение;
- Отдельно запустите CAM-систему;
- Установите расширение в CAM-систему и настройте подключение к PLM по инструкции;
- Проверьте работу всех функций расширения в CAM-системе.