BricsCAD® の LISP API で HelloWorld!
少し前に TX API で Hello World の記事を寄稿いただいて掲載しましたが、今回は BricsCAD® の LISP API での HelloWorld を掲載したいと思います。
BricsCAD の LISP API
BricsCAD の LISP API は、AutoLISP® と互換を取る形で実装されてきました。V23 現在、AutoLISP プログラムを移植するという点に関して言えば非常に高い互換性を持っているので、AutoCAD® から AutoLISP 移植プログラムを移植するのは、細々したコマンドの差異や AutoLISP以外の独自実装部分の挙動を調整するレベルで結構簡単にでき、全く変更が必要ないケースもあります。
また、BricsCAD では LISP API をアグレッシブに強化しているため、移植しただけで元CADよりも動作パフォーマンスが上がった!と言うこともあります。
開発に必要なもの
以下のものが必要なので、あらかじめインストールして使用できる状態にしておきます。
BricsCAD (Lite以上)
LISP API は BricsCAD が使える状態であればだれでもすぐに使えます。
(体験版でも試せます。)
コマンドラインから Hello World!
あまり意味はありませんがまずは実行してみるということで、コマンドラインから "Hello World" とメッセージ表示してみます。
次のコードをコマンドラインにコピー&ペーストして実行します。
(alert "Hello World!")
メニューマクロから Hello World!
次に、メニューに追加するコマンドとしてマクロにLISPコードを追加する形で実行してみます。
CUIコマンドから、以下のコードを追加したコマンドに設定します。
(command "_-mtext" "0,0" "" "hello World!" "")
登録したコマンドをリボンなどに配置してポチッと押せば Hello World! の文字列が 0,0 座標に作成されます。
プログラムファイルを読み込んで Hello World!
LISP API は、外部ファイルとして保存してファイルを読み込んで実行することができます。ファイルの拡張子は .lsp です。ファイル自体は単純なテキストファイルですのでメモ帳でも編集できますが、BricsCAD には BLADEという開発環境が搭載されていますので BLADEコマンドを実行します。
(AutoCADを使用していた方は、VLIDE でも実行できます。)
BLADE上で新規作成をして、下記のコードを入力します。
(コピペで使用してもいいですよ。)
(princ "\n---------- ")
(princ "Hello World!")
(princ " ----------\n")
コードを記述したら、[Ctrl]+[Alt]+Cキーを入力して図面ファイルに対してファイルロードしてみます。
コマンドウィンドウに以下のように表示されます。
最後にある " ----------\n" の部分は、LISP のプログラムファイルを読み込んだ際に最後に実行された処理が返り値として表示されるためです。
これを抑制するために最後に引数なしの (princ) を入れたりすることがあります。
LISPから CADのコマンドとして登録することも出来ます。
以下のコードのように defun 関数で、C: の接頭詞をつけて定義すると、コマンドとして読み込まれます。
; ハローワールド のコマンド
(defun C:helloworld ()
(command "_-mtext" "0,0" "" "hello World!" "")
(princ)
)
問題なくファイルが実行されたら、アプリケーションロードコマンドで、ロードするファイルとして登録して利用できます。
以上が、LISP を使用した Hello World! の例となります。
一番古くからサポートされてきているユーザに近い API ですので、実行する方法も色々とあるということでそれぞれの方法を紹介しました。
BricsCAD のLISPはどの程度使えるのか?
BricsCAD 用のアプリケーションを開発する場合、商用アドオンアプリケーションのような本格的なものは C/C++ の BRX や.NET での開発が多いですが、LISP API は歴史的な経緯とソフトウェアの開発に高価な開発環境が不要、アップデートの追従がやりやすい点などがあり、本格的なカスタマイズの入り口としてよく利用されています。Brisys のアプリカタログにも多数の LISPアプリケーションが登録されています。
BricsCADの LISP API は、AutoCAD® の互換という点で、AutoLISP の基本的な関数と拡張された Visual LISP 関数が実装されていて、さらに BricsCAD 独自の非常に多くの強化がなされており、高いパフォーマンスを発揮するので、単純な作図・編集の処理を行う処理は意外と LISP で足りてしまう事も多いです。
また、BricsCAD独自の開発環境 BLADE は LISPプログラムコードの調査やダイアログのプレビューの他、図面データの調査などにも利用できます。
BricsCAD のパワーユーザになるツールとしてCADの知識をより深く知りたい方も活用していただけます。
BricsCAD の体験版で LISP API を試せますので、やってみたい、既存のプログラムを移植したいという方はぜひお試しください。
BricsCAD の他 API での Hello world も募集しています。
情報を共有したいという方がいらっしゃいましたら寄稿していただけますと幸いです。