生成AIでLISPコードを作成する方法|AutoCAD自動化の手順・プロンプト例を解説

 1. はじめに

AutoCADで作図や編集を行っていると、同じ操作を繰り返したり、多数のオブジェクトをまとめて処理したりする場面があります。こうした作業を効率化する方法の一つが、AutoLISPというプログラミング言語を使った自動化です。しかし、プログラミング初心者にとって、コードを一から書くのは難しく感じることもあるでしょう。

そこで注目したいのが、生成AIを活用したAutoLISPコードの作成です。生成AIに「どのような作業を自動化したいか」を自然言語で伝えることで、LISPコードのたたき台を作成したり、コードの処理内容を解説してもらったりできるため、コード作成に取り組みやすくなります。

本記事では、初心者がAutoLISPを学び始める際のモデルケースとして、生成AIを使ってLISPコードを作成する方法を解説します。具体的なプロンプトの作り方から、生成したコードをAutoCADで実行する手順、エラーが発生したときの原因特定と対処法まで紹介します。

この記事の目的は、AutoCAD初心者がAutoLISPを活用した自動化・効率化を体験することです。生成AIをうまく活用すれば、一連のプログラミング作業をよりスムーズに進められます。まずは手軽な内容から始め、慣れてきたら少しずつ複雑なコードにステップアップしてみてください。

2. AutoLISPとは?生成AIでコードを作成できる?

AutoCADには、標準でLISPインタープリタが組み込まれています。AutoLISPを使うと、AutoCAD上のオブジェクトを作成・編集したり、画面上の情報を扱ったりするコマンドを操作できます。こうした仕組みを活用することで、図面の要素をまとめて設定したり、特定の手順を自動化したりできる点が大きな利点です。

また近年は、自然言語による指示(プロンプト)からコードを生成する生成AIが急速に進化しています。生成AIにAutoLISPで実行したい処理を伝えると、基本的なコードや修正案を提示してくれるため、プログラミング初心者でも取り組みやすくなっています。ただし、生成されたコードが必ず正しいとは限りません。人の目で内容や動作を確認し、テストしながら調整していくことが重要です。

2.1. AutoLISPの基本知識

AutoLISPは、LISPプログラミング言語をベースに、AutoCADのカスタマイズや自動化に利用できるよう拡張されたプログラミング言語です。AutoCADにはLISPインタープリタが組み込まれており、AutoLISPを使ってAutoCADの組み込みコマンドへアクセスしたり、図面内のオブジェクトを作成・変更したりできます(参照*1)。

たとえば、AutoLISPで独自のコマンドを作成し、自動的にレイヤーを生成したり、複数のオブジェクトをまとめて処理したりできます。また、ユーザーから入力を受け取り、その内容に応じて処理を実行する対話型のプログラムも作成可能です。初心者のうちは簡単なサンプルコードを試しながら、どのような処理ができるのかを把握するとよいでしょう。

Autodesk公式ではAutoLISPに関するドキュメントも公開されているため、初めて利用する場合は公式資料を確認しながら学習を進めるとよいでしょう(参照*1)。

2.2. 生成AIによるAutoLISPコードの支援

生成AIは、自然言語で指示することでコードを提示したり、そのコードの意味を解説したりできます。具体的には、「図面内に新しいレイヤーを作ってほしい」「既存のオブジェクトを特定のレイヤーに移動したい」などの要望をプロンプトに書くことで、ひな形となるAutoLISPコードを得られます。

さらに、すでに作成されているAutoLISPコードに対して「この処理を追加してください」「エラーが出るので修正してください」などと伝えることで、修正案を提示してもらえます。ただし、AIの提案も万能ではないため、動作確認やエラー・警告のチェックは欠かせません。最初から完璧なコードを期待するのではなく、試作コードを生成してもらい、そこから自分で仕上げていくことが大切です。

生成AIに依存しすぎると、コードの仕組みを理解しにくくなる可能性もあります。学習を兼ねて「なぜこのコードになるのか」をAIに質問しながら作業を進めるとよいでしょう。

3. 生成AIでLISPコードを作成する基本手順

ここでは、AutoCAD初心者が生成AIを活用してAutoLISPコードを作成するまでの流れを解説します。基本的な手順は次のとおりです。

  1. 自動化したい作業を明確にする
  2. 生成AIにプロンプトを入力する
  3. 生成されたLISPコードを確認する
  4. LSPファイルとして保存する
  5. AutoCADへロードしてテストする

以下で、それぞれの手順を詳しく見ていきましょう。

3.1. 自動化したい作業を明確にする

まずは「何を自動化したいのか」を明確にすることが重要です。たとえば、新しいレイヤーを複数作成したいのか、選択したオブジェクトを一括で移動したいのかなど、最終的に達成したいゴールを具体的に書き出してみます。

次に、「処理対象や条件をどうするのか」「実行後にどのような結果にしたいのか」なども明確にすると、その後のプロンプト作成がスムーズになります。見落としやすいポイントとして、ユーザーによる入力が必要かどうかも検討しておくとよいでしょう。

このように事前準備をしておくことで、生成AIにわかりやすい指示を出せるようになり、目的に合ったコードを得やすくなります。

3.2. 生成AIにプロンプトを入力する

次に、明確にした要望を生成AIへのプロンプトにまとめます。プロンプトには、次のような情報を含めるとよいでしょう。 

項目記載する内容
使用環境AutoCADのバージョンなど
目的何を実現したいのか
対象処理するレイヤーやオブジェクトなど
処理内容どのような操作を行うのか
条件同名レイヤーがある場合の処理など
出力形式AutoLISPコードで出力すること

たとえば、「AutoCAD 2023で使用する。図面にレイヤーを3種類自動で作りたい。同名のレイヤーがある場合は処理をスキップしてほしい。AutoLISPコードで書いてほしい」のように、できるだけ具体的に記載しましょう。 

指示が曖昧だと、意図と異なるコードが生成される場合があります。要望を具体的に伝えるほど、目的に合ったコードを得やすくなります。最初のコードが不十分でも、後から追加の指示を与えて修正案を出してもらえるため、何度か試してみるとよいでしょう。

生成AIへ指示する際は、プログラミングの専門用語を必ずしも完璧に使う必要はありません。わかりやすい言葉で構いませんが、具体例を挙げるなど、やりたいことのイメージが伝わるよう工夫すると効果的です。

3.3. 生成されたLISPコードを確認する

生成AIから提示されたコードは、一見正しそうでも動作に問題がある場合があります。構文エラーや変数の定義漏れ、AutoCADのバージョンによる違いなどが原因となることもあります。

そのため、コードで使われている関数や変数が何をしているのか、行ごとに確認することが大切です。生成AIに「この部分はどのような処理をしているの?」と質問しながら確認すれば、コードの仕組みを理解しつつ、正しい動作につなげやすくなります。

加えて、AutoLISPの公式ドキュメントやヘルプを参照しながら確認すると、何が足りないのか、どこが余計なのかを判断しやすくなります。

3.4. LSPファイルとして保存する

生成AIで作成・修正したコードは、テキストエディタやVisual Studio Code(VS Code)などにコピーし、拡張子を「.lsp」にして保存します。Autodeskでは、VS Code上でAutoLISPコードの編集や開発を支援する「AutoCAD AutoLISP Extension」を提供しています(参照*2)。

AutoCAD AutoLISP Extensionを利用すると、AutoLISPコードの編集やデバッグなど、開発を支援する機能を利用できます(参照*2)。生成AIで作成したコードを継続的に修正・管理する場合は、こうした開発環境を活用するのも一つの方法です。

ファイル名は自分で扱いやすい名称にしておくと、複数のAutoLISPファイルを管理しやすくなります。

3.5. AutoCADへロードしてテストする

最後に、保存したLSPファイルをAutoCADにロードし、実際に動かしてみます。AutoCADではLSPファイルをロードして、作成したAutoLISPプログラムを実行できます。Autodesk公式でも、AutoLISPファイルの作成からロード、実行までのチュートリアルが公開されています(参照*3)。

ロード後はコードを実行し、狙い通りに動作するか確認しましょう。エラーが発生した場合は、そのエラーメッセージを控え、生成AIに再度質問してみるのも有効です。想定外の動作が起こることもあるため、初期段階ではテストを繰り返すことが重要です。

初心者は、Autodesk公式の手順と照らし合わせながら進めるとよいでしょう(参照*3)。

4. 生成AIにLISPコードを書かせるプロンプト例

ここでは、生成AIにどのようなプロンプトを入力すればよいのか、具体的な例を三つ紹介します。初心者でも扱いやすい基本的なケースを取り上げますので、必要に応じて内容をカスタマイズしてみてください。

4.1. レイヤーを自動作成するプロンプト例

例として、次のようなプロンプトを用意します。

プロンプト例
「AutoCAD 2023で使いたい。レイヤーを3つ作りたい。もし同名のレイヤーがあれば重複を避ける処理を追加してほしい。AutoLISPで可能なら、それぞれのレイヤーの色も指定したい。」

生成AIにこの要望を伝えると、条件に沿ったコードが提示されます。生成されたコードを確認しながら、「色番号を変えたい」「一つだけ透過度を変えたい」といった条件を追加で指示することで、プロンプトを発展させられます。

あわせて「なぜこの関数が使われているのか」をAIに解説してもらうと、コードの仕組みも理解しやすくなります。

4.2. 選択したオブジェクトを指定レイヤーへ移動する例

もう少し実務的なケースとして、ユーザーが選択したオブジェクトを特定のレイヤーにまとめる場合のプロンプトを考えます。

プロンプト例
「AutoCADで任意のオブジェクトを選択し、そのオブジェクトをまとめて“配管”という名前のレイヤーへ移動してください。もし“配管”レイヤーが存在しなければ、新しく作成して適切な色を設定してください。AutoLISPでコードを書いてください。」

このように事前条件と処理対象を具体的に指示すると、AIはその内容を踏まえたコードを生成します。生成されたコードには、(ssget)など、オブジェクトを選択するためのAutoLISP組み込み関数が含まれる場合があります。

4.3. 既存コードを修正してもらうプロンプト例

生成AIはゼロからコードを作成するだけでなく、既存のコードに処理を追加したり、エラーを修正したりする際にも活用できます。

プロンプト例
「以下のコードに、ユーザー入力を一箇所追加したい。現在はオブジェクトを固定のレイヤーへ移動するようになっているが、ユーザーがレイヤー名を入力する仕組みに変えてください。既存の動作はできるだけ崩さずに修正案を出してほしい。」

こうした修正を依頼することで、生成AIから変更後のコードを提示してもらい、どこを変更したのかも解説してもらえます。これにより、変更内容を追いやすくなり、コードのバージョンを管理しやすくなる点も利点です。

5. 生成したLISPコードが動かないときの対処法

生成AIを使って作成したコードが、思い通りに動かないことは珍しくありません。その場合は、焦らず順番に原因を確認していきましょう。エラーの原因を特定しやすくするには、AutoLISPのエラーメッセージと公式資料を照らし合わせながら確認するのが近道です。

5.1. エラーメッセージを確認する

コードが動かない場合は、まずAutoCADに表示されるエラーメッセージを確認しましょう。メッセージから、「関数名が見つからない」「変数が定義されていない」といった問題を特定できることがあります。

(setq)に誤記があったり、(command)関数の引数が不足していたりするなど、単純なミスが原因の場合もあります。AutoCADのバージョンの違いによってエラーが発生することもあるため、公式サイトや関連ドキュメントで対応状況を確認しましょう。

エラー内容を一つずつ丁寧に確認していくことで、改善策を見つけやすくなります。

5.2. 生成AIへエラー内容とコードを伝える

単に「動きません」と伝えるだけでは、AIも適切な修正案を出しにくくなります。実行環境(AutoCADのバージョンやOS)、使用したコード、期待している動作、実際の結果、表示されたエラー文を具体的に伝えるとよいでしょう。

たとえば、「AutoCAD 2023、Windows 10で使用。下記のコードを実行したところ、LSPのロード時にエラーが出る。エラー文は○○なので、対処法を教えてほしい」といった形で伝えます。AIは与えられた情報をもとに修正案を考えるため、できるだけ具体的に記述することがポイントです。

生成AIが提案した修正案もそのまま採用せず、再ロードや再テストを行いながら確認すると、より適切な解決策に近づきやすくなります。

5.3. エラー処理・デバッグを行う

AutoLISPには、エラーを処理するための機能が用意されています。たとえば、vl-catch-all-applyを使うと関数の実行時に発生したエラーを捕捉でき、vl-catch-all-error-messageでは、そのエラーオブジェクトからメッセージを取得できます(参照*4)。

また、VS CodeのAutoLISP拡張機能を利用すれば、コードの編集やデバッグを行えます(参照*2)。コードの実行状況などを確認しながら、エラーの原因を調べる際にも役立ちます。

エラー処理やデバッグは、最初は難しく感じるかもしれませんが、自動化を実用レベルに近づけるために欠かせない工程です。

生成したLISPコードが動かない場合は、次のポイントを順番に確認してみましょう。 

確認項目確認する内容
エラーメッセージAutoCADに表示された内容を確認する
実行環境AutoCADのバージョンやOSを確認する
コード関数や引数、記述ミスなどを確認する
生成AIへの質問コード、期待する動作、実際の結果、エラー文を伝える
再テスト修正後のコードを再度ロードして動作を確認する

6. 生成AIでLISPコードを作成するときの注意点

生成AIを使ったコード作成は便利ですが、実際の業務で利用する場合は、人の手による最終確認が欠かせません。AIが生成したコードには、誤りや意図しない処理が含まれる可能性があるため、内容を確認し、テストしてから使用することが重要です。

実務で生成AIによるAutoLISPコードを使用する場合は、特に次の点に注意しましょう。

  • テスト用の図面で動作を確認する
    本番業務へ適用する前に、意図した処理が行われるか確認します。
  • 本番図面のバックアップやコピーを作成する
    誤った編集が行われた場合に備えて、元の図面を残しておきます。
  • 実行環境を明確にする
    AutoCADのバージョンやOS、利用中の拡張機能などを確認し、生成AIへのプロンプトにも具体的に記載します。
  • AutoLISPファイルを整理・管理する
    コードが増えてきたらVS Codeなどでファイルを整理し、必要に応じてGitなどを利用して変更履歴やバージョンを管理します。

7. AutoCADでも進む生成AI活用

Autodeskでは、AIを活用してユーザーを支援する「Autodesk Assistant」を展開しています。AutoCADでは、ワークスペースを離れることなくAIが生成するサポートや解決策にアクセスし、AutoCADの機能について質問したり、設計上の課題をトラブルシューティングしたりできます(参照*5)。

また、Autodesk Assistantは、ユーザーのプロンプトから意図を検出し、複数のエージェントへ処理を振り分けるエージェント型AIとして説明されています(参照*5)。一方、Autodesk公式ではAutoCADにおけるAutodesk AssistantをAutoLISPコード生成専用機能として説明しているわけではありません。そのため、本記事で紹介した生成AIによるAutoLISPコードの作成とは分けて理解するとよいでしょう。

8. まとめ

本記事では、AutoCADの自動化に活用できるAutoLISPと、生成AIを使ったコード作成の方法について解説しました。AutoLISPは、AutoCADのさまざまな操作をカスタマイズし、作業の自動化に活用できるプログラミング言語です。

生成AIを使えば、「どのような動作を実現したいか」を自然言語で伝えることで、コードのたたき台を作成できるほか、コードの解説や修正案を提示してもらうことも可能です。ただし、生成されたコードをそのまま使用せず、エラー処理やテストを通じて正しく動作するか確認することが欠かせません。

初めて取り組む方は、レイヤーの作成やオブジェクトの移動など、定型化しやすい処理から始めるとよいでしょう。少しずつ慣れてきたら条件分岐や複雑なコマンド連携にも挑戦し、AutoLISPと生成AIを組み合わせて日々の作業効率化につなげてみてください。

建設・土木業界向け 5分でわかるCAD・BIM・CIMの ホワイトペーパー配布中!

CAD・BIM・CIMの
❶データ活用方法
❷主要ソフトウェア
❸カスタマイズ
❹プログラミング
についてまとめたホワイトペーパーを配布中

<参考文献>
(*1)AutoCAD for Mac Developer and ObjectARX ヘルプ | 概要 - AutoLISP アプリケーション | Autodesk
https://help.autodesk.com/view/OARXMAC/2027/JPN/?guid=GUID-16DC15FC-5329-492E-B66A-401D49CF971F

(*2)AutoCAD Developer and ObjectARX ヘルプ | AutoLISP ファイルを管理する(AutoLISP/VS Code) | Autodesk
https://help.autodesk.com/view/OARX/2027/JPN/?guid=GUID-4F5AB2A0-94E0-4F3D-B5FE-4D374EF961DB

(*3)AutoCAD Developer and ObjectARX ヘルプ | チュートリアル: AutoLISP ファイルを作成、ロード、開く(AutoLISP) | Autodesk
https://help.autodesk.com/view/OARX/2027/JPN/?guid=GUID-3B8EDFF1-A130-434F-B615-7F2EC04322EE

(*4)AutoCAD LT ヘルプ | 概要 - エラー処理(AutoLISP) | Autodesk
https://help.autodesk.com/view/ACDLT/2027/JPN/?guid=GUID-027AD2E0-5AC5-48DA-B451-112B7EECE40F

(*5)Autodesk Assistant | エージェント型 AI パートナー
https://www.autodesk.com/jp/solutions/autodesk-ai/autodesk-assistant