Sebbene il sistema di scripting di Altium Designer fornisca i mezzi per creare attività automatizzate sofisticate per Altium Designer, gli script risultanti devono anche essere facilmente accessibili durante il processo di progettazione. Ad esempio, uno script creato per eseguire un insieme complesso di operazioni durante la modifica di un PCB dovrebbe essere prontamente disponibile direttamente nel PCB Editor, dove può essere eseguito con uno o due clic del mouse.
Altium Designer soddisfa questa esigenza consentendo di assegnare uno script a un process launcher e quindi a un comando che può essere assegnato a un menu, una barra degli strumenti e una scorciatoia.
Esecuzione degli script
Quando viene aperto nell’editor di script, uno script può essere eseguito usando il comando dell’editor Run » Run dai menu principali (scorciatoia: F9). Verrà eseguito lo script corrente a cui fa riferimento il comando Run » Set Project Startup Procedure.
Se il comando Set Project Startup Procedure non è stato impostato, verrà visualizzata la finestra di dialogo Select Item To Run, che richiederà di scegliere quale script e quale procedura eseguire.
Se uno script contiene errori, lo script verrà arrestato e sarà possibile usare vari comandi di debug per risolvere gli errori e provare a eseguirlo di nuovo.
Il comando Run richiede che il progetto di script sia aperto in Altium Designer, il che non rappresenta un approccio pratico per accedere a uno script necessario durante il processo di progettazione PCB, ad esempio. In alternativa, la finestra di dialogo Select Item To Run (File » Run Script) consente di individuare uno script sul disco rigido locale o in un Workspace connesso oppure di selezionare uno script aperto nel pannello Projects e quindi eseguire il processo desiderato. Lo script rimane caricato per la sessione corrente.
Esecuzione di uno script tramite il process launcher dello script usando la finestra di dialogo Select Item to Run.
Options and Controls of the Select Item to Run Dialog
- Grid - elenca i progetti di script disponibili (*.PrjScr) e i documenti sorgente associati. Selezionare l’elemento di script desiderato dall’elenco, quindi fare clic su OK per eseguire lo script.
- Browse - fare clic per aprire un menu a discesa in cui è possibile scegliere di sfogliare:
- From File - fare clic per individuare e selezionare l’elemento di script desiderato dalla finestra di dialogo standard di Windows Open.
- From Server - fare clic per individuare e selezionare l’elemento di script desiderato dalla finestra di dialogo Choose item (una versione del pannello Explorer).
- Copy script parameters - fare clic con il pulsante destro del mouse sull’elemento di script desiderato per acquisire i parametri corretti. Questo copierà negli appunti l’intero percorso, il nome del processo e la procedura.
Se nello script sono presenti errori, dopo aver fatto clic su OK nella finestra di dialogo Select Item To Run si aprirà una finestra di dialogo di errore che segnalerà la presenza di un errore. La finestra di dialogo fornirà informazioni sull’errore, verrà aperto il documento sorgente dello script e la riga di script che causa il problema verrà evidenziata. Chiudere questa finestra di dialogo facendo clic sul pulsante OK e arrestare il sistema di scripting selezionando il comando Run » Stop dai menu principali (scorciatoia: Ctrl+F3).
La finestra di dialogo di errore segnalerà solo il primo errore di scripting rilevato. Potrebbero essercene altri, che verranno individuati nei successivi tentativi di esecuzione dello script.
Un metodo più adatto per accedere a uno script usato frequentemente consiste nell’installare il progetto come Global Project dalla pagina Scripting System – Global Projects della finestra di dialogo Preferences. In questo caso, il progetto viene caricato automaticamente all’avvio di Altium Designer e può essere eseguito in qualsiasi momento tramite il comando File » Run Script.

Il modo ideale per accedere alla funzionalità di uno script, tuttavia, è integrarla nella GUI di Altium Designer come comando di menu o della barra degli strumenti. Normalmente si tratta di un processo in due fasi: implementare uno script come comando (con scorciatoia opzionale), quindi assegnare il comando a un menu (statico o a comparsa) o a una barra degli strumenti.
Script come comando
Uno script può essere implementato come comando dell’applicazione sfruttando i processi server integrati di Altium Designer o, più precisamente, il processo ScriptingSystem:RunScript.
Un comando rappresenta un’azione eseguita ed è supportato da una stringa di processo tramite un process launcher confezionato. Nel caso del processo ScriptingSystem:RunScript, include parametri per puntare a un file di progetto script specifico, a un file script costituente (*.pas) e a un processo all’interno di quello script. Se opportunamente organizzati, questi elementi costituiscono una stringa di comando.
Il vantaggio di questo approccio è che l’esecuzione dello script come processo evita la necessità di aprire direttamente lo script o di averlo caricato come Global Project. Il secondo vantaggio, più significativo, dell’uso del metodo del processo per eseguire uno script è che può essere implementato come comando accessibile di Altium Designer. Questo avviene personalizzando il sistema di menu di Altium Designer, dove uno script può essere assegnato a un comando per un server designato, cioè una sottoapplicazione come il file system o un editor di documenti di progetto.
Creare un comando
Per assegnare, ad esempio, lo script HelloWorld come comando per il PCB editor, aprire prima un documento PCB (e quindi l’editor) e selezionare View » Tools » Customize dal menu principale per aprire la finestra di dialogo Customizing PCB Editor. È possibile accedere alla finestra di dialogo anche facendo clic con il pulsante destro del mouse su una barra dei menu o una barra degli strumenti e scegliendo Customize dal menu a discesa, oppure facendo doppio clic in un’area vuota (lontano da qualsiasi comando) di una barra dei menu o di una barra degli strumenti.

Per creare un nuovo comando, fare clic sul pulsante New della finestra di dialogo per aprire la finestra di dialogo Edit Command, in cui è possibile includere il processo server e i dettagli del percorso dello script: assicurarsi che la categoria [Scripts] non sia selezionata quando si crea un comando da uno script.

Le voci Action della finestra di dialogo assumono la forma seguente:
Process: ScriptingSystem:RunScript
Parameters: ProjectName|ProcName>Process
A seconda del percorso sorgente dello script, la stringa Parameters sarà simile a:
ProjectName=C:\Users\Public\Documents\Altium\Delphiscript Scripts\General\HelloWorld.PRJSCR|ProcName=HelloWorld.pas>HelloWorld
Per un progetto di script ospitato in un Workspace, il percorso e quindi la voce dei parametri del comando devono puntare alla posizione corretta del Workspace, che si basa sul riferimento GUID dello script del Workspace. Pertanto, questo collegamento di riferimento deve essere ottenuto before di tentare di creare la nuova voce di comando dello script. Per acquisire i parametri corretti per uno script installato dal Workspace, aprire la finestra di dialogo Select Item To Run (File » Run Script), fare clic con il pulsante destro del mouse sulla procedura desiderata nello script e scegliere il comando Copy script parameters dal menu contestuale. Questo copierà negli appunti l’intero percorso, il nome del processo e la procedura.

Selezionare il processo/procedura richiesto nel progetto script del Workspace, quindi copiare i parametri dello script.
La finestra di dialogo Edit Command fornisce anche campi di immissione per la didascalia del comando, la descrizione, la scorciatoia e l’immagine bitmap associata (BMP/GIF/PNG; 18 x 18 pixel). Queste impostazioni vengono salvate con il comando e si applicano a tutte le istanze in cui viene inserito in menu, barre degli strumenti e menu a comparsa, come descritto nella sezione Assegnazione dei comandi di menu qui sotto.
I parametri richiesti possono essere copiati dalla voce effettiva dello script nella categoria [Scripts] della finestra di dialogo Customize PCB Editor se lo script è attualmente caricato. Per caricare temporaneamente lo script, individuarlo e aprirlo tramite il comando File » Run Script. Una volta copiati, assicurarsi che la voce Categories non sia più impostata su [Scripts] prima di creare il comando con il pulsante New .
►
Vedi immagine di esempio
Una volta completati i dettagli e chiusa la finestra di dialogo di modifica (
), lo script HelloWorld diventa disponibile come comando personalizzato (in [Custom]) per il PCB Editor.

Si noti che i comandi sono implementati su base server, quindi un comando personalizzato creato per il PCB Editor (come sopra) non sarà disponibile per altre funzioni, come lo Schematic Editor o il Scripting System.
Esecuzione di uno script usando il processo RunScriptFile
Uno script unit DelphiScript di Altium Designer (con estensione *.pas) può essere eseguito usando il processo RunScriptFile. Si noti che possono essere usati solo script unit DelphiScript, non gli script che hanno form. In questo caso, le voci Action della finestra di dialogo assumono la forma seguente:
Process: ScriptingSystem:RunScriptFile
Parameters: FileName|ProcName
A seconda del percorso sorgente del file script, la stringa Parameters sarà simile a:
FileName=C:\Users\Public\Documents\Altium\Delphiscript Scripts\Processes\ShowNetList.pas|ProcName=RunNetList
Esecuzione di uno script usando il processo RunScriptText
Questo processo può essere usato per eseguire una serie di comandi all’interno del blocco Begin End;. In questo caso, le voci Action della finestra di dialogo assumono la forma seguente:
Process: ScriptingSystem:RunScriptText
Parameters: Text
Ad esempio, un’applicazione esterna come Microsoft Notepad può essere avviata da Altium Designer tramite controllo software. In questo caso, le voci del processo di comando e dei parametri saranno:
Process: ScriptingSystem:RunScriptText
Parameters: Text=Begin RunApplication('notepad.exe'); End;
Il processo software in questo caso, ScriptingSystem:RunScriptText, esegue letteralmente una sequenza di istruzioni di script, anziché aprire ed eseguire un file script specifico come descritto sopra.

L’approccio alternativo consiste nel creare uno script con alcune righe di codice equivalenti, quindi creare una voce di comando convenzionale ScriptingSystem:RunScript.
Procedure RunNotepad;
Begin
RunApplication('notepad.exe');
End;
Si noti che per entrambi gli approcci di implementazione del comando esterno Notepad è sufficiente inserire semplicemente 'notepad.exe' come parametro per RunApplication, anziché specificare il percorso completo e il nome file dell’applicazione. Le applicazioni Windows come Calcolatrice e Notepad hanno già i loro percorsi specificati dal sistema operativo.
Per avviare da Altium Designer un’applicazione che non dispone di un percorso Windows intrinseco, è necessario specificare il percorso completo e il nome file dell’applicazione (tra apici singoli, per gestire eventuali spazi nel percorso). Quindi, per avviare ad esempio una seconda copia di Altium Designer, il processo RunApplication e i parametri saranno:
RunApplication('C:\Program Files\Altium\xx\X2.EXE') – dove xx rappresenta il nome della cartella della versione di Altium Designer.
I comandi possono essere modificati, duplicati e rimossi direttamente dalla finestra di personalizzazione (in questo caso la finestra Customizing PCB Editor) utilizzando i pulsanti nella parte inferiore della finestra.
Assegnazione dei comandi di menu
Con uno script implementato come comando server personalizzato tramite la funzione di personalizzazione di Altium Designer (View » Toolbars » Customize), come descritto sopra, è possibile assegnarlo alla GUI del server con una semplice operazione di trascinamento.
► Vedere anche Personalizzazione dello spazio di progettazione
Barre degli strumenti
Per assegnare un comando personalizzato al menu principale dell'editor PCB o al menu della barra degli strumenti, ad esempio, aprire la finestra Customizing PCB Editor, individuare il comando personalizzato e trascinarlo nella posizione desiderata del menu. Si noti che deve essere aperto un documento PCB per poter accedere ai menu dell'editor PCB. Con la finestra di personalizzazione chiusa, il nuovo comando di menu può essere richiamato in qualsiasi momento nell'editor PCB.

Un comando personalizzato può essere trascinato nella posizione di menu richiesta.
Un comando può anche essere aggiunto utilizzando l'opzione
Insert Link option dalle opzioni del menu accessibili con il clic destro.
Poiché in questo esempio il nuovo comando personalizzato è stato assegnato alla PCB Active Bar, può essere visualizzato nella categoria di comando PCB Active Bar nella finestra Customizing PCB Editor.

Quando viene assegnato a un menu, il comando script personalizzato apparirà nella categoria di quel menu nella finestra di personalizzazione.
Per rimuovere un comando da un menu, aprire la finestra di personalizzazione quindi trascinare l'icona del comando di menu di nuovo nella finestra.

Rimozione di un comando assegnato alla barra degli strumenti.
Quando si è in modalità di personalizzazione, i comandi assegnati a un menu possono anche essere modificati ed eliminati facendo clic con il pulsante destro direttamente sul comando di menu.
Menu
Un comando personalizzato può essere assegnato a un menu, a qualsiasi livello del menu, utilizzando lo stesso processo di trascinamento descritto sopra.
Quando il server è in modalità di personalizzazione, i menu rimangono reattivi al puntatore del mouse e si espandono e si contraggono di conseguenza. Per inserire un comando nel menu Reports dell'editor PCB, ad esempio, trascinare il comando nel menu e lungo l'elenco fino a poterlo rilasciare in una posizione adatta. Con la finestra di personalizzazione chiusa, il nuovo comando di menu – in questo caso, Notepad – può essere richiamato dal menu Reports .

I menu attivi durante la personalizzazione consentono di trascinare un comando personalizzato in un menu a discesa.
Menu contestuale
Un comando può essere assegnato a un menu contestuale accessibile con il clic destro nello stesso modo descritto sopra, senza alcuna limitazione imposta dalla profondità del sottomenu.
In questo esempio il comando viene trascinato lungo il percorso di menu di PCB Popups » Right Mouse Click Free Space e rilasciato nel sottomenu come mostrato di seguito. Una volta assegnato, il comando script personalizzato Notepad diventa disponibile nell'editor PCB facendo clic con il pulsante destro in uno spazio vuoto.

Un comando personalizzato assegnato a un sottomenu del clic destro
Assegnazione diretta dello script
In alternativa alla creazione di un comando personalizzato riutilizzabile da uno script e alla sua successiva assegnazione a un menu, uno script può essere applicato direttamente a un menu come approccio rapido e occasionale.
Questo evita il passaggio di creazione di un comando personalizzato assegnando direttamente uno script caricato a un menu. In assenza di un comando personalizzato corrispondente, che può essere applicato come comando completamente configurato a più menu, questo metodo diretto rappresenta una soluzione singola per l'accesso allo script dal menu. Di conseguenza, le varie impostazioni del comando, come Caption, Description, Image e Shortcuts, si applicano solo all'istanza assegnata.
Per assegnare direttamente uno script a un menu, caricare il progetto script, aprire la finestra Customizing del server (View » Toolbars » Customize), selezionare [Scripts] nell'elenco Categories, individuare lo script desiderato e trascinarlo in una posizione del menu. Fare clic su
per chiudere la finestra Edit Command.

È anche possibile assegnare direttamente a un menu uno script, anziché un comando.
Come per tutti i posizionamenti nei menu, se il nuovo elemento di menu è ancora nelle impostazioni predefinite (nome della didascalia, scorciatoia, ecc.), queste possono essere corrette facendo clic con il pulsante destro sulla voce di menu e selezionando Edit dal sottomenu. Si aprirà la finestra Edit Command in cui è possibile inserire impostazioni appropriate.

In modalità di personalizzazione, fare clic con il pulsante destro su un menu per accedere ai relativi parametri.
Una volta configurato, il nuovo menu sarà disponibile in fase di progettazione senza ulteriore necessità di caricare esplicitamente il progetto script o installarlo come Global Project.

Si noti che questo approccio di applicazione di uno script a un menu crea automaticamente il comando richiesto. Non si tratta di un comando personalizzato riassegnabile e completamente configurato come descritto nei metodi sopra, ma di un comando creato per quella voce di menu diretta.
Ciò può essere osservato nella voce effettiva della categoria di menu nella finestra Customizing . Nell'esempio sopra, il comando configurato individualmente può essere visto nella categoria Reports nella finestra Customizing PCB Editor.

Quando si applica direttamente uno script a un menu, il comando corrispondente viene creato solo per quella voce di menu.