既にご紹介していますが、AutoCAD 2021 では AutoLISP の開発環境が大きく変わりました。今回は、AutoLISP の歴史を振り返り、AutoCAD 2021 で利用出来るようになった新しい開発方法に言及していきたいと思います。
あらためて AutoLISP とは?
AutoLISP は、AutoCAD のカスタマイズ API として最も 長い歴史を持ち、いまも多くのアプリケーション資産が利用されています。もともと人口知能の研究用に作られた CommonLISP 言語の特徴であるリスト操作を、図形と画層など、CAD 固有情報の関連性を維持しながら操作出来るよう作られた AutoCAD 固有のプログラム言語です。
AutoLISP を利用すると、独自のカスタム コマンドを定義したり、AutoLISP 自身を拡張する関数を作成することが出来ます。過去、DOS、Windows、UNIX、Macintosh(当時名)の複数のプラットフォーム OS をサポートしていた AutoCAD ですが、OS を気にせず、そのまま実行出来た AutoLISP は、とても便利なクロスプラットフォーム開発環境でもありました。AutoCAD R12 からは、AutoLISP のプログラム ファイルと同じ ASCII テキスト形式を持つ DCL 言語も登場し、ダイアログ ボックスを定義、動作をコントロールできるようになっています。
AutoLISP を使用するには、テキストエディタでプログラムを編集して拡張子 .lsp ファイルで保存し、そのファイルを AutoCAD 上にロードするだけです。DOS 版の AutoCAD が主流だった頃、AutoLISP の編集に使うエディタは特に提供されていなかったため、開発者が好みのテキスト エディタが利用されていました。
Windows が主流になった頃、登場した AutoCAD が AutoCAD R14 です。このバージョンでは、AutoLISP の編集、デバッグの機能を持つ Visual LISP エディタが導入されています。この際、Visual LISP という名前を使い始め、AutoLISP を拡張した Visual LISP として、Windows で一般的な COM (Component Object Model) にアクセスできる機能が追加されています。COM は、VBA などが利用する ActiveX オートメーション の基盤技術で、多くのソフトウェアでも採用されています。Visual LISP から COM を使ったプログラムを作成することで、Microsoft Excel、Word といった、COM を使って機能を公開するアプリケーション(COM サーバー) と連携することができます。
Visual LISP エディタは、VBA と同じように AutoLISP 言語を編集したりデバッグすることができる IDE(統合開発環境) です。従来のテキスト エディタでは不可能だったステップ実行、ウォッチ式による変数評価などの機能に加え、DCL 言語で定義されたダイアログ ボックスの評価も可能になりました。また、AutoLISP のソールファイル(.lsp) のコンパイル機能も追加され、単独でロード可能なソースファイル単位のバイナリファイル(.fas) 、DCL リソースファイルを含む複数のソースファイルを1つにまとめたバイナリファイル(.vlx) を作成することも出来るようになっていました。
唯一の欠点は、UNICODE に完全対応していなかった点です。このため、プログラム内の日本語メッセージやデバッグ ウィンドウ出力が文字化けしてしまうことがありました。
そんな AutoLISP ですが、過去の枯れた API になってしまった訳ではありません。ビルド/コンパイル作業が不要であるため、クロス プラットフォームで、そのまま利用可能な唯一の AutoCAD API でもあり、AutoCAD for Mac や Forge の Design Automation API for AutoCAD でも使える「現役の AutoCAD API」という側面も持っています。
AutoCAD 2021 になって、従来の Visual LISP エディタに代わって、Visual Studio Code で AutoLISP の編集やデバッグが可能になりました。
Visual Studio Code とは?
今回、AutoLISP の編集に、Microsoft 社がオープン ソースとして無償で公開している Visual Studio Code(通称、VS Code)を採用し、UNICODE に完全対応出来るようになりました。Microsoft Azure との親和性が高く、JavaScript や Python など、主にクラウド・Web 開発をおこなうための統合開発環境です。
VS Code は、自身を拡張する Extension という仕組みを持っているため、適切な Extension を入手出来れば、クラウドや Web 開発以外でも利用することが出来る、とても柔軟性を持った「エディタ」と言えます。
AutoCAD 2021 の登場にあわせて、オートデスクは AutoCAD AutoLISP Extension (無償)の提供を開始しています。VS Code に AutoCAD AutoLISP Extensionをインストールすると、VS Code 上で AutoLISP プログラムの作成と編集、また、AutoCAD とともにデバッグ出来るようになります。もちろん、ウォッチ式を使った変数の評価など、一般的におこなう開発作業が可能です。つまり、いままでの Visual LISP エディタの代替が出来るわけです。
※ VLIDE コマンドで Visual LISP エディタを利用するか、VS Code を利用するかは、システム変数 LISPSYS で変更することが出来ます。
Visual Studio Code (VS Code)の準備
AutoCAD 2021 をインストール後に VLIDE コマンドを実行すると、Visual Studio Code と AutoCAD AutoLISP Extension のインストールを促すダイアログ ボックスが表示されます。まずは、Visual Studio Code を準備しましょう。
このダイアログ ボックスで「Microsoft Visual Studio Code」右の ダウンロード リンクをクリックすると、https://visualstudio.microsoft.com/ja/ ページが表示されるので、AutoCAD 2021 Windows 版の実行環境に合わせて、[Download Visual Studio Code]ドロップ ダウン メニューから [Windows x64 User Installer] をクリックして、インストーラをダウンロード、画面の指示に従ってインストールしてください。
※ VS Code は、https://azure.microsoft.com/ja-jp/products/visual-studio-code/ からダウンロードすることが出来ます。
もし、AutoCAD 2021 をインストールした環境に、既に Visual Studio Code が存在していると、次のダイアログ ボックスが表示されて、VLIDE コマンドで起動するエディタの選択を促されます。AutoCAD 2021 では、いまのところ、従来の Visual LISP エディタも利用することが出来ますが、特に理由がない限り、Visual Studio Code の利用をお勧めします。
※ VLIDE コマンドで起動するエディタは、LISPSYS システム変数で、いつでも変更することが出来ます。
Visual Studio Code のインストール直後は、起動後に表示されるユーザインタフェースが英語のままになっています。日本語表示に切り替えるには、[View] メニューから [Command Palette ...] を選択して、プロンプト下に候補から configure display language を見つけてクリックするか、直接 configure display language を入力してください。
[Select Display Launguage] と表示されたら、[Install additional languages...] を選択してください。その後、画面に左側に一覧表示される言語パックの「Japanese Language Pack for Visual Studio Code」して、表示されるページ内の [Install] から日本語言語パックをインストールしてください。
VS Code を再起動すると、ユーザインタフェースが日本語表示になるはずです。
AutoCAD AutoLISP Extensionの準備
VS Code で AutoCAD 2021 とともに AutoLISP プログラムの開発、デバッグを進めるには、AutoCAD AutoLISP Extension が必要です。AutoCAD AutoLISP Extension は、https://marketplace.visualstudio.com/items?itemName=Autodesk.autolispext からダウンロードしたり、VS Code 内から直接、ダウンロードとインストールをおこなうことが出来ます。
VS Code 内で AutoCAD AutoLISP Extension をインストールするには、画面左の「Extensions」をクリックしてから(①)、AutoCAD AutoLISP と入力して(②)、リストされてきた AutoCAD AutoLISP Extension を選択後(③)、表示されるページ内の [Install] でインストールをしてください(④)。
Visual Studio Code を使った AutoLISP 開発
Visual Studio Code と AutoCAD AutoLISP Extension をインストール後、 AutoCAD 2021 を起動して VLIDE コマンドを実行すると、次のダイアログが表示されるはずです。
これは、AutoCAD AutoLISP Extension がデバッグ作業時に AutoCAD をコントロールする許可を求める画面なので、許可する意味で [開く(O)] ボタンをクリックしてください。VS Code が表示され、次のダイアログが表示されるはずです。
VS Code を使った開発作業は、このメッセージのとおり、VS Code 上で開いた AutoLISP ファイルや、VS Code で新規ファイルとして作成した AutoLISP ファイルのデバッグ実行が可能です。
※ 現在、メニュー名が [デバッグ] から [実行] に変わっています。
※ 新規作成した AutoLISP ファイルは、一旦、拡張子 .lsp で保存する必要があります。
VS Code で可能なのは、おおまかに次の内容です。
-
- オートコンプリート(自動補完)やコード スニペットなどの機能を使用して、.lsp ファイルを作成および修正
- .lsp ファイル内のすべてまたは選択したソース コードを整形
- .lsp ファイルのデバッグ時にウォッチ式やブレークポイントを追加
- デバッグ コンソールで AutoLISP コード文や AutoCAD コマンドを実行
下記に、VS Code を使ったデバッグの様子を動画にしましたので、ご確認ください。
編集した AutoLISP プログラムは、新しく用意された MAKELISPAPP[LISP アプリを作成] コマンドを使って、配布に適したアプリケーション ファイル(.vlx ファイル)にコンパイルすることが出来ます。コンパイル時には、複数の AutoLISP ファイル(.lsp ファイル)を 1 つの .vlx ファイルにすることが出来るだけでなく、同時にバイナリ ファイル化されるので、ソース コードを保護することも出来ます。なお、コンパイル時には、従来通り、ウィザードが用意されています。
VS Code の利用には、オンライン ヘルプ「Visual Studio Code を使用する(AutoLISP/VS Code)」もご確認ください。
By Toshiaki Isezaki
コメント
コメントフィードを購読すればディスカッションを追いかけることができます。