In diesem Artikel erklärt Ari Mahpour, wie man ChatGPT für das Scripting in Altium in der Sprache DelphiScript optimal nutzt.
Inzwischen hatten die meisten schon ein paar Monate Zeit, sich mit Generativer KI und insbesondere mit ChatGPT vertraut zu machen. In meinem letzten Artikel Using ChatGPT for Automated Testing habe ich den ChatGPT-Dienst vorgestellt, gezeigt, wie man sich damit vertraut macht, und wie man damit Code generiert, um Tests auf der eigenen Hardware auszuführen. In diesem Artikel sehen wir uns an, wie man ChatGPT am besten nutzt, um DelphiScript-Code zu schreiben, der automatisierte Funktionen direkt in Altium mithilfe von Altium Scripting ausführt.
Bevor wir in die Umsetzung einsteigen, ist es wichtig zu verstehen, womit wir hier arbeiten. Altium Scripting wird am besten mit DelphiScript unterstützt (im Vergleich zu anderen Sprachen). Während eine kurze Online-Suche Ergebnisse wie „Es ist 2022 — wird es nicht Zeit, dass Sie anfangen, in Delphi zu programmieren?“ und eingängige Überschriften wie „Die in Delphi verwendete Pascal-Sprache ist eine der beliebtesten und universellsten Programmiersprachen“ liefert, habe ich Delphi außerhalb von Altium Designer noch nie im Einsatz gesehen. Das soll nicht heißen, dass es eine schlechte Sprache ist – sie ist nur nicht so weit verbreitet wie Python, C++ usw. Mit einer neuen Sprache gibt es viel zu lernen (besonders, wenn Sie kein professioneller Programmierer sind), daher hat Altium viele Ressourcen und sogar Werkzeuge rund um das Codieren in DelphiScript hier zusammengestellt. Wenn Sie tiefer in die Sprache einsteigen möchten, können die dortigen Ressourcen hilfreich sein.
Wenn Sie mit Altium Scripting beginnen, bauen Sie sehr schnell ein großes Repository an Skripten auf, das Sie möglicherweise speichern und/oder teilen möchten. Um in Altium Designer ein neues Scripting-Projekt zu erstellen, wählen Sie Datei > Neu > Skript > Skriptprojekt. Klicken Sie mit der rechten Maustaste auf Ihr neu erstelltes Projekt und wählen Sie Zu Projekt hinzufügen > Skripteinheit. Dadurch wird eine neue .pas-Datei erstellt, die Ihr Skript sein wird:
Abbildung 1: Hinzufügen einer Skriptdatei zum bestehenden Projekt
Wir möchten dieses nun in unserem Altium 365 Workspace speichern. Stellen Sie zunächst sicher, dass Sie das Projekt lokal gespeichert haben. Klicken Sie anschließend erneut mit der rechten Maustaste auf das Projekt und wählen Sie Verlauf & Versionskontrolle > Projekt zur Versionskontrolle hinzufügen…
Abbildung 2: Hinzufügen des Projekts zum Altium 365 Workspace
Folgen Sie anschließend den Eingabeaufforderungen, um das Projekt in Ihrem Altium 365 Workspace zu speichern. Weitere Anweisungen dazu, wie Sie DelphiScript-Code in Altium Designer schreiben, ausführen und debuggen, finden Sie in der Altium-Dokumentation.
Jetzt, da alles eingerichtet ist, können wir loslegen. ChatGPT hat das „Potenzial“, DelphiScript vollständig von Anfang bis Ende zu schreiben. Ich verwende hier bewusst „Potenzial“ statt „Fähigkeit“, weil nicht immer alles korrekt ist. Nehmen wir ein einfaches Beispiel, bei dem wir ChatGPT bitten, ein Skript in DelphiScript zu generieren, das alle Netze in meinem Projekt auflistet. Ich begann mit einem Prompt, der – fairerweise – sehr vage war:
Abbildung 3: Erste Antwort von ChatGPT
Es hat automatisch verstanden, dass ich alle Netze aus einem PcbDoc auflisten wollte. Tatsächlich wollte ich sie jedoch aus dem Schaltplan, also habe ich das korrigiert:
Abbildung 4: Einer von vielen Versuchen von ChatGPT, das richtige Skript zu schreiben
Ich habe nicht den gesamten Code gezeigt, den es mir generiert hat, aber was danach geschah, war, dass ich den Code mehrfach ausgeführt habe, nur um dann in Altium Designer auf Fehler wie „Undeclared Identifier: eNet“ oder „Expected: in For Pin in Component. Pins Do“ zu stoßen. Ich habe ChatGPT lediglich mehrfach mit diesen Fehlermeldungen geantwortet, und beim fünften Versuch erzeugte es den Code, nach dem ich gesucht hatte.
Es ist klar, dass es nicht besonders gut darin ist, DelphiScript von Grund auf neu zu generieren, aber es ist durchaus dazu in der Lage. Denken Sie daran, bevor Sie frustriert Ihre Tastatur gegen die Wand werfen.
ChatGPT kann auch eher als Sidekick oder Pair-Programmierer dienen. Sie können ChatGPT verwenden, um Ihren Code zu analysieren, Fehler zu finden oder bei der Anpassung bestimmter Funktionen zu helfen. Wir können ein bestehendes Beispiel für Altium Scripting nehmen und ChatGPT bitten, es an unsere Anforderungen anzupassen.
Es gibt Ressourcen da draußen (insbesondere auf GitHub), die Beispiele für Altium Scripting bereitstellen. Ich werde die von Altium offiziell bereitgestellten verwenden. Sie finden sie hier.
Ich beginne mit dem Beispiel PlaceAPort unter \DelphiScript Scripts\SCH\Sch_Scripts.PrjScr. Ich habe ChatGPT eine sehr triviale Aufgabe gegeben:
ChatGPT lieferte mir den Code, der genau dieser Anfrage entsprach. Ehrlich gesagt ist das ziemlich einfach, wenn man sich mit Programmierung halbwegs wohlfühlt. Machen wir es etwas schwieriger, sodass Kontextwissen zu Altium Scripting erforderlich ist.
Hier ist mein aktualisierter Prompt an ChatGPT:
Beim ersten Versuch scheitert es mit einem „Undeclared Identifier“:
Abbildung 5: Debugger-Fehler aus Altium Designer
Ich teile ihm das mit, und natürlich entschuldigt es sich. Dann scheitert es erneut mit einem „Undeclared identifier: Name“-Fehler, aber beim dritten Mal erhalte ich mein Netzlabel genau dort, wo es sein soll:
Abbildung 6: Neues Netzlabel und Port, erzeugt durch modifizierte Skripte
Es ist offensichtlich, dass mit zunehmender Komplexität die Wahrscheinlichkeit sinkt, dass ChatGPT Ihr Skript gleich beim ersten Versuch korrekt erstellt. Ich habe festgestellt, dass es mit etwas Hartnäckigkeit am Ende in der Lage ist, die Dinge richtig zu machen – besonders dann, wenn man ihm ein wenig helfen kann (vorausgesetzt, man versteht den von ihm generierten Code).
In diesem Artikel haben wir mit einer Einführung in Altium Scripting begonnen, besprochen, wie man ein Projekt erstellt und es in seinem Altium 365 Workspace speichert. Anschließend haben wir Beispiele mit ChatGPT betrachtet, bei denen es Skripte vollständig von Grund auf generiert und auch bereitgestellte Skripte modifiziert hat. Wir haben seine Fähigkeiten gezeigt und auch, dass es nicht immer alles richtig macht. Auch wenn es nicht perfekt ist, kann es Sie auf Ihrer Reise mit Altium Scripting definitiv als Leitfaden begleiten. Am wichtigsten ist: Es ist auf jeden Fall besser, es zu haben, als ganz darauf zu verzichten.