AutoLISP 入門その2

Autolisp

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 のように ! を付けて確認します。

次回は、これらの値を使って実際に梁を描画する方法を紹介します!

AutoLISP入門その1,AutoLISP 入門その2,AutoLISP入門その3,AutoLISP入門その4

コメント

タイトルとURLをコピーしました