2009年12月25日金曜日

AutoLISP(基本)(AutoCAD 2010)

AutoLISPを使用してプログラムを作成することにより、新しいコマンドを作成したり、システム変数などの設定を変更したりなどいろいろなカズタマイズを行うことができます。


AutoLISP 関数
AutoLISP は、AutoLISP 関数を実行して、いろいろな動作を実行します。
多くの AutoLISP 関数で、どのようなことを実行できるかを知っておくことは、AutoLISP でプログラムを作成する際に非常に重要となります。

オンラインヘルプの「AutoLISP リファレンス」の「AutoLISP 関数」において、各 AutoLISP 関数においてどのようなことができるかなどの詳細を確認することができます。

「AutoLISP リファレンス」は以下の手順で確認することができます。

コマンド ラインでの実行
AutoCAD のコマンド ラインに AutoLISP 関数を入力して実行することができます。
例えば、(alert "テスト") とコマンド ラインに入力すると、以下のダイアログが表示されます。

LISP ソース ファイル(.lsp ファイル)の作成
コマンド ラインに AutoLISP 関数を入力して実行することは分かりましたが、何回も繰り返し実行したり、複数行ある AutoLISP を毎回コマンドラインに入力して実行することは現実的ではありません。
そのため、通常は LISP ソース(.lsp ファイル)を作成します。
LISP ソース ファイルは、テキスト ファイルですので、メモ帳など任意のエディタを使用して作成することができます。
LISP ソース ファイルに記述する内容は、コマンド ラインのときと同様に AutoLISP 関数を記述します。

LISP ソース ファイルの実行方法
では、LISP ソース ファイルはどのように実行するのでしょう???
実行方法はいくつかありますが、以下で手順を確認することができます。


コマンドとして実行する方法
LISP ソース ファイルの実行方法は分かりましたが、前述の方法で実行するのはちょっと面倒です。
そこで、コマンドとして作成したプログラムを実行することができますので、その方法を紹介します。
その方法とは、defun 関数を使用する方法です。
例えば、以下の内容を記述した LISP ソース ファイルを作成しロードすると、TEST という新しいコマンドを使用できるようになります。

(defun C:TEST ()
    (alert "テスト")
)

以下の手順で、test02.lsp をロードして TEST コマンドが実行できるようになります。


すべての図面において defun 関数で定義したコマンドを実行する方法
前述のように test02.lsp をロードすると、test02.lsp で defun 関数を使用して定義している TEST コマンドが使用できるようになります。
しかし、これは test02.lsp をロードした図面上のみでのことです。
そのため、他の図面において TEST コマンドを実行するときは、再度その図面でロードを行う必要があります。
それって面倒ですよね。
そのために、APPLOAD[アプリケーションロード] コマンドにおいて「スタートアップ登録」という機能があります。
「スタートアップ登録」の設定方法は、以下の通りです。