今では、Generative AIや、特に有名なChatGPTに慣れるのに数ヶ月が経ちました。私の前回の記事自動テストのためのChatGPTの使用では、ChatGPTサービスを紹介し、それに慣れる方法を示し、ハードウェア上でテストを実行するコードを生成する方法を使用しました。この記事では、Altium自体内で自動機能を実行するためにDelphiScriptコードを書くためにChatGPTを最適に活用する方法を見ていきます。Altiumスクリプティングを使用して。
実装に入る前に、ここで何を扱っているのかを理解することが重要です。Altiumスクリプティングは、DelphiScript(他の言語よりも)を使用して最もサポートされています。オンラインで簡単に検索すると、「2022年です—Delphiでコーディングを始める時ではありませんか?」や、「Delphiで使用されるPascal言語は、最も人気があり普遍的なプログラミング言語の一つです」といったキャッチーな見出しが出てきますが、Altium Designerの外でDelphiが使用されているのを見たことがありません。それが悪い言語だというわけではありませんが、Python、C++などほど一般的には使用されていません。新しい言語(特にネイティブプログラマーでない場合)を学ぶことは多く、そこでAltiumはDelphiScriptでのコーディングに関する多くのリソースやツールをこちらでまとめています。言語に深く踏み込みたい場合、そこにあるリソースが役立つかもしれません。
Altiumスクリプティングを始めると、保存および/または共有したいスクリプトの大きなリポジトリがすぐに増えていきます。Altium Designerで新しいスクリプティングプロジェクトを作成するには、ファイル > 新規 > スクリプト > スクリプトプロジェクトに移動します。新しく作成されたプロジェクトを右クリックし、プロジェクトに新規追加 > スクリプトユニットに移動します。これにより、スクリプトとなる新しい.pasファイルが作成されます:
図1: 既存のプロジェクトにスクリプトファイルを追加
これをAltium 365ワークスペースに保存したいと思います。まず、プロジェクトをローカルに保存していることを確認してください。その後、再度プロジェクトを右クリックし、履歴 & バージョン管理 > プロジェクトをバージョン管理に追加…に移動します。
図2: プロジェクトをAltium 365ワークスペースに追加
その後のプロンプトに従って、プロジェクトをAltium 365 Workspaceに保存してください。Altium Designer内でDelphiScriptコードを書いたり、実行したり、デバッグしたりする方法についての詳細な指示については、Altiumのドキュメントを参照してください。
準備が整ったので、さっそく始めましょう。ChatGPTは、DelphiScriptを最初から最後まで完全に書き出す「可能性」を持っています。「可能性」と「能力」をここで使い分けているのは、常に正しいわけではないからです。プロジェクト内のすべてのネットをリストアップするDelphiScriptを生成してもらう簡単な例を見てみましょう。私が始めたプロンプトは、公平を期して言うと、非常にあいまいでした:
図3: ChatGPTの初回応答
これは自動的に私がPcbDocからすべてのネットをリストアップしたいと理解しました。実際にはスキーマティックから欲しかったので、それを訂正しました:
図4: 正しいスクリプトを書くためのChatGPTの試みの一つ
ここで生成されたすべてのコードを表示していませんが、その後何度かコードを実行してみると、「Undeclared Identifier: eNet」や「Expected: in For Pin in Component. Pins Do」といったエラーでAltium Designerが失敗することになりました。私がしたことは、これらのエラーを何度もChatGPTに報告することで、5回目にしてようやく私が探していたコードを生成してくれました。
明らかなのは、最初からDelphiScriptを生成するのが得意ではないが、それが可能であるということです。キーボードを壁に投げつける前に、それを覚えておいてください。
ChatGPTは、サイドキックやピアプログラマーとしても利用できます。ChatGPTを使用してコードを分析したり、バグを見つけたり、特定の関数を調整するのに役立てることができます。既存のAltiumスクリプトの例を取り、ChatGPTにそれを私たちのニーズに合わせて調整させることができます。
Altiumスクリプトの例を提供しているリソースがあります(特にGitHubにホストされているもの)。私はAltiumによって公式に提供されているものを使用します。それらはここで見つけることができます。
\DelphiScript Scripts\SCH\Sch_Scripts.PrjScrの下にあるPlaceAPortの例から始めます。私はChatGPTに非常に単純なタスクを与えました:
ChatGPTは、このリクエストに正確に従ったコードを提供しました。正直なところ、プログラミングに多少慣れていればこれはかなり簡単です。Altiumスクリプティングの文脈的な知識が必要な、もう少し難しいことをやってみましょう。
こちらがChatGPTに対する私の更新されたプロンプトです:
最初の試みで未宣言の識別子により失敗します:
図5: Altium Designerからのデバッガーエラー
それを伝えると、もちろん謝罪します。"未宣言の識別子:名前"のエラーで再び失敗しますが、3回目にはネットラベルが正確に配置されます:
図6: 修正されたスクリプトによって生成された新しいネットラベルとポート
複雑さが増すと、ChatGPTが最初の試みでスクリプトを正しく取得する可能性が低くなることは明らかです。しかし、少し手助けをすることができれば(生成されたコードを理解できると仮定して)、根気よく試みることで、最終的には正しい結果を得ることができます。
この記事では、Altiumスクリプティングの紹介から始め、プロジェクトの作成方法、そしてそれをAltium 365ワークスペースに保存する方法について説明しました。ChatGPTを使用した例を掘り下げ、完全に新しいスクリプトを生成したり、提供されたスクリプトを修正したりしました。その能力を示し、常に正しいわけではないことを明らかにしました。完璧ではありませんが、Altiumスクリプティングの旅を通じてガイドとして機能することは確かです。最も重要なことは、それがないよりはある方が確かに良いということです。