Mittlerweile hatten die Leute einige Monate Zeit, um sich mit Generative AI und insbesondere 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 ihn verwendet, um Code zu generieren, der Tests an Ihrer Hardware durchführt. In diesem Artikel werden wir uns anschauen, wie man ChatGPT am besten nutzt, um DelphiScript-Code zu schreiben, der automatisierte Funktionen innerhalb von Altium selbst mit Altium Scripting ausführt.
Bevor wir in die Implementierung einsteigen, ist es wichtig zu verstehen, womit wir hier arbeiten. Altium Scripting wird am besten mit DelphiScript (gegenüber anderen Sprachen) unterstützt. Während eine schnelle Online-Suche Ergebnisse wie „Es ist 2022 – Ist es nicht an der Zeit, dass Sie mit dem Programmieren in Delphi beginnen?“ und einprägsame Überschriften wie „Die in Delphi verwendete Pascal-Sprache ist eine der beliebtesten und universellsten Programmiersprachen“ liefert, habe ich Delphi nie außerhalb von Altium Designer verwendet gesehen. Das soll nicht heißen, dass es eine schlechte Sprache ist – sie ist nur nicht so häufig verwendet wie Python, C++ usw. Es gibt viel zu lernen mit einer neuen Sprache (besonders wenn man kein gebürtiger Programmierer ist), daher hat Altium viele Ressourcen und sogar Werkzeuge rund um das Programmieren in DelphiScript hier zusammengestellt. Wenn Sie sich in die Sprache vertiefen möchten, können die dortigen Ressourcen hilfreich sein.
Wenn Sie mit Altium Scripting beginnen, werden Sie sehr schnell ein großes Repository von Skripten aufbauen, die Sie möglicherweise speichern und/oder teilen möchten. Um ein neues Scripting-Projekt in Altium Designer zu erstellen, navigieren Sie zu Datei > Neu > Skript > Skriptprojekt. Klicken Sie mit der rechten Maustaste auf Ihr neu erstelltes Projekt und navigieren Sie zu Neu zum 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 werden dies in unserem Altium 365-Arbeitsbereich speichern wollen. Stellen Sie zunächst sicher, dass Sie das Projekt lokal gespeichert haben. Klicken Sie danach erneut mit der rechten Maustaste auf das Projekt und navigieren Sie zu Verlauf & Versionskontrolle > Projekt zur Versionskontrolle hinzufügen…
Abbildung 2: Hinzufügen des Projekts zum Altium 365-Arbeitsbereich
Folgen Sie anschließend den Aufforderungen, um das Projekt in Ihrem Altium 365 Workspace zu speichern. Weitere Anweisungen zum Schreiben, Ausführen und Debuggen von DelphiScript-Code in Altium Designer finden Sie in der Altium-Dokumentation.
Jetzt, da wir alles eingerichtet haben, sind wir bereit, einzutauchen. ChatGPT hat das „Potenzial“, DelphiScript von Anfang bis Ende komplett zu schreiben. Ich verwende hier „Potenzial“ anstelle von „Fähigkeit“, weil es nicht immer alles richtig macht. Nehmen wir ein einfaches Beispiel, bei dem wir ChatGPT bitten, ein Skript in DelphiScript zu generieren, um alle Netze in meinem Projekt aufzulisten. Ich begann mit einer Aufforderung, die, um fair zu sein, sehr vage war:
Abbildung 3: Erste Antwort von ChatGPT
Dies wurde automatisch so verstanden, dass ich alle Netze von einem PcbDoc auflisten wollte. Ich wollte es eigentlich vom Schaltplan, also korrigierte ich es:
Abbildung 4: Einer von vielen Versuchen von ChatGPT, das richtige Skript zu schreiben
Ich habe nicht den gesamten Code angezeigt, den es für mich generiert hat, aber was danach geschah, war, dass ich den Code mehrmals ausführte, nur um Altium Designer auf Fehler wie „Undeclared Identifier: eNet“ oder „Expected: in For Pin in Component. Pins Do.“ scheitern zu lassen. Alles, was ich tat, war, ChatGPT mehrmals mit diesen Fehlern zu antworten, und beim fünften Versuch generierte es den Code, den ich suchte.
Was klar ist, ist, dass es nicht großartig darin ist, DelphiScript von Grund auf zu generieren, aber es ist dazu in der Lage. Denken Sie daran, bevor Sie aus Frustration Ihre Tastatur an die Wand werfen.
ChatGPT kann auch als eine Art Sidekick oder Peer-Programmierer verfügbar sein. Sie können ChatGPT verwenden, um Ihren Code zu analysieren, Fehler zu finden oder Ihnen zu helfen, bestimmte Funktionen zu optimieren. Wir können ein bestehendes Altium-Scripting-Beispiel nehmen und ChatGPT daran anpassen lassen, um unseren Bedürfnissen zu entsprechen.
Es gibt Ressourcen da draußen (besonders auf GitHub gehostet), die Altium-Scripting-Beispiele für Sie bereitstellen. Ich werde die offiziell von Altium bereitgestellten verwenden. Sie können hier gefunden werden.
Ich beginne mit dem Beispiel PlaceAPort, das sich unter \DelphiScript Scripts\SCH\Sch_Scripts.PrjScr befindet. Ich habe ChatGPT eine sehr triviale Aufgabe gegeben:
ChatGPT gab mir den Code, der genau dieser Anforderung folgte. Um ehrlich zu sein, ist das ziemlich einfach, wenn Sie sich mit Programmierung halbwegs auskennen. Lassen Sie uns es ein wenig schwieriger machen, was kontextuelles Wissen über Altium Scripting erfordert.
Hier ist meine aktualisierte Aufforderung an ChatGPT:
Es scheitert beim ersten Versuch mit einem nicht deklarierten Bezeichner:
Abbildung 5: Debugger-Fehler von Altium Designer
Ich lasse es das wissen und es entschuldigt sich natürlich. Es scheitert erneut mit einem Fehler „Nicht deklarierter Bezeichner: Name“, aber beim dritten Mal bekomme ich mein Netzlabel genau dort, wo es sein soll:
Abbildung 6: Neues Netzlabel und Port, generiert durch modifizierte Skripte
Es ist offensichtlich, dass mit zunehmender Komplexität die Wahrscheinlichkeit sinkt, dass ChatGPT Ihr Skript beim ersten Versuch richtig bekommt. Ich habe festgestellt, dass es mit Ausdauer schließlich die Dinge richtig hinbekommt, besonders wenn man ihm ein wenig helfen kann (vorausgesetzt, man versteht den Code, den es generiert).
In diesem Artikel haben wir mit einer Einführung in das Altium-Skripting begonnen, wie man ein Projekt erstellt und es in Ihrem Altium 365-Arbeitsbereich speichert. Wir haben Beispiele mit ChatGPT durchgegangen, wo es vollständig Skripte von Grund auf neu generiert und auch Skripte modifiziert hat, die wir ihm zur Verfügung gestellt haben. Wir haben seine Fähigkeiten demonstriert und wie es nicht immer alles richtig macht. Obwohl es nicht perfekt ist, kann es sicherlich als Leitfaden während Ihrer Altium-Skripting-Reise dienen. Am wichtigsten ist, dass es definitiv besser ist, es zu haben, als es nicht zu haben.