Il y a maintenant quelques mois que les gens ont commencé à se familiariser avec l'IA générative et, plus célèbre, ChatGPT. Dans mon dernier article, Utiliser ChatGPT pour les tests automatisés, j'ai présenté le service ChatGPT, vous ai montré comment vous familiariser avec et comment l'utiliser pour générer du code pour exécuter des tests sur votre matériel. Dans cet article, nous allons voir comment utiliser au mieux ChatGPT pour écrire du code DelphiScript afin d'exécuter des fonctions automatisées dans Altium lui-même en utilisant le Scripting Altium.
Avant de plonger dans la mise en œuvre, il est important de comprendre avec quoi nous travaillons ici. Le Scripting Altium est mieux supporté en utilisant DelphiScript (plutôt que d'autres langages). Alors qu'une recherche rapide en ligne donne des résultats comme, "C'est 2022—N'est-il pas temps que vous commenciez à coder en Delphi ?" et des titres accrocheurs tels que, "Le langage Pascal utilisé dans Delphi est l'un des langages de programmation les plus populaires et universels", je n'ai jamais vu Delphi utilisé en dehors d'Altium Designer. Cela ne veut pas dire que c'est un mauvais langage - il n'est juste pas aussi couramment utilisé que Python, C++, etc. Il y a beaucoup à apprendre avec un nouveau langage (surtout si vous n'êtes pas un programmeur natif), donc Altium a rassemblé beaucoup de ressources et même des outils autour de la programmation en DelphiScript ici. Si vous cherchez à vous plonger dans le langage, les ressources là peuvent être utiles.
Lorsque vous commencez avec le Scripting Altium, vous allez très rapidement accumuler un grand répertoire de scripts que vous voudrez peut-être sauvegarder et/ou partager. Pour créer un nouveau projet de Scripting dans Altium Designer, naviguez vers Fichier > Nouveau > Script > Projet de Script. Cliquez avec le bouton droit sur votre projet nouvellement créé et naviguez vers Ajouter Nouveau au Projet > Unité de Script. Cela créera un nouveau fichier .pas qui sera votre script :
Figure 1 : Ajout d'un fichier script au projet existant
Nous voudrons sauvegarder cela dans notre espace de travail Altium 365. Assurez-vous d'abord d'avoir sauvegardé le projet localement. Après cela, cliquez à nouveau avec le bouton droit sur le projet et naviguez vers Historique & Contrôle de Version > Ajouter le Projet au Contrôle de Version…
Figure 2 : Ajout du projet à l'espace de travail Altium 365
Suivez les instructions qui suivent pour sauvegarder le projet dans votre espace de travail Altium 365. Pour plus d'instructions sur comment écrire, exécuter et déboguer du code DelphiScript dans Altium Designer, consultez la documentation Altium.
Maintenant que tout est en place, nous sommes prêts à plonger. ChatGPT a le "potentiel" d'écrire complètement un script DelphiScript du début à la fin. J'utilise "potentiel" au lieu de "capacité" ici parce qu'il n'obtient pas toujours les résultats escomptés. Prenons un exemple simple où nous demandons à ChatGPT de générer un script en DelphiScript pour lister tous les réseaux de mon projet. J'ai commencé avec une invite qui était, pour être honnête, très vague :
Figure 3 : Première réponse de ChatGPT
Cela a automatiquement compris que je voulais lister tous les réseaux à partir d'un PcbDoc. En fait, je le voulais à partir du schématique, donc je l'ai corrigé :
Figure 4 : Une des nombreuses tentatives de ChatGPT pour écrire le script correct
Je n'ai pas affiché tout le code qu'il a généré pour moi, mais ce qui s'est passé ensuite, c'est que j'ai exécuté le code plusieurs fois seulement pour obtenir des erreurs dans Altium Designer telles que "Undeclared Identifier: eNet," ou "Expected: in For Pin in Component. Pins Do." Tout ce que j'ai fait, c'était de répondre à ChatGPT avec ces erreurs plusieurs fois, et à la cinquième tentative, il a généré le code que je cherchais.
Ce qui est clair, c'est qu'il n'est pas formidable pour générer du DelphiScript à partir de zéro, mais il en est capable. Souvenez-vous de cela avant de jeter votre clavier contre le mur de frustration.
ChatGPT peut également être disponible comme plus qu'un simple acolyte ou programmeur pair. Vous pouvez utiliser ChatGPT pour analyser votre code, trouver des bugs, ou vous aider à ajuster des fonctions spécifiques. Nous pouvons prendre un exemple de script Altium existant et demander à ChatGPT de l'ajuster selon nos besoins.
Il existe des ressources (surtout hébergées sur GitHub) qui fournissent des exemples de scripts Altium. Je vais utiliser ceux officiellement fournis par Altium. Ils peuvent être trouvés ici.
Je commence avec l'exemple PlaceAPort situé sous \DelphiScript Scripts\SCH\Sch_Scripts.PrjScr. J'ai donné à ChatGPT une tâche très triviale :
ChatGPT m'a donné le code qui suivait exactement cette demande. Pour être honnête, c'est assez simple si vous êtes à l'aise avec la programmation. Rendons cela un peu plus difficile, ce qui nécessite une connaissance contextuelle du script Altium.
Voici mon invite mise à jour à ChatGPT :
Il échoue dès le premier essai avec une erreur d'Identifiant non déclaré :
Figure 5 : Erreur de débogage provenant d'Altium Designer
Je le lui fais savoir et il s'excuse, bien sûr. Il échoue à nouveau avec une erreur "Identifiant non déclaré : Nom" mais, à la troisième tentative, j'obtiens mon étiquette de réseau exactement où elle doit être :
Figure 6 : Nouvelle étiquette de réseau et port générés par des scripts modifiés
Il est évident qu'avec une augmentation de la complexité, ChatGPT a moins de chances de réussir votre script du premier coup. J'ai trouvé que, avec de la persévérance, il est capable de finalement obtenir les choses correctement, surtout si vous pouvez l'assister un peu (en supposant que vous comprenez le code qu'il génère).
Dans cet article, nous avons commencé par une introduction au script Altium, comment créer un projet et l'enregistrer dans votre espace de travail Altium 365. Nous avons plongé dans des exemples avec ChatGPT où il a complètement généré des scripts à partir de zéro et a également modifié des scripts que nous lui avons fournis. Nous avons démontré ses capacités et comment il n'obtient pas toujours les choses correctement. Bien qu'il ne soit pas parfait, il peut certainement agir comme un guide tout au long de votre parcours de script Altium. Plus important encore, il vaut certainement mieux l'avoir que de ne pas l'avoir du tout.