概要 - マクロ内で AutoLISP を使用する

AutoLISP を使用するコマンドを作成するのは、プログラムのカスタマイズ機能を使用するための高度な方法です。

AutoLISP の変数や式を使用して、複雑なタスクを行うマクロを作成することができます。プログラムは CUI/CUIx ファイルをロードするときに、同じ場所にある同じ名前の MNL ファイルもロードします。MNL ファイルに AutoLISP コードを配置することは、マクロ内で使用できるカスタム コマンドをロードする効率的な方法です。

注: Windows の場合のみ、[ユーザ インタフェースをカスタマイズ] (CUI)エディタで、ロードする追加の AutoLISP ファイルを指定できます。AutoLISP を使用するコマンドを作成するのは、プログラムのカスタマイズ機能を使用するための高度な方法です。実験と練習を重ねることにより、この機能を効果的に使用できるようになるでしょう。

値を事前設定する

次の例は、ブロックを挿入するために使用される 3 つのコマンド マクロで構成されています。

コマンド マクロは、窓の幅を求めるプロンプトを表示します。

^C^C^P(setq WINWID (getreal "\nEnter window width: ")) ^P

コマンド マクロは、壁の厚さを求めるプロンプトを表示します。

^C^C^P(setq WALLTHK (getreal "\nEnter wall thickness: ")) ^P

コマンド マクロは、挿入位置と回転角度を求めるプロンプトを表示し、"window" という名前のブロックを挿入します。

^C^C_INSERT window XScale !WINWID YScale !WALLTHK

ブロックの X 軸は現在の窓の幅になり、Y 軸は現在の壁の厚さになります。

グリップのサイズを変更する

この例には、システム変数 GRIPSIZE の現在の値を増加または減少させる 2 つのコマンドのマクロが含まれています。

コマンド マクロは、システム変数 GRIPSIZE の値を 1 大きくします。

^P(setvar "gripsize"(1+ (getvar "gripsize")))(redraw)(princ)

コマンド マクロは、システム変数 GRIPSIZE の値を 1 小さくします。

^P(setvar "gripsize"(1- (getvar "gripsize")))(redraw)(princ)

これらのコマンド マクロに有効性のチェックを追加する場合、システム変数 GRIPSIZE で 0 より小さい値および 255 より大きい値を設定することはできません。

ユーザ入力を要求する

次の例は、ユーザに 2 つの点の入力を要求し、指定された 2 点を対角頂点とする長方形のポリラインを描きます。

^P(setq a (getpoint "Enter first corner: "));\+
(setq b (getpoint "Enter opposite corner: "));\+ 
pline !a (list (car a)(cadr b)) !b (list (car b)(cadr a)) c;^P
プルダウン メニュー項目に割り当てられているマクロを呼び出す(Windows のみ)

次の構文を使用して、プルダウン メニュー項目のマクロをプログラムで実行することができます。

(menucmd "Gcustomizationgroup.element_ID=|")

旧形式の構文は、メニュー項目がプログラムのメニュー バーに存在するメニューの一部であり、使用可能である場合にのみ動作します。