Расширяем функционал EPLAN при помощи Add-Inов на C#
EPLAN – это платформа для сквозного проектирования, охватывающая следующие отрасли: электротехника, КИПиА, гидравлика/пневматика и механика (проектирование шкафов и жгутов). Благодаря открытой архитектуре и стандартным интеграционным модулям EPLAN может быть экономически эффективно интегрирован с большим спектром сторонних решений: системами механического проектирования, ERP и PDM системами, системами проектирования зданий, промышленных производств и кораблей.
Применение EPLAN
• Автомобилестроение
• Машиностроение
• Металлургия
• Химическая и фармацевтическая промышленность
• Пищевая промышленность
• Добыча нефти и газа
• Трубопроводный транспорт
• Нефте- и газо-переработка
• Производство тепла и электроэнергии
• Передача и распределение электроэнергии
• Железнодорожный транспорт
• Водоснабжение и водоотведение
• Станкостроение
• Легкая промышленность
• Автоматизация зданий
Основные модули платформы
• EPLAN Electric P8 — Модульное и масштабируемое решение для электротехнического проектирования, автоматического создания проектной и рабочей документации.
• EPLAN Fluid — Программное обеспечение для проектирования пневмо/гидроавтоматики, систем смазки и охлаждения и автоматического создания соответствующей проектной и рабочей документации
• EPLAN ProPanel — 3D проектирование электротехнических шкафов с передачей данных в производство. Виртуальное трехмерное моделирование, создание двух- и трех- мерных чертежей, трехмерное изображение проводных и маршрутных схем, наличие шаблонов для работы сверлильного оборудования и интеграция со станками ЧПУ
• EPLAN PrePlanning — программное обеспечение для предварительного (эскизного) проектирования объектов и генерации проектной документации.
• EPLAN Engineering Center — Решение для функционального проектирования. В данном модуле пользователь задет граничные параметры проекта, а само проектирование осуществляется системой автоматически по определенным правилам.
Про расширение функционала
EPLAN – гибкая платформа, позволяющая расширять функционал с помощью скриптов и Add-Inов. Рассмотрим только Add-Inы, поскольку скрипты (сценарии) дают гораздо меньшую свободу действий.
Add-In – это надстройка, дополняющая и расширяющая базовый функционал, предлагаемый EPLAN. Add-In создается при помощи API EPLAN, который, в свою очередь, использует dotNET и поддерживает 3 языка программирования: Visual Basic, C++ и C#. Порядок создания Add-Inов одинаков для всех вышеуказанных языков. Информация по API EPLAN находится в справочнике EPLAN API-Support (в формате *.chm), поставляемом вместе с документацией.
Процесс создания Add-Ina
Рассмотрим непосредственно процесс создания Add-Inов.
1. Для начала, так как используется среда dotNET, создаем проект Class Library в MS Visual Studio.
2. Далее подключаем к проекту библиотеки EPLAN API.
3. Пишем код инициализации Add-Inа
Для регистрации и инициализации Add-Ina, наш класс должен наследовать интерфейс IEplAddIn (подробнее в EPLAN API-Support). Создадим пункт меню в Главном Меню EPLAN и добавим в него одно действие (Action).
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Gui;
namespace Test
{
public class AddInModule:IEplAddIn
{
public bool OnRegister(ref bool bLoadOnStart)
{
bLoadOnStart = true;
return true;
}
public bool OnUnregister()
{
return true;
}
public bool OnInit()
{
return true;
}
public bool OnInitGui()
{
Menu OurMenu = new Menu();
OurMenu.AddMainMenu("Тест", Menu.MainMenuName.eMainMenuUtilities, "Информация по проекту", "ActionTest",
"Имя проекта, фирмы и дата создания", 1);
return true;
}
public bool OnExit()
{
return true;
}
}
}
Методы OnRegister и OnUnregister вызываются по одному разу, при первом подключении и удалении Add-Ina соответственно.
Метод OnExit вызывается при закрытии EPLANa.
Метод OnInit вызывается при загрузке EPLANa для инициализации Add-Ina.
Метод OnInitGui вызывается при загрузке EPLANa для инициализации Add-Ina и пользовательского интерфейса.
4. Пишем код действия (Action), который будет в нашем меню. Действие (Action) должно наследовать интерфейс IEplAction (подробнее в EPLAN API-Support).
using System;
using System.Windows.Forms;
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.DataModel;
using Eplan.EplApi.HEServices;
namespace Test.Action_test
{
public class Action_Test:IEplAction
{
public bool OnRegister(ref string Name, ref int Ordinal)
{
Name = "ActionTest";
Ordinal = 20;
return true;
}
public bool Execute(ActionCallingContext oActionCallingContext)
{
SelectionSet Set = new SelectionSet();
Project CurrentProject = Set.GetCurrentProject(true);
string ProjectName = CurrentProject.ProjectName;
string ProjectCompanyName = CurrentProject.Properties.PROJ_COMPANYNAME;
DateTime ProjectCreationDate = CurrentProject.Properties.PROJ_CREATIONDATE;
MessageBox.Show("Название проекта: " + ProjectName + "\n" + "Название фирмы: " + ProjectCompanyName +
"\n" + "Дата создания проекта: " + ProjectCreationDate.ToShortDateString());
return true;
}
public void GetActionProperties(ref ActionProperties actionProperties)
{
}
}
}
Метод OnRegister регистрирует наш Action под указанным именем.
Метод Execute выполняются при вызове Actiona из платформы EPLAN. В данном случае метод Execute выбирает текущий проект, считывает из него три поля, а именно, название проекта, название фирмы и дату создания, и затем выводит их в MessageBox.
Метод GetActionProperties возвращает описание нашего Actiona (только для документирования).
5. Имя скомпилированной DLL-библиотеки должно соответствовать следующему правилу:
Eplan.EplAddIn.XXXX.dll
где XXXX – это имя вашего Add-Ina
Подключение Add-Ina
К платформе Add-In подключается следующим образом:
1. Выполняем «Сервисные программы»
– «API-AddIns…»
2. Жмем на кнопку «Загрузить»
3. В открывшемся окне выбираем Add-In и нажимаем «Открыть»
4. Кликаем на кнопку «ОК». Add-In загружен и готов к работе.
При загрузке Add-In инициализируется пункт меню «Тест», раскрыв который мы видим наше действие (Action), описанное в Action_Test.
Посмотрим на результат работы Add-Ina:
Нажимаем на пункт меню «Тест» – «Информация по проекту»
Платформа EPLAN предоставляет большой базовый функционал. Однако иногда требуются действия, не входящие в него. В простейших случаях можно создавать и подключать скрипты (сценарии), но если требуется глубокий доступ к данным, необходимо воспользоваться API, создавать и использовать Add-Inы.
Полезные ссылки
1. EPLAN в России
2. Форум АСУ ТП