Современные системы проектирования РЭА позволяют решать широкий круг задач различным категориям пользователей. Однако периодически возникает необходимость в реализации дополнительного функционала, не предусмотренного разработчиками системы. Поэтому разработчики сложных систем, включая Altium Designer, разрабатывают программные API для расширения функциональных возможностей. В Altium Designer такие модули называются Extentions.
Существует два способа создания программных модулей для Altium Designer:
- Altium SDK (Software Developer Kit) – модуль поставляется в виде dll, для создания используются языки программирования C++, C#, Delphi;
- Altium Designer API (Application Programming Interface) – поставляется в виде исходного кода на языках программирования PascalScrtipt, JScript, VBScript, Query Language.
Два представленных метода кардинально отличаются подходом к построению прикладных программ, набором доступного функционала и принципом исполнения.
Использование Altium SDK
Для использования SDK необходимо иметь доступ к программе разработчиков Altium DXP Developer. Доступ открывается после запроса через поставщика решений Altium. После регистрации в данной программе для разработчиков в разделе Extensions & Updates появится дополнительное расширение Altium Developer. Для установки расширения необходимо подключиться к Личному кабинету.
После установки расширения в меню File появится дополнительный раздел (см. рис. 1), с помощью которого можно создать собственный Extension и зарегистрировать его.
Для написания программы с помощью SDK необходимо использовать любое доступное средство для разработки под конкретный язык, например Borland Delphi – при использовании языка Delphi или Visual Studio – для языка C#. В каждом случае при создании собственной программы необходимо использовать SDK под конкретный язык.
На данный момент существует пять версий SDK:
- SDK 1.0 для Altium Designer 14.2 и выше;
- SDK 2.0 для Altium Designer 15 и выше;
- SDK 3.0 для Altium Designer 16 и выше;
- SDK 3.1 для Altium Designer 17 и выше;
- SDK 4.0 для Altium Designer 18 и выше.
Используя SDK и методы конкретной версии, необходимо учитывать, что разработанная программа может не работать на старых версиях Altium Designer при использовании того функционала, который отсутствует в конкретной версии Altium Designer.
Используя меню Extension, необходимо подключить созданный проект на любом доступном языке, задать имя будущего плагина, назначить иконку и другие параметры. Подробнее о формировании Extension можно ознакомиться на сайте Altium [1].
Итогом создания прикладной программы с помощью SDK является библиотека dll, которая встраивается в Altium Designer как обычный Extension и будет загружаться в систему при каждом запуске. Запуск программы будет зависеть от реализации проекта: это может быть кнопка в панели инструментов, отдельная панель или масштабный модуль, затрагивающий множество функциональных возможностей Altium Designer.
Использование SDK – метод, требующий хороших навыков программирования и умения разбираться в сторонних библиотеках для извлечения и использования нужных методов для реализации необходимых прикладных задач.
Менее трудоёмким процессом создания прикладных программ является использование API.
Использование Altium Designer API
API – интерфейс для создания скриптов средствами самого Altium Designer. В отличии от SDK при этом не требуется сторонних компиляторов для формирования dllбиблиотеки, не требуется создания Extension и подключения его. Для запуска и исполнения скрипта необходимо в меню File \ Run Script указать нужный проект с созданной программой и указать исполняемый файл с кодом программы.
Для создания прикладной программы (скрипта) с помощью API в Altium Designer необходимо создать проект PrjScr через меню File. Затем в данный проект необходимо вставить Script Form, и после этого можно приступать к созданию программы. Используя API, сам код и интерфейс скрипта разрабатываются средствами встроенного интерфейса (см. рис. 2). В нижней части рабочей области есть кнопки переключения между визуальной частью скрипта (Form) и исполняемым кодом (Code).
При использовании API имеется описание всех необходимых интерфейсов Altium в документации на сайте [2], там же приведены примеры использования.
Весь представленный программный интерфейс разделён на несколько разделов:
- System API (работа с файлами);
- Integrated Library API (работа с библиотеками);
- FPGA API (работа с FPGAмоделями);
- PCB API (работа с PCBредактором);
- Schematic API (работа со схемотехническим редактором);
- Workspace Manager API (работа с проектами).
В каждом из разделов есть свой набор интерфейсов со своими методами.
Для создания графического интерфейса скрипта используется панель Tool Palette, в которой есть стандартные визуальные WindowsFormsпримитивы для отображения в окне программы. Все объекты, вставленные в форму в редакторе кода, можно обрабатывать и по различным действиям на объекты производить определённый набор необходимых действий. После завершения написания скрипта команду его запуска можно внедрить во вновь созданную строчку меню или кнопку в панели инструментов, для этого в меню Edit Command редактирования кнопки необходимо вставить:
Process : ScriptingSystem:RunScript
Parameters : ProjectName=[имя проекта]|ProcName=[файл кода].pas>[имя метода]
Примеры реализации скрипта
В качестве примера приводится код скрипта на языке Delphi с использованием API и на языке С# – с использованием SDK. Программа выполняет поиск переходных отверстий на плате, координаты которых не кратны текущей координатной сетке, и накладывает на такие отверстия маску, тем самым скрывая все остальные примитивы плат. Результат выполнения скрипта представлен на рисунке 3.
Следующий пример создан на языке Delphi. Его можно повторить, используя API: создать файл viagrid.pas, внеся в него следующий код, и вызвать через меню File – Run Script: (см. Листинг 1).
Пример реализации этой же программы на языке С# с использованием SDK приведён в Листинге 2.
Оба приведённых примера доступны для общего пользования в публичном репозитории по адресу https://github.com/glavkondev.
Заключение
Открытые средства для разработки прикладных программ для Altium Desinger позволяют решать любые, возникающие у пользователей подзадачи. В руках программистов данные средства могут значительно увеличить эффективность работы с системой проектирования для рядовых пользователей. Скрипты и плагины могут быть различной сложности: от обычного вывода справочной информации до сложных интеграционных систем, позволяющих обеспечить связь Altium Designer с другими внедрёнными на предприятии системами.
За всю историю развития Altium Designer инженерамиэнтузиастами было написано множество прикладных программ и скриптов, решающих конкретные узконаправленные задачи. Множество из них находится в открытом доступе [3], их можно установить, модифицировать и использовать для решения любых возникающих задач.
Литература
- Документация Altium DXP Developer. URL: https://www.altium.com/ru/documentation/altiumdxpdeveloper.
- Документация по Altium Designer API. URL: https://techdocs.altium.com/display/SCRT/Altium+Designer+API+Reference.
- Сборник скриптов для Altium Designer. URL: https://github.com/AltiumDesigneraddons/scriptslibraries.