Расширения Altium Designer
Altium Designer's extension model lets you add functionality that runs inside the design environment itself – not alongside it.
Расширения — это скомпилированные DLL, созданные с помощью SDK Altium Designer на C# или C++. Они подключаются к клиент-серверной архитектуре Altium Designer как полноценные модули и, с точки зрения пользователя, неотличимы от встроенной функциональности. Расширение может добавлять пункты меню, панели, панели инструментов и команды; получать доступ ко всей объектной модели проекта и изменять её, включая данные PCB, Schematic, BOM и проекта; а также формировать выходные данные в рамках стандартного процесса Outjob.
Это модель, отличная от скриптов. Скрипты интерпретируются во время выполнения и ограничены подмножеством scripting API. Расширения компилируются, имеют полный доступ к SDK и могут реализовывать собственные редакторы документов и генераторы выходных данных. Для всего, что должно надёжно работать в масштабе, глубоко интегрироваться со средой проектирования или распространяться среди нескольких инженеров как поддерживаемый инструмент, правильным выбором будут расширения.
Для чего на самом деле используются расширения
-
Custom panels and UI within Altium Designer — наиболее распространённый сценарий использования. Расширение добавляет закрепляемую панель, которая отображает информацию из внешней системы — статус компонентов из ERP, утверждённые данные производителя из внутренней базы данных, актуальные данные по цепочке поставок — прямо внутри среды проектирования. Инженеры видят всё необходимое без переключения между инструментами.
-
Proprietary output generators — система Outjob в Altium Designer поддерживает пользовательские генераторы выходных данных, которые подключаются как полноценные типы вывода. Расширение может генерировать выходные данные в форматах, которые изначально не поддерживаются, — пользовательские форматы netlist, проприетарные структуры производственных данных, внутренние шаблоны документации — и встраивать их в существующий процесс формирования выходных данных и выпуска.
-
Design rule extensions — расширения могут добавлять пользовательские проверки DRC, выполняемые внутри встроенной системы DRC редактора PCB. Такая проверка отображается в той же панели, создаёт те же маркеры нарушений и выполняет перекрёстную навигацию к тем же объектам, что и встроенный DRC. Инженерам не нужно знать, что проверка является пользовательской.
-
Automation beyond scripting — расширения могут автоматизировать сложные последовательности проектных операций, которые неудобно реализовывать в скриптах, — обход больших проектов, пакетные операции над несколькими файлами, интеграцию с внешними API в процессе проектирования. Поскольку расширения компилируются, они работают на уровне производительности самого приложения.
Расширения и скрипты: когда что использовать
Используйте скрипты для быстрой итерации, разовой автоматизации и задач, которые нужно часто изменять. Скрипты писать быстрее, и их проще менять.
Используйте расширения, когда вам нужен полный доступ к SDK, надёжность промышленного уровня, компоненты UI, пользовательские редакторы документов или генераторы выходных данных, либо распространение в качестве управляемого инструмента внутри команды. Расширения требуют этапа сборки и среды разработки, но эти вложения окупаются для всего, что становится стандартной частью рабочего процесса вашей команды.
Распространение и сопровождение
Расширения распространяются и управляются через Altium Workspace. После публикации инженеры устанавливают расширения из своего Workspace без необходимости вручную передавать файлы или выполнять локальные шаги установки. Обновления управляются через тот же механизм. Это делает расширения практичными как командные инструменты, а не только как индивидуальные утилиты, поскольку проблема распространения и обновления уже решена.
Когда расширения — не лучший выбор
Если вам нужна простая автоматизация или одноразовое преобразование данных, скрипты позволят решить задачу быстрее и с меньшими накладными расходами. Расширения имеют смысл, когда функциональность должна быть надёжной, поддерживаемой и доступной нескольким инженерам как поддерживаемая часть рабочего процесса. Если вы не уверены, с чего начать, начните со скриптов — расширения станут естественным следующим шагом, если скрипт перерастёт свои ограничения.