AutoLISP入門その1,AutoLISP 入門その2,AutoLISP入門その3,AutoLISP入門その4
LISPファイルの保存方法
AutoLISPのルーチンは、拡張子 .lsp
のASCIIテキストファイルとして保存します。
メモ帳などのテキストエディタで以下のコードを入力してください:
(defun testline () ; 関数の定義
(setq a (getpoint "\nEnter First Point : ")) ; 最初の点を取得
(setq b (getpoint "\nEnter Second Point : ")) ; 次の点を取得
(command "Line" a b "") ; 線を描く
) ; 関数終了
このファイルを testline.lsp
として保存し、AutoCADの検索パス内のフォルダに置きます。
AutoCADでの読み込みと実行
AutoCADを開いて以下を入力:
(load "testline")
(testline)
これで関数が実行されます。
AutoCADコマンド風にするには?
関数名の前に c:
を付けることで、コマンドのように使えます:
(defun c:testline ()
(setq a (getpoint "\nEnter First Point : "))
(setq b (getpoint "\nEnter Second Point : "))
(command "Line" a b "")
) ; end defun
これで (testline)
ではなく、testline
と入力するだけで実行できます。
「nil」を消すには?
関数実行時に表示される「nil」を消すには (princ)
を使います:
(defun c:testline ()
(setq a (getpoint "\nEnter First Point : "))
(setq b (getpoint "\nEnter Second Point : "))
(command "Line" a b "")
(princ) ; 実行後のクリーンアップ
)
(princ) ; 読み込み時のクリーンアップ
梁を描く準備
次は、AutoLISPで梁を描くための計算を行います。
ユーザーから以下の値を取得します:
パラメータ名 | 説明 |
---|---|
ip | 挿入点 |
lb | 梁の長さ |
hb | 梁の高さ |
wt | 梁の厚さ |
ep | 梁の厚さ |
nl | 梁の長さ |
nd | ノッチの深さ |
以下は入力ルーチンの例です:
(defun c:testbeam ()
;; ユーザー入力
(setq lb (getdist "\nLength of Beam : "))
(setq hb (getdist "\nHeight of Beam : "))
(setq wt (getdist "\nFlange Thickness : "))
(setq ep (getdist "\nEnd Plate Thickness : "))
(setq nl (getdist "\nLength of Notch : "))
(setq nd (getdist "\nDepth of Notch : "))
;; 挿入点取得
(setq ip (getpoint "\nInsertion Point : "))
(princ)
)
(princ)
このルーチンを読み込んで実行すると、すべての値を入力できます。
変数の値を確認するには、!ip
のように !
を付けて確認します。
次回は、これらの値を使って実際に梁を描画する方法を紹介します!
コメント