2. Autolisp

○多くのサイトでLISPの説明はされているので
 ここではポイントだけ説明します。
 
a)概要
 まずは下記を参照して下さい。

(DEFUN C:TEST ()
;***********関数(コマンド)挿入位置**********
    (COMMAND "LINE" "0,0" "1000,0" "")
;*********************************************
);LIST END

 AUTOCADのLINEコマンドがあるのがわかりますか?
 実はこれでもLISPで、実行すると座標 0,0 から 1000,0への線を引きます。
 描画に関する多くのLISPは処理過程でCAD上から座標を取得したり
 DBFを読みこんだりして関数処理を行い、
 最終的にコマンドを実行させているだけなのです。

 
b)ポイント
 システム関数"CMDECHO"を非表示にすると図形描画が速くなり、
 コマンド処理数が多くなるほどその効果は表れます。
 またLISP作成過程だと逆に表示させている方が
 エラー箇所を把握しやすくなります。
 意外と忘れがちなのが"OSNAP"の解除。
 OSNAPはLISP処理にも効果が出て、
 描画に支障が出ますので解除をお忘れなく。
 下はa)にこれらの注意点を付加したものです。

(DEFUN C:TEST ()
 (SETQ YBLIP (GETVAR "BLIPMODE"))
 (SETQ YCMDE (GETVAR "CMDECHO"))
 (SETVAR "BLIPMODE" 0);マーカーを非表示にする
 (SETVAR "CMDECHO" 0);コマンドラインのLISP処理を非表示にする
;***********関数(コマンド)挿入位置**********
   (COMMAND "OSNAP" "NONE");図形描画直前にはOスナップを解除のこと
   (COMMAND "LINE" "0,0" "1000,0" "")
;*********************************************
 (SETVAR "BLIPMODE" YBLIP)
 (SETVAR "CMDECHO" YCMDE)
 (COMMAND "OSNAP" "INT,ENDP,CEN");Oスナップの設定(復活例)
);LIST END

 
c)EXCELとの連係
 解析結果などからEXCELで描画したいコマンドラインを作成し、
 b)で示した”関数(コマンド)挿入位置”に入れ込めば完了です。
 でも単に描画だけでなく、画層分けなども設定し
 使いやすいように心がけましょう。
 経験上、一度に処理できるコマンド数は約14000だったので
 それ以上になる場合は分割して実行して下さい。

 コマンド作成例はEXCELで説明します。


back

技術メモ Autocadに戻る