Embora o sistema de Scripting do Altium Designer disponibilize os meios para criar tarefas automatizadas sofisticadas no Altium Designer, os scripts resultantes também precisam de estar facilmente acessíveis durante o processo de design. Por exemplo, um script criado para executar um conjunto complexo de operações durante a edição de uma PCB deve estar prontamente disponível no próprio PCB Editor, onde possa ser executado com um ou dois cliques do rato.
O Altium Designer responde a esta necessidade ao permitir que um script seja atribuído a um iniciador de processo e, assim, a um comando que pode ser atribuído a um Menu, Barra de Ferramentas e Atalho.
Executar Scripts
Quando aberto no editor de scripts, um script pode ser executado utilizando o comando do editor Run » Run a partir dos menus principais (atalho: F9). O script atual referenciado pelo comando Run » Set Project Startup Procedure será executado.
Se o comando Set Project Startup Procedure não tiver sido definido, surgirá a caixa de diálogo Select Item To Run, pedindo-lhe que escolha qual o script e respetivo procedimento a executar.
Se um script tiver erros, o script será interrompido e pode utilizar vários comandos de depuração para resolver os erros e tentar executá-lo novamente.
O comando Run exige que o projeto de script esteja aberto no Altium Designer, o que não é uma abordagem prática para aceder a um script necessário durante o processo de design da PCB, por exemplo. Em alternativa, a caixa de diálogo Select Item To Run (File » Run Script) permite-lhe navegar até um script no seu disco rígido local ou num Workspace ligado ou selecionar um script que esteja aberto no painel Projects e depois executar o processo pretendido. O script permanece carregado durante a sessão atual.
Executar um script utilizando o iniciador de processo de script através da caixa de diálogo Select Item to Run.
Options and Controls of the Select Item to Run Dialog
- Grid - lista os projetos de script disponíveis (*.PrjScr) e os documentos fonte associados. Selecione o item de script pretendido na lista e depois clique em OK para executar o script.
- Browse - clique para abrir uma lista pendente na qual pode escolher navegar:
- From File - clique para navegar e selecionar o item de script pretendido a partir da caixa de diálogo padrão do Windows Open.
- From Server - clique para navegar e selecionar o item de script pretendido a partir da caixa de diálogo Choose item (uma iteração do painel Explorer).
- Copy script parameters - clique com o botão direito sobre o item de script pretendido para capturar os parâmetros corretos. Isto copiará o caminho completo, o nome do processo e o procedimento para a área de transferência.
Se existirem erros no script, depois de clicar em OK na caixa de diálogo Select Item To Run, será aberta uma caixa de diálogo de erro a alertá-lo para o facto de existir um erro. A caixa de diálogo fornecerá informação sobre o erro e o documento fonte do script será aberto com a linha problemática do script destacada. Feche esta caixa de diálogo clicando no botão OK e interrompa o sistema de scripting selecionando o comando Run » Stop nos menus principais (atalho: Ctrl+F3).
A caixa de diálogo de erro apenas assinalará o primeiro erro de scripting encontrado. Podem existir mais, que serão encontrados em tentativas subsequentes de executar o script.
Um método mais adequado para aceder a um script frequentemente utilizado é instalar o projeto como um Global Project a partir da página Scripting System – Global Projects da caixa de diálogo Preferences. Neste caso, o projeto é carregado automaticamente quando o Altium Designer inicia e pode ser executado a qualquer momento através do comando File » Run Script.

A forma ideal de aceder à funcionalidade de um script, no entanto, é integrá-la na GUI do Altium Designer como um comando de menu ou de barra de ferramentas. Normalmente, este é um processo em duas etapas: implementar um script como um Comando (com atalho opcional) e depois atribuir o Comando a um Menu (estático ou de contexto) ou a uma Barra de Ferramentas.
Script como Comando
Um script pode ser implementado como um comando da aplicação recorrendo aos processos de servidor integrados do Altium Designer ou, mais especificamente, ao processo ScriptingSystem:RunScript.
Um comando representa uma ação executada e é suportado por uma cadeia de processo através de um iniciador de processo empacotado. No caso do processo ScriptingSystem:RunScript, inclui parâmetros para apontar para um ficheiro específico de projeto de script, um ficheiro de script constituinte (*.pas) e um processo dentro desse script. Quando devidamente organizados, estes elementos constituem uma cadeia de comando.
A vantagem desta abordagem é que executar o script como um processo evita a necessidade de abrir diretamente o script ou tê-lo carregado como Global Project. A segunda vantagem, e a mais significativa, de utilizar o método de processo para executar um script é que este pode ser implementado como um comando acessível do Altium Designer. Isto é feito através da personalização do sistema de menus do Altium Designer, onde um script pode ser atribuído a um comando para um servidor nomeado – isto é, uma subaplicação como o sistema de ficheiros ou um editor de documentos de design.
Criar um Comando
Para atribuir o script HelloWorld como comando para o editor de PCB, por exemplo, abra primeiro um documento PCB (e, por conseguinte, o editor) e selecione View » Tools » Customize no menu principal para abrir a caixa de diálogo Customizing PCB Editor. A caixa de diálogo também pode ser acedida clicando com o botão direito numa barra de menus ou barra de ferramentas e escolhendo Customize no menu pendente, ou fazendo duplo clique numa área em branco (afastada de quaisquer comandos) de uma barra de menus ou barra de ferramentas.

Para criar um novo comando, clique no botão New da caixa de diálogo para abrir a caixa de diálogo Edit Command, onde podem ser incluídos os detalhes do processo do servidor e do caminho do script – certifique-se de que a categoria [Scripts] não está selecionada ao criar um comando a partir de um script.

As entradas Action da caixa de diálogo têm a forma:
Process: ScriptingSystem:RunScript
Parameters: ProjectName|ProcName>Process
Dependendo do caminho de origem para o script, a cadeia Parameters seria semelhante a:
ProjectName=C:\Users\Public\Documents\Altium\Delphiscript Scripts\General\HelloWorld.PRJSCR|ProcName=HelloWorld.pas>HelloWorld
Para um projeto de script alojado num Workspace, o caminho e, por conseguinte, a entrada de parâmetros do comando, têm de apontar para a localização correta do Workspace – que se baseia na referência GUID do Script do Workspace. Assim, esta ligação de referência tem de ser obtida before tentar criar a nova entrada de comando de script. Para capturar os parâmetros corretos de um script instalado a partir do Workspace, abra a caixa de diálogo Select Item To Run (File » Run Script), clique com o botão direito no procedimento pretendido no script e escolha o comando Copy script parameters no menu de contexto. Isto copiará o caminho completo, o nome do processo e o procedimento para a área de transferência.

Selecione o processo/procedimento necessário no projeto de script do Workspace e depois copie os parâmetros do script.
A caixa de diálogo Edit Command também disponibiliza campos de introdução para uma legenda do comando, descrição, atalho e imagem bitmap associada (BMP/GIF/PNG; 18 x 18 píxeis). Estas definições são guardadas com o comando e aplicam-se a todas as instâncias em que este é inserido em menus, barras de ferramentas e menus de contexto – conforme descrito na secção Assigning Menu Commands abaixo.
Os parâmetros necessários podem ser copiados a partir da entrada real do script sob a categoria [Scripts] na caixa de diálogo Customize PCB Editor, se o script estiver atualmente carregado. Para carregar temporariamente o script, navegue até ele e abra-o através do comando File » Run Script. Depois de copiados, certifique-se de que a entrada Categories já não está definida para [Scripts] antes de criar o comando com o botão New .
►
Ver imagem de exemplo
Com os detalhes preenchidos e a caixa de diálogo de edição fechada (
), o script HelloWorld fica disponível como um comando Custom (em [Custom]) para o PCB Editor.

Note que os comandos são implementados com base no servidor, pelo que um comando Custom que tenha sido criado para o PCB Editor (como acima) não estará disponível para outras funções, como o Schematic Editor ou o Scripting System.
Executar um Script utilizando o Processo RunScriptFile
Um script unit DelphiScript do Altium Designer (com uma extensão *.pas) pode ser executado utilizando o processo RunScriptFile. Note que apenas podem ser utilizados scripts unit DelphiScript – não scripts que tenham formulários. Neste caso, as entradas Action da caixa de diálogo têm a forma:
Process: ScriptingSystem:RunScriptFile
Parameters: FileName|ProcName
Dependendo do caminho de origem para o ficheiro de script, a cadeia Parameters seria semelhante a:
FileName=C:\Users\Public\Documents\Altium\Delphiscript Scripts\Processes\ShowNetList.pas|ProcName=RunNetList
Executar um Script utilizando o Processo RunScriptText
Este processo pode ser utilizado para executar uma série de comandos dentro do bloco Begin End;. Neste caso, as entradas Action da caixa de diálogo têm a forma:
Process: ScriptingSystem:RunScriptText
Parameters: Text
Por exemplo, uma aplicação externa como o Microsoft Notepad pode ser iniciada a partir do Altium Designer através de controlo por software. Neste caso, as entradas do processo de comando e dos parâmetros seriam:
Process: ScriptingSystem:RunScriptText
Parameters: Text=Begin RunApplication('notepad.exe'); End;
O processo de software neste caso, ScriptingSystem:RunScriptText, está literalmente a executar uma sequência de instruções de script, em vez de abrir e executar um ficheiro de script específico, como descrito acima.

A abordagem alternativa consiste em criar um script com algumas linhas de código equivalentes e depois criar uma entrada de comando ScriptingSystem:RunScript convencional.
Procedure RunNotepad;
Begin
RunApplication('notepad.exe');
End;
Note que, para ambas as abordagens de implementação do comando externo Notepad, é suficiente introduzir apenas 'notepad.exe' como parâmetro para RunApplication, em vez de especificar o caminho completo e o nome do ficheiro da aplicação. As aplicações Windows, como a Calculadora e o Notepad, já têm os seus caminhos especificados pelo sistema operativo.
Para iniciar a partir do Altium Designer uma aplicação que não tenha um caminho Windows inerente, é necessário especificar o caminho completo e o nome do ficheiro da aplicação (entre aspas simples, para acomodar quaisquer espaços em branco no caminho). Assim, para iniciar uma segunda cópia do Altium Designer, por exemplo, o processo RunApplication e os parâmetros seriam:
RunApplication('C:\Program Files\Altium\xx\X2.EXE') – onde xx representa o nome da pasta da versão do Altium Designer.
Os comandos podem ser editados, duplicados e removidos diretamente a partir da caixa de diálogo de personalização (neste caso, a caixa de diálogo Customizing PCB Editor) utilizando os botões na parte inferior da caixa de diálogo.
Atribuição de Comandos de Menu
Com um script implementado como um comando de servidor personalizado através da função de Personalização do Altium Designer (View » Toolbars » Customize), conforme detalhado acima, este pode ser atribuído à GUI do servidor através de um simples processo de arrastar e largar.
► Ver também Personalizar o Espaço de Design
Barras de Ferramentas
Para atribuir um comando personalizado ao menu principal do editor PCB ou ao menu da Barra de Ferramentas, por exemplo, abra a caixa de diálogo Customizing PCB Editor, localize o comando personalizado e arraste-o para a localização pretendida no menu. Tenha em atenção que é necessário que um documento PCB esteja aberto para disponibilizar o acesso aos menus do editor PCB. Com a caixa de diálogo de personalização fechada, o novo comando de menu pode ser acedido a qualquer momento no editor PCB.

Um comando personalizado pode ser arrastado para a localização pretendida no menu.
Também é possível adicionar um comando utilizando a opção
Insert Link option nas opções do menu de clique com o botão direito.
Uma vez que, neste exemplo, o novo comando personalizado foi atribuído à Barra Ativa do PCB, pode ser visto na categoria de comandos PCB Active Bar na caixa de diálogo Customizing PCB Editor.

Quando atribuído a um menu, o comando de script personalizado aparecerá na categoria desse menu na caixa de diálogo de personalização.
Para remover um comando de um menu, abra a caixa de diálogo de personalização e depois arraste o ícone do comando do menu de volta para a caixa de diálogo.

Remover um comando atribuído à Barra de Ferramentas.
Quando estiver no modo de personalização, os comandos atribuídos a um menu também podem ser editados e eliminados clicando com o botão direito do rato no próprio comando do menu.
Menus
Um comando personalizado pode ser atribuído a um menu, em qualquer nível do menu, utilizando o mesmo processo de arrastar e largar descrito acima.
Quando o servidor está no modo de personalização, os menus mantêm-se responsivos ao ponteiro do rato e expandem-se e recolhem-se em conformidade. Para colocar um comando no menu Reports do editor PCB, por exemplo, arraste o comando para o menu e ao longo da lista, onde poderá ser largado numa posição adequada. Com a caixa de diálogo de personalização fechada, o novo comando de menu – neste caso, Notepad – pode ser acedido a partir do menu Reports .

Os menus ativos durante a personalização permitem arrastar um comando personalizado para um menu pendente.
Menu Pop-up
Um comando pode ser atribuído a um menu pop-up de clique com o botão direito da mesma forma que descrita acima, sem qualquer restrição imposta pela profundidade do submenu.
Neste exemplo, o comando é arrastado através do caminho de menu de PCB Popups » Right Mouse Click Free Space e largado no submenu, conforme mostrado abaixo. Depois de atribuído, o comando de script personalizado Notepad fica disponível no editor PCB ao clicar com o botão direito numa área vazia.

Um comando personalizado atribuído a um submenu de clique com o botão direito
Atribuição Direta de Script
Como alternativa à criação de um comando personalizado reutilizável a partir de um script e à sua posterior atribuição a um menu, um script pode ser aplicado diretamente a um menu como uma abordagem rápida e pontual.
Isto evita a etapa de criação de um comando personalizado, atribuindo diretamente um script carregado a um menu. Sem a existência de um comando personalizado correspondente, que pode ser aplicado como um comando totalmente configurado a vários menus, este método direto é uma solução única para acesso ao script a partir do menu. Assim, as várias definições do comando, como o seu Título, Descrição, Imagem e Atalhos, aplicam-se apenas à instância atribuída.
Para atribuir um script diretamente a um menu, carregue o projeto de script, abra a caixa de diálogo Customizing do servidor (View » Toolbars » Customize), selecione [Scripts] na lista Categories, localize o script pretendido e arraste-o para uma posição no menu. Clique em
para fechar a caixa de diálogo Edit Command.

Também é possível atribuir diretamente a um menu um script, em vez de um comando.
Tal como acontece com todas as colocações em menu, se o novo item de menu ainda estiver com as definições predefinidas (nome da legenda, atalho, etc.), estas podem ser corrigidas clicando com o botão direito do rato na entrada do menu e selecionando Edit no submenu. Isto abre a caixa de diálogo Edit Command, onde podem ser introduzidas definições adequadas.

No modo de Personalização, clique com o botão direito num menu para aceder aos respetivos parâmetros.
Depois de configurado, o novo menu ficará disponível em tempo de desenho, sem necessidade adicional de carregar explicitamente o projeto de script ou de o instalar como Global Project.

Tenha em atenção que esta abordagem para aplicar um script a um menu cria automaticamente o comando necessário. Não se trata de um comando personalizado, totalmente configurado e reutilizável, conforme descrito nos métodos acima, mas sim de um comando criado para essa entrada direta de menu.
Isto pode ser observado na própria entrada da categoria de menu na caixa de diálogo Customizing . No exemplo acima, o comando configurado individualmente pode ser visto na categoria Reports na caixa de diálogo Customizing PCB Editor.

Ao aplicar diretamente um script a um menu, o comando correspondente é criado apenas para essa entrada de menu.