実行
コマンド
command / command-s
AutoCADコマンドの実行。
引数:コマンド、コマンドオプション、”” 、pause
戻り値: –
例: コマンド”LINE”を実行、1点目は0,0を指定、2点目はユーザー入力(pause)、エンターキー(空白キー)でコマンドを終わる。
(command-s "._LINE" "0,0" pause "")
vl-cmdf
AutoCADコマンドの実行。
command/command-s と違い、コマンド実行前に引数が評価され、引数にエラーがある場合はコマンドを実行しない。
引数:コマンド、コマンドオプション、”” 、pause
戻り値: –
例: コマンド”LINE”を実行、1点目は0,0を指定、2点目はユーザー入力(pause)、エンターキー(空白キー)でコマンドを終わる。
(vl-cmdf "._LINE" "0,0" pause "")
条件式
if
条件に応じてプログラムを実行
引数:条件式、条件式がTの時にするプログラム、条件式がnilの時にするプログラム(省略可)
戻り値: 実行されたプログラムの戻り値
例: (getreal)で数値をユーザー入力。数値が10なら”10です”、それ以外なら”10以外です”とアラートボックスに表示する
(if (= (getint) 10)
(alert "10です")
(alert "10以外です")
)
progn
複数のプログラムをひとつのセットにする。
関数 if など、実行できるプログラムは一つだけれど複数実行したいとき、prognを使ってひとまとめにする。
引数:実行したいプログラム
戻り値: 最後のプログラムの戻り値
例: (getreal)で数値をユーザー入力。数値が10なら”10です”、それ以外なら”10以外です”と、コマンドラインに表示させて、アラートボックスにも表示する。
(if (= (getint) 10)
(progn
(princ "10です")
(alert "10です")
)
(progn
(princ "10以外です")
(alert "10以外です")
)
)
cond
条件に応じてプログラムを実行
引数:条件式、条件式がTの時にするプログラム
戻り値: 実行されたプログラムの戻り値
例: (getreal)で数値をユーザー入力し変数aに代入。 aに入った数値が10なら”10です”、 20なら”20です” 30なら”30です”、それ以外なら”それ以外です”とアラートボックスに表示する
(setq a (getreal))
(cond
((= a 10)(alert "10です"))
((= a 20)(alert "20です"))
((= a 30)(alert "30です"))
( t (alert "それ以外です"))
)
=
複数の引数がすべて同じならTを戻す。
引数:同じ値かどうか調べたい数値、文字列
戻り値: 同じならT、一つでも違うものは入っていればnil
例: 10と5+5が同じ値か調べる
同じ値なのでTが戻ります。
(= 10 (+ 5 5))
例: 文字列Abcとabcが同じ値か調べる
大文字小文字は違う値になるので、nilが戻ります。
(= "Abc" "abc")
/=
複数の引数に異なる値があればT、すべて同じならnilを戻す。
引数:同じ値かどうか調べたい数値、文字列
戻り値: 一つでも違うものは入っていればT
例: 10と5+5が同じ値か調べる
同じ値なのでnilが戻ります。
(/= 10 (+ 5 5))
例: 文字列Abcとabcが同じ値か調べる
大文字小文字は違う値になるので、Tが戻ります。
(/= "Abc" "abc")
>
2つの引数のうち、左の引数の値が大きければTを戻す。
引数:2つの数値
戻り値: 左の数値の方が大きければT、そうでなければnil
例:
(> 10 5)
T
(> 10 10)
nil
(> 5 10)
nil
>=
2つの引数のが同じか左の引数の値が大きければTを戻す。
引数:2つの数値
戻り値: 同じ、左の数値の方が大きければT、そうでなければnil
例:
(>= 10 5)
T
(>= 10 10)
T
(>= 5 10)
nil
<
右の引数の値が大きければTを戻す。
引数:2つの数値
戻り値: 右の数値の方が大きければT、そうでなければnil
例:
(< 10 5)
nil
(< 10 10)
nil
(< 5 10)
T
<=
2つの引数のが同じか右の引数の値が大きければTを戻す。
引数:2つの数値
戻り値: 同じ、右の数値の方が大きければT、そうでなければnil
例:
(<= 10 5)
nil
(<= 10 10)
T
(<= 5 10)
T
null/not
引数の値がnil かどうか調べる。
引数:Tかnilか調べたい変数、条件式、など。
戻り値:引数の値がnilならT Tならnil
例:(= 1 2) の値がnilかどうか調べる。1と2は違うので(= 1 2)はnilなので戻り値はT
(null (= 1 2))
T
(not (= 1 2))
T
wcmatch
文字列がパターンと合っているかどうか調べる。ワイルドカードが使用できる。大文字小文字も区別する。
引数:文字列 パターン
戻り値: 文字列がパターンに合っていればT、そうでなければnil
例:
(wcmatch "abc" "abc")
T
(wcmatch "abc" "a*")
T
(wcmatch "abc" "a@c")
T
繰り返し
repeat
指定した回数、プログラムを繰り返す。
引数:繰り返す数(数値)、繰り返したいプログラム
戻り値: 実行したプログラムの最後の戻り値
例: 変数a に0を代入後、aに1を足すのを10回繰り返す。
(setq a 0)
(repeat 10 (setq a (1+ a)))
while
引数の条件式がTの間、プログラムを繰り返す。
引数:条件式、繰り返したいプログラム
戻り値: 実行したプログラムの最後の戻り値
例: 変数a に0を代入後、aが10になるまでaに1を足すのを繰り返す。
(setq a 0)
(while (> 10 a) (setq a (1+ a)))
foreach
リストの値を順々に引数にして同じプログラムを繰り返す。
引数:変数、変数に順番に入れたい値のリスト
戻り値: 実行したプログラムの最後の戻り値
例: 変数a に0を代入後、1、2、3、4を順番に足していく
(setq a 0)
(foreach n (list 1 2 3 4)
(setq a (+ n a))
)
AutoCAD 設定変更
setvar
システム変数の値を変更
引数:システム変数名(文字列)、新しい値
戻り値: 新しく設定した値
例: 現在の画層(システム変数 CLAYER)を”0″にする
(setvar "CLAYER" "0")