AutoCAD / AutoLISP : VLISP と VS Code を比べてみた
AutoCAD 2021 から Auto LISP プログラムの開発に Visual Studio Code が使える様になった。最近はAutoCADのカスタマイズをすることが無く、この機能を試す機会がなかった。AutoCAD Forum でカスタマイズに関する質問があったので、ちょうど良い機会と試してみた。
Visual Studio Code での AutoLISP 開発
これは、オートデスク社のBlog の記事が詳しい。
Visual Studio Code を使った経験があれば、AutoCAD AutoLISP Extension を実装するのは簡単だと思う。実装手順は、Blogの記事内でも説明をしているので参考にするのが良い。ただ、実際にコーディングしてAutoCAD上で走らせるには、AutoLispの開発経験があったほうが良いと思う。でないと、プログラムをAutoCADにLoadするのが、ピンと来ないかもしれない。その場合、チュートリアル: AutoLISP ファイルを作成、ロード、開く(AutoLISP) が用意されているので、それを参照すると良い。
今まで何を使っていたかというと、Visual LISP という開発環境だ。こちらは、AutoCADに組み込まれている。
Visual LISP
こちらは、Auto LISPを使った開発専用のIDE ( Integrated Development Environment/統合開発環境 ) だ。最初は慣れないが、特にLISPでの開発で必要な、文法チェック、対応する括弧の表示とか、コードの整形、コードの色分けなどの機能がちゃんと用意されている。
唯一残念なのが、日本語だ。デフォルトではフォントが日本語に対応していないので、文字化けをおこす。対応方法はこちら
VS Code と VLISP の比較
まず、VS Code。文法チェック、対応する括弧の表示とか、コードの整形、コードの色分けなど、一通りの機能はついている。ただ、コードの整形は図の通りで、括弧ごとに改行するような整形オプションは用意されていない。
デバッグも、ブレイクポイントの設定、ウォッチとかも特に悩まずに作業ができる。当たり前だが、日本語も普通に入力できる。
こちらは、VLISP。VS Codeで書いたプログラムをそのまま開いたら、日本語が文字化け。ただ、注釈だけなので実際のコードには問題は無い。
整形結果が違う。個人的には、VLISPの方が分かりやすくて好き。特に
(setq FilterList
'((-4 . "<OR")
(0 . "LWPOLYLINE")
(0 . "LINE")
(-4 . "OR>")
)
と、いう部分。これで、LWPOLYLINとLINEのどちらか、というフィルタを表しているが、VS Codeだと意識して改行しておかないといけない。些細な手間だが。
結論
ビジュアルはVS Codeの方が映えるのが良いが、使い勝手はほぼ同じ。自分としては、従来通りVLISPで良いと思った。ただ、VS Codeに慣れている人だったら、わざわざVLISPにする必要も無いと思う。
※元のVLISPの環境に戻そうと思ったら、戻し方を忘れていた。開発環境を開くのはどちらも VLISP コマンドだった。違うコマンドにすれば良いのに。
環境を変更するには、LISPSYS (システム変数) (また忘れると思うのでここに書いておく)
おまけ
AutoLISP について深く調べたい人は、こちらのサイトをお勧めする。
Manual Chair というちょっと皮肉なネーミングだけれど、参考になる。