Running Scripts

 

Während das Scripting-System von Altium Designer die Möglichkeit bietet, anspruchsvolle automatisierte Aufgaben für Altium Designer zu erstellen, müssen die daraus resultierenden Skripte während des Designprozesses auch leicht zugänglich sein. Beispielsweise sollte ein Skript, das erstellt wurde, um beim Bearbeiten einer PCB einen komplexen Satz von Operationen auszuführen, direkt im PCB Editor selbst verfügbar sein, wo es mit ein oder zwei Mausklicks ausgeführt werden kann.

Altium Designer erfüllt diese Anforderung, indem ein Skript einem Prozessstarter zugewiesen werden kann und dadurch ein Befehl entsteht, der einem Menü, einer Symbolleiste und einem Shortcut zugewiesen werden kann.

Skripte ausführen

Wenn ein Skript im Skripteditor geöffnet ist, kann es über den Befehl des Editors in den Hauptmenüs ausgeführt werden (Shortcut: F9). Das aktuelle Skript, auf das sich der Befehl Run » Set Project Startup Procedure bezieht, wird ausgeführt.

Wenn der Befehl Set Project Startup Procedure nicht festgelegt wurde, erscheint der Dialog Select Item To Run, in dem Sie aufgefordert werden auszuwählen, welches Skript und welche Prozedur ausgeführt werden sollen.

Wenn ein Skript Fehler enthält, wird das Skript angehalten, und Sie können verschiedene Debugging-Befehle verwenden, um die Fehler zu beheben und den Ausführungsvorgang erneut zu versuchen.

Der Befehl Run setzt voraus, dass das Skriptprojekt in Altium Designer geöffnet ist, was beispielsweise kein besonders komfortabler Ansatz ist, um während des PCB-Designprozesses auf ein benötigtes Skript zuzugreifen. Alternativ ermöglicht der Dialog Select Item To Run (File » Run Script) das Durchsuchen eines Skripts auf Ihrer lokalen Festplatte oder in einem verbundenen Workspace oder die Auswahl eines Skripts, das im Bereich Projects geöffnet ist, um anschließend den gewünschten Prozess auszuführen. Das Skript bleibt für die aktuelle Sitzung geladen.

Ausführen eines Skripts über den Skript-Prozessstarter mithilfe des Dialogs Select Item to Run.Ausführen eines Skripts über den Skript-Prozessstarter mithilfe des Dialogs Select Item to Run.

Wenn im Skript Fehler vorhanden sind, wird nach dem Klicken auf OK im Dialog Select Item To Run ein Fehlerdialog geöffnet, der Sie darauf hinweist, dass ein Fehler vorhanden ist. Der Dialog enthält Informationen über den Fehler, und das Quellskriptdokument wird geöffnet, wobei die fehlerhafte Skriptzeile hervorgehoben wird. Schließen Sie diesen Dialog, indem Sie auf die Schaltfläche OK klicken, und beenden Sie das Scripting-System, indem Sie den Befehl Run » Stop aus den Hauptmenüs auswählen (Shortcut: Ctrl+F3).

Der Fehlerdialog kennzeichnet nur den ersten gefundenen Skriptfehler. Es können weitere vorhanden sein, die bei nachfolgenden Versuchen, das Skript auszuführen, gefunden werden.

Eine besser geeignete Methode, um auf ein häufig verwendetes Skript zuzugreifen, besteht darin, das Projekt als Global Project über die Seite Scripting System – Global Projects page des Dialogs Preferences zu installieren. In diesem Fall wird das Projekt beim Start von Altium Designer automatisch geladen und kann jederzeit über den Befehl File » Run Script ausgeführt werden.

Die ideale Möglichkeit, auf die Funktionalität eines Skripts zuzugreifen, besteht jedoch darin, sie als Menü- oder Symbolleistenbefehl in die GUI von Altium Designer zu integrieren. Dies ist normalerweise ein zweistufiger Prozess: Zuerst wird ein Skript als Befehl implementiert (mit optionalem Shortcut), anschließend wird der Befehl einem Menü (statisch oder Pop-up) oder einer Symbolleiste zugewiesen.

Skript als Befehl

Ein Skript kann als Anwendungsbefehl implementiert werden, indem die integrierten Serverprozesse von Altium Designer genutzt werden, genauer gesagt der Prozess ScriptingSystem:RunScript.

Ein Befehl stellt eine ausgeführte Aktion dar und wird durch eine Prozesszeichenfolge über einen paketierten Prozessstarter unterstützt. Im Fall des Prozesses ScriptingSystem:RunScript enthält diese Parameter, die auf eine bestimmte Skriptprojektdatei, eine enthaltene Skriptdatei (*.pas) und einen Prozess innerhalb dieses Skripts verweisen. Wenn diese Elemente passend angeordnet sind, bilden sie eine Befehlszeichenfolge.

Der Vorteil dieses Ansatzes besteht darin, dass durch das Ausführen des Skripts als Prozess vermieden wird, das Skript direkt öffnen oder als Global Project geladen haben zu müssen. Der zweite und wichtigere Vorteil der Verwendung der Prozessmethode zum Ausführen eines Skripts besteht darin, dass sie als zugänglicher Altium Designer-Befehl implementiert werden kann. Dies geschieht durch das Anpassen des Menüsystems von Altium Designer, wobei ein Skript einem Befehl für einen bestimmten Server zugewiesen werden kann – also einer Unteranwendung wie dem Dateisystem oder einem Design-Dokumenteditor.

Einen Befehl erstellen

Um beispielsweise das HelloWorld-Skript als Befehl für den PCB Editor zuzuweisen, öffnen Sie zunächst ein PCB-Dokument (und damit den Editor) und wählen Sie View » Tools » Customize im Hauptmenü, um den Dialog Customizing PCB Editor dialog zu öffnen. Der Dialog kann auch aufgerufen werden, indem Sie mit der rechten Maustaste auf eine Menüleiste oder Symbolleiste klicken und dann Customize aus dem Dropdown-Menü wählen oder indem Sie auf einen leeren Bereich (fern von Befehlen) einer Menüleiste oder Symbolleiste doppelklicken.

Um einen neuen Befehl zu erstellen, klicken Sie auf die Schaltfläche New des Dialogs, um den Dialog Edit Command zu öffnen, in dem die Details zum Serverprozess und Skriptpfad eingetragen werden können – stellen Sie sicher, dass die Kategorie [Scripts] beim Erstellen eines Befehls aus einem Skript nicht ausgewählt ist.

Die Einträge Action des Dialogs haben die Form:

Process: ScriptingSystem:RunScript
Parameters: ProjectName|ProcName>Process

Abhängig vom Quellpfad zum Skript würde die Zeichenfolge Parameters in etwa wie folgt aussehen:

ProjectName=C:\Users\Public\Documents\Altium\Delphiscript Scripts\General\HelloWorld.PRJSCR|ProcName=HelloWorld.pas>HelloWorld

Bei einem in einem Workspace gehosteten Skriptprojekt müssen der Pfad und damit der Parametereintrag des Befehls auf den korrekten Workspace-Speicherort verweisen – dieser basiert auf der GUID-Referenz des Workspace-Skripts. Daher muss dieser Referenzlink before eingeholt werden, bevor versucht wird, den neuen Skriptbefehlseintrag zu erstellen. Um die korrekten Parameter für ein aus dem Workspace installiertes Skript zu übernehmen, öffnen Sie den Dialog Select Item To Run (File » Run Script), klicken Sie mit der rechten Maustaste auf die gewünschte Prozedur im Skript und wählen Sie den Befehl Copy script parameters aus dem Kontextmenü. Dadurch werden der vollständige Pfad, der Prozessname und die Prozedur in die Zwischenablage kopiert.

Wählen Sie den erforderlichen Prozess/die erforderliche Prozedur im Workspace-Skriptprojekt aus und kopieren Sie dann die Parameter des Skripts.
Wählen Sie den erforderlichen Prozess/die erforderliche Prozedur im Workspace-Skriptprojekt aus und kopieren Sie dann die Parameter des Skripts.

Der Dialog Edit Command bietet außerdem Eingabefelder für eine Befehlsbeschriftung, eine Beschreibung, einen Shortcut und ein zugeordnetes Bitmap-Bild (BMP/GIF/PNG; 18 x 18 Pixel). Diese Einstellungen werden mit dem Befehl gespeichert und gelten für alle Instanzen, in denen er in Menüs, Symbolleisten und Pop-ups eingefügt wird – wie im Abschnitt Assigning Menu Commands unten beschrieben.

Die erforderlichen Parameter können aus dem tatsächlichen Skripteintrag unter der Kategorie [Scripts] im Dialog Customize PCB Editor kopiert werden, wenn das Skript derzeit geladen ist. Um das Skript vorübergehend zu laden, suchen Sie es über den Befehl File » Run Script und öffnen Sie es. Sobald die Daten kopiert wurden, stellen Sie sicher, dass der Eintrag Categories nicht mehr auf [Scripts] gesetzt ist, bevor Sie den Befehl mit der Schaltfläche New erstellen.

Beispielbild anzeigen

Nachdem die Details vervollständigt und der Bearbeitungsdialog geschlossen wurde (), ist das HelloWorld-Skript als benutzerdefinierter Befehl (unter [Custom]) für den PCB Editor verfügbar.

Beachten Sie, dass Befehle serverbasiert implementiert werden. Daher ist ein benutzerdefinierter Befehl, der für den PCB Editor erstellt wurde (wie oben), nicht für andere Funktionen verfügbar, etwa für den Schematic Editor oder das Scripting System.

Ausführen eines Skripts mit dem Prozess RunScriptFile

Ein DelphiScript-Unit-Skript aus Altium Designer (mit der Erweiterung *.pas) kann mit dem Prozess RunScriptFile ausgeführt werden. Beachten Sie, dass nur DelphiScript-Unit-Skripte verwendet werden können – nicht solche Skripte, die Formulare enthalten. In diesem Fall haben die Einträge Action des Dialogs die Form:

Process: ScriptingSystem:RunScriptFile
Parameters: FileName|ProcName

Abhängig vom Quellpfad zur Skriptdatei würde die Zeichenfolge Parameters in etwa wie folgt aussehen:

FileName=C:\Users\Public\Documents\Altium\Delphiscript Scripts\Processes\ShowNetList.pas|ProcName=RunNetList

Ausführen eines Skripts mit dem Prozess RunScriptText

Dieser Prozess kann verwendet werden, um eine Reihe von Befehlen innerhalb des Blocks Begin End; auszuführen. In diesem Fall haben die Einträge Action des Dialogs die Form:

Process: ScriptingSystem:RunScriptText
Parameters: Text

Beispielsweise kann eine externe Anwendung wie Microsoft Notepad aus Altium Designer heraus per Softwaresteuerung gestartet werden. In diesem Fall wären die Einträge für Befehlsprozess und Parameter:

Process: ScriptingSystem:RunScriptText
Parameters: Text=Begin RunApplication('notepad.exe'); End;

Der Softwareprozess ScriptingSystem:RunScriptText führt in diesem Fall buchstäblich eine Folge von Skriptanweisungen aus, anstatt eine bestimmte Skriptdatei zu öffnen und auszuführen, wie oben beschrieben.

Der alternative Ansatz besteht darin, ein Skript mit einigen äquivalenten Codezeilen zu erstellen und dann einen herkömmlichen Befehlseintrag ScriptingSystem:RunScript zu erzeugen.

Procedure RunNotepad;
Begin
    RunApplication('notepad.exe');
End;

Beachten Sie, dass es bei beiden Ansätzen zur Implementierung des externen Notepad-Befehls ausreicht, einfach 'notepad.exe' als Parameter für RunApplication einzugeben, anstatt den vollständigen Pfad und Dateinamen der Anwendung anzugeben. Windows-Anwendungen wie Calculator und Notepad haben ihre Pfade bereits im Betriebssystem hinterlegt.

Um aus Altium Designer eine Anwendung zu starten, die keinen systemseitig vorhandenen Windows-Pfad besitzt, müssen der vollständige Pfad und der Dateiname der Anwendung angegeben werden (in einfachen Anführungszeichen, um eventuelle Leerzeichen im Pfad zu berücksichtigen). Um beispielsweise eine zweite Instanz von Altium Designer zu starten, wären Prozess und Parameter für RunApplication:

RunApplication('C:\Program Files\Altium\xx\X2.EXE') – wobei xx den Versionsordnernamen von Altium Designer darstellt.

Befehle können direkt im Anpassungsdialog bearbeitet, dupliziert und entfernt werden (in diesem Fall im Dialog Customizing PCB Editor) – mithilfe der Schaltflächen am unteren Rand des Dialogs.

Zuweisen von Menübefehl en

Wenn ein Skript wie oben beschrieben über die Anpassungsfunktion von Altium Designer als benutzerdefinierter Serverbefehl implementiert wurde (View » Toolbars » Customize), kann es per einfachem Drag-and-drop der Server-GUI zugewiesen werden.

► Siehe auch Anpassen des Design Space

Symbolleisten

Um beispielsweise einen benutzerdefinierten Befehl dem Hauptmenü oder dem Symbolleistenmenü des PCB-Editors zuzuweisen, öffnen Sie den Dialog Customizing PCB Editor, suchen Sie den benutzerdefinierten Befehl und ziehen Sie ihn an die gewünschte Position im Menü. Beachten Sie, dass ein PCB-Dokument geöffnet sein muss, damit auf die Menüs des PCB-Editors zugegriffen werden kann. Bei geschlossenem Anpassungsdialog kann der neue Menübefehl jederzeit im PCB-Editor aufgerufen werden.

Ein benutzerdefinierter Befehl kann an die gewünschte Menüposition gezogen werden.
Ein benutzerdefinierter Befehl kann an die gewünschte Menüposition gezogen werden.

Ein Befehl kann auch über die Option Insert Link option in den Rechtsklick-Optionen des Menüs hinzugefügt werden.

Da der neue benutzerdefinierte Befehl in diesem Beispiel der PCB Active Bar zugewiesen wurde, ist er im Dialog Customizing PCB Editor unter der Befehlskategorie PCB Active Bar zu sehen.

Wenn er einem Menü zugewiesen ist, erscheint der benutzerdefinierte Skriptbefehl im Anpassungsdialog unter der Kategorie dieses Menüs.
Wenn er einem Menü zugewiesen ist, erscheint der benutzerdefinierte Skriptbefehl im Anpassungsdialog unter der Kategorie dieses Menüs.

Um einen Befehl aus einem Menü zu entfernen, öffnen Sie den Anpassungsdialog und ziehen Sie dann das Symbol des Menübefehls zurück in den Dialog.

Entfernen eines der Symbolleiste zugewiesenen Befehls.
Entfernen eines der Symbolleiste zugewiesenen Befehls.

Im Anpassungsmodus können Befehle, die einem Menü zugewiesen sind, auch bearbeitet und gelöscht werden, indem Sie direkt auf den Menübefehl rechtsklicken.

Menüs

Ein benutzerdefinierter Befehl kann mit demselben oben beschriebenen Drag-and-drop-Verfahren einem Menü in jeder Menütiefe zugewiesen werden.

Wenn sich der Server im Anpassungsmodus befindet, reagieren die Menüs weiterhin auf den Mauszeiger und werden entsprechend ein- und ausgeklappt. Um beispielsweise einen Befehl in das Menü Reports des PCB-Editors einzufügen, ziehen Sie den Befehl in das Menü und in der Liste nach unten, wo er an einer geeigneten Position abgelegt werden kann. Bei geschlossenem Anpassungsdialog kann der neue Menübefehl – hier Notepad – innerhalb des Menüs Reports aufgerufen werden.

Aktive Menüs während der Anpassung ermöglichen es, einen benutzerdefinierten Befehl in ein Dropdown-Menü zu ziehen.
Aktive Menüs während der Anpassung ermöglichen es, einen benutzerdefinierten Befehl in ein Dropdown-Menü zu ziehen.

Kontextmenü

Ein Befehl kann auf dieselbe Weise wie oben beschrieben einem Rechtsklick-Kontextmenü zugewiesen werden, ohne Einschränkung hinsichtlich der Tiefe von Untermenüs.

In diesem Beispiel wird der Befehl durch den Menüpfad PCB Popups » Right Mouse Click Free Space gezogen und wie unten gezeigt im Untermenü abgelegt. Nach der Zuweisung ist der benutzerdefinierte Notepad-Skriptbefehl im PCB-Editor verfügbar, wenn in einen freien Bereich rechtsgeklickt wird.

Ein benutzerdefinierter Befehl, der einem Rechtsklick-Untermenü zugewiesen wurde
Ein benutzerdefinierter Befehl, der einem Rechtsklick-Untermenü zugewiesen wurde

Direkte Skriptzuweisung

Als Alternative zum Erstellen eines wiederverwendbaren benutzerdefinierten Befehls aus einem Skript und dessen anschließender Zuweisung zu einem Menü kann ein Skript auch direkt einem Menü zugewiesen werden – als schneller, einmaliger Ansatz.

Dadurch wird der Schritt zum Erstellen eines benutzerdefinierten Befehls umgangen, indem ein geladenes Skript direkt einem Menü zugewiesen wird. Ohne das Vorhandensein eines passenden benutzerdefinierten Befehls, der als vollständig konfigurierter Befehl auf mehrere Menüs angewendet werden kann, ist diese direkte Methode eine Einzellösung für den Zugriff auf Skripte über Menüs. Daher gelten die verschiedenen Befehlseinstellungen wie Caption, Description, Image und Shortcuts nur für die zugewiesene Instanz.

Um ein Skript direkt einem Menü zuzuweisen, laden Sie das Skriptprojekt, öffnen Sie den Dialog Customizing des Servers (View » Toolbars » Customize), wählen Sie [Scripts] in der Kategorienliste aus, suchen Sie das gewünschte Skript und ziehen Sie es an eine Menüposition. Klicken Sie auf , um den Dialog Edit Command zu schließen.

Auch ein Skript – statt eines Befehls – kann direkt einem Menü zugewiesen werden.
Auch ein Skript – statt eines Befehls – kann direkt einem Menü zugewiesen werden.

Wie bei allen Menüplatzierungen gilt: Wenn das neue Menüelement noch seine Standardeinstellungen hat (Beschriftung, Tastenkürzel usw.), können diese korrigiert werden, indem Sie mit der rechten Maustaste auf den Menüeintrag klicken und im Untermenü Edit auswählen. Dadurch wird der Dialog Edit Command geöffnet, in dem geeignete Einstellungen eingegeben werden können.

Im Anpassungsmodus können Sie per Rechtsklick auf ein Menü auf dessen Parameter zugreifen.
Im Anpassungsmodus können Sie per Rechtsklick auf ein Menü auf dessen Parameter zugreifen.

Nach der Konfiguration ist das neue Menü zur Entwurfszeit verfügbar, ohne dass das Skriptprojekt erneut explizit geladen oder als Global Project installiert werden muss.

Beachten Sie, dass dieser Ansatz zum Anwenden eines Skripts auf ein Menü automatisch den erforderlichen Befehl erstellt. Dabei handelt es sich nicht um einen erneut zuweisbaren, benutzerdefinierten, vollständig konfigurierten Befehl wie in den oben beschriebenen Methoden, sondern um einen Befehl, der für diesen direkten Menüeintrag erstellt wird.

Dies lässt sich am tatsächlichen Menü-Kategorieeintrag im Dialog Customizing erkennen. Im obigen Beispiel ist der individuell konfigurierte Befehl im Dialog Customizing PCB Editor in der Kategorie Reports zu sehen.

Wenn ein Skript direkt auf ein Menü angewendet wird, wird der entsprechende Befehl nur für diesen einen Menüeintrag erstellt.
Wenn ein Skript direkt auf ein Menü angewendet wird, wird der entsprechende Befehl nur für diesen einen Menüeintrag erstellt.

AI-LocalizedAI-localized
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
Feature Availability

The features available to you depend on which Altium solution you have – Altium Develop, an edition of Altium Agile (Agile Teams or Agile Enterprise), or Altium Designer (on active term).

If you don’t see a discussed feature in your software, contact Altium Sales to find out more.

Legacy Documentation

Altium Designer documentation is no longer versioned. If you need to access documentation for older versions of Altium Designer, visit the Legacy Documentation section of the Other Installers page.

Inhalt