Выполнение сценариев
Хотя система скриптинга Altium Designer предоставляет средства для создания сложных автоматизированных задач в Altium Designer, получившиеся скрипты также должны быть легко доступны в процессе проектирования. Например, скрипт, созданный для выполнения сложного набора операций при редактировании PCB, должен быть доступен прямо в PCB Editor, чтобы его можно было запустить одним‑двумя щелчками мыши.
Altium Designer учитывает эту потребность, позволяя назначить скрипт на launcher процесса, а значит — на команду, которую можно привязать к меню, панели инструментов и сочетанию клавиш.
Выполнение скриптов
Если скрипт открыт в редакторе скриптов, его можно выполнить с помощью команды редактора Run » Run из главного меню (сочетание: F9). Будет запущен текущий скрипт, на который ссылается команда Run » Set Project Startup Procedure .
Команда Run требует, чтобы проект скрипта был открыт в Altium Designer, что, например, неудобно для доступа к скрипту, нужному во время проектирования PCB. В качестве альтернативы диалог Select Item To Run (File » Run Script) позволяет перейти к скрипту на локальном диске или в подключенном Workspace либо выбрать скрипт, открытый в панели Projects, а затем запустить нужный процесс. Скрипт остаётся загруженным на текущую сессию.
Выполнение скрипта с помощью launcher процесса скрипта через диалог Select Item to Run.
Options and Controls of the Select Item to Run Dialog
- Grid - выводит список доступных проектов скриптов (*.PrjScr) и связанных исходных документов. Выберите нужный элемент скрипта в списке, затем нажмите OK для запуска скрипта.
- Browse - нажмите, чтобы открыть выпадающий список, в котором можно выбрать способ просмотра:
- From File - нажмите, чтобы найти и выбрать нужный элемент скрипта в стандартном диалоге Windows Open.
- From Server - нажмите, чтобы найти и выбрать нужный элемент скрипта в диалоге Choose item (вариант панели Explorer panel).
- Copy script parameters - щёлкните правой кнопкой по нужному элементу скрипта, чтобы получить корректные параметры. Это скопирует в буфер обмена полный путь, имя процесса и процедуру.
Более подходящий способ доступа к часто используемому скрипту — установить проект как Global Project на странице Scripting System – Global Projects page диалога Preferences. В этом случае проект автоматически загружается при запуске Altium Designer и может быть выполнен в любое время через команду File » Run Script.

Однако идеальный способ доступа к функциональности скрипта — интегрировать её в GUI Altium Designer в виде команды меню или панели инструментов. Обычно это двухэтапный процесс: реализовать скрипт как Command (с необязательным shortcut), затем назначить Command в меню (статическое или всплывающее) либо на панель инструментов.
Скрипт как команда
Скрипт можно реализовать как команду приложения, используя встроенные серверные процессы Altium Designer, а точнее — процесс ScriptingSystem:RunScript.
Команда представляет выполняемое действие и поддерживается строкой процесса через упакованный launcher процесса. В случае процесса ScriptingSystem:RunScript он включает параметры, указывающие на конкретный файл проекта скрипта, входящий в него файл скрипта (*.pas) и процесс внутри этого скрипта. При правильной компоновке эти элементы образуют строку команды.
Преимущество этого подхода в том, что запуск скрипта как процесса избавляет от необходимости напрямую открывать скрипт или держать его загруженным как Global Project. Второе и более существенное преимущество метода запуска скрипта через процесс — его можно реализовать как доступную команду Altium Designer. Это делается через настройку системы меню Altium Designer, где скрипт можно назначить на команду для выбранного сервера — то есть подприложения, например файловой системы или редактора проектного документа.
Создание команды
Чтобы назначить скрипт HelloWorld как команду для PCB editor, например, сначала откройте документ PCB (и тем самым редактор) и выберите View » Tools » Customize в главном меню, чтобы открыть диалог Customizing PCB Editor dialog. К этому диалогу также можно перейти, щёлкнув правой кнопкой по строке меню или панели инструментов и выбрав Customize в выпадающем меню, либо двойным щелчком в пустой области (вдали от любых команд) строки меню или панели инструментов.

Чтобы создать новую команду, нажмите кнопку New в диалоге, чтобы открыть диалог Edit Command, где можно указать серверный процесс и детали пути к скрипту — убедитесь, что категория [Scripts] не выбрана при создании команды из скрипта.

Поля Action в диалоге имеют вид:
Process: ScriptingSystem:RunScript
Parameters: ProjectName|ProcName>Process
В зависимости от исходного пути к скрипту строка Parameters будет похожа на:
ProjectName=C:\Users\Public\Documents\Altium\Delphiscript Scripts\General\HelloWorld.PRJSCR|ProcName=HelloWorld.pas>HelloWorld
Диалог Edit Command также предоставляет поля для заголовка команды, описания, сочетания клавиш и связанного растрового изображения (BMP/GIF/PNG; 18 x 18 пикселей). Эти настройки сохраняются вместе с командой и применяются ко всем случаям, когда она вставляется в меню, панели инструментов и всплывающие меню — как описано в разделе Assigning Menu Commands ниже.
После заполнения данных и закрытия диалога редактирования скрипт HelloWorld становится доступен как пользовательская команда (в разделе [Custom]) для PCB Editor.

Выполнение скрипта с использованием процесса RunScriptFile
Скрипт DelphiScript unit из Altium Designer (с расширением *.pas) можно выполнить с помощью процесса RunScriptFile. Обратите внимание: можно использовать только DelphiScript unit‑скрипты — не те скрипты, у которых есть формы. В этом случае поля Action в диалоге имеют вид:
Process: ScriptingSystem:RunScriptFile
Parameters: FileName|ProcName
В зависимости от исходного пути к файлу скрипта строка Parameters будет похожа на:
FileName=C:\Users\Public\Documents\Altium\Delphiscript Scripts\Processes\ShowNetList.pas|ProcName=RunNetList
Выполнение скрипта с использованием процесса RunScriptText
Этот процесс можно использовать для выполнения серии команд внутри блока Begin End;. В этом случае поля Action в диалоге имеют вид:
Process: ScriptingSystem:RunScriptText
Parameters: Text
Например, внешнее приложение, такое как Microsoft Notepad, можно запускать из Altium Designer через программное управление. В этом случае поля процесса команды и параметров будут такими:
Process: ScriptingSystem:RunScriptText
Parameters: Text=Begin RunApplication('notepad.exe'); End;
Процесс ПО в этом случае, ScriptingSystem:RunScriptText, буквально выполняет последовательность операторов скрипта, а не открывает и запускает конкретный файл скрипта, как описано выше.

Альтернативный подход — создать скрипт с несколькими эквивалентными строками кода, а затем создать обычную запись команды ScriptingSystem:RunScript.
Procedure RunNotepad;
Begin
RunApplication('notepad.exe');
End;
Обратите внимание: для обоих подходов реализации внешней команды Notepad достаточно просто ввести 'notepad.exe' в качестве параметра для RunApplication, а не указывать полный путь и имя файла приложения. Пути к таким приложениям Windows, как Calculator и Notepad, уже заданы операционной системой.
Чтобы запустить из Altium Designer приложение, у которого нет встроенного пути Windows, необходимо указать полный путь и имя файла приложения (в одиночных кавычках, чтобы учесть возможные пробелы в пути). Так, чтобы запустить вторую копию Altium Designer, поля процесса RunApplication и параметров будут такими:
RunApplication('C:\Program Files\Altium\xx\X2.EXE') – где xx обозначает имя папки версии Altium Designer.
Назначение команд меню
Если скрипт реализован как пользовательская серверная команда через функцию Customizing в Altium Designer (View » Toolbars » Customize), как описано выше, его можно назначить GUI сервера простым перетаскиванием (drag-and-drop).
► См. также Настройка рабочей области проектирования
Панели инструментов
Чтобы назначить пользовательскую команду, например, в главное меню PCB-редактора или в меню панели инструментов, откройте диалог Customizing PCB Editor, найдите пользовательскую команду и перетащите её в нужное место меню. Обратите внимание: для доступа к меню PCB-редактора должен быть открыт PCB-документ. После закрытия диалога настройки новая команда меню будет доступна в PCB-редакторе в любое время.

Пользовательскую команду можно перетащить в требуемое место меню.
Поскольку в этом примере новая пользовательская команда назначена на PCB Active Bar, её можно увидеть в категории команд PCB Active Bar в диалоге Customizing PCB Editor.

При назначении в меню пользовательская скриптовая команда будет отображаться в диалоге настройки в категории соответствующего меню.
Чтобы удалить команду из меню, откройте диалог настройки, затем перетащите значок команды меню обратно в диалог.

Удаление команды, назначенной на панель инструментов.
Меню
Пользовательскую команду можно назначить в меню на любом уровне вложенности, используя тот же процесс перетаскивания, описанный выше.
Когда сервер находится в режиме настройки, меню остаются активными для указателя мыши и будут соответственно раскрываться и сворачиваться. Чтобы, например, поместить команду в меню PCB-редактора Reports , перетащите команду в меню и далее вниз по списку, где её можно отпустить в подходящей позиции. После закрытия диалога настройки новая команда меню — здесь Notepad — будет доступна из меню Reports .

Активные меню во время настройки позволяют перетащить пользовательскую команду в выпадающее меню.
Всплывающее меню
Команду можно назначить во всплывающее меню по правому клику тем же способом, что описан выше, без ограничений по глубине подменю.
В этом примере команда перетаскивается по пути меню PCB Popups » Right Mouse Click Free Space и помещается в подменю, как показано ниже. После назначения пользовательская скриптовая команда Notepad становится доступной в PCB-редакторе при щелчке правой кнопкой мыши по свободному месту.

Пользовательская команда, назначенная подменю по правому клику
Прямое назначение скрипта
В качестве альтернативы созданию повторно используемой пользовательской команды из скрипта с последующим назначением её в меню, скрипт можно применить к меню напрямую — как быстрый разовый вариант.
При этом пропускается шаг создания пользовательской команды: загруженный скрипт назначается меню напрямую. Без существования соответствующей пользовательской команды, которую можно применять как полностью настроенную команду к нескольким меню, этот прямой метод является единичным решением для доступа к скрипту из меню. Соответственно, различные настройки команды — такие как Caption, Description, Image и Shortcuts — применяются только к назначенному экземпляру.
Чтобы назначить скрипт напрямую в меню, загрузите проект скрипта, откройте диалог сервера Customizing (View » Toolbars » Customize), выберите [Scripts] в списке Categories, найдите нужный скрипт и перетащите его в позицию меню. Нажмите
, чтобы закрыть диалог Edit Command.

Скрипт, а не команда, также может быть назначен напрямую в меню.
Как и для всех размещений в меню, если новый пункт меню всё ещё имеет настройки по умолчанию (имя подписи, сочетание клавиш и т. п.), их можно исправить, щёлкнув правой кнопкой мыши по пункту меню и выбрав Edit в подменю. Это откроет диалог Edit Command, где можно задать подходящие параметры.

В режиме Customizing щёлкните правой кнопкой мыши по меню, чтобы получить доступ к его параметрам.
После настройки новое меню будет доступно во время проектирования без необходимости дополнительно явно загружать проект скрипта или устанавливать его как Global Project.

Обратите внимание: такой способ применения скрипта к меню автоматически создаёт требуемую команду. Это не переназначаемая пользовательская полностью настроенная команда, как в описанных выше методах, а команда, созданная для данного прямого пункта меню.
Это можно увидеть в записи категории соответствующего меню в диалоге Customizing . Для приведённого выше примера индивидуально настроенную команду можно увидеть в категории Reports в диалоге Customizing PCB Editor.

При прямом применении скрипта к меню соответствующая команда создаётся только для этого пункта меню.





