概要 - マクロにおける DIESEL 式を使用して AutoLISP に応答する

DIESEL 文字列式を使用して、AutoLISP または ObjectARX で定義されたコマンドに応答することができます。

DIESEL 式は、標準コマンド、AutoLISP、ObjectARX ® ルーチン、およびその他のマクロへの応答として使用できる文字列値(テキスト文字列)を返します。

注: AutoLISP および ObjectARX は、AutoCAD LT では使用できません。

DIESEL 式が返す値は文字列で、AutoLISP の getXXX 関数または ObjectARX の acetGetXXX 関数呼び出しに対する応答として使用できます。この機能を利用すれば、メニュー項目で現在の図面状態を評価して、AutoLISP および ObjectARX ルーチンに値を返すことができます。

次のサンプル AutoLISP ルーチンをロードして実行すると、シンボル名、サイズ、および図面内での位置を求めるプロンプトが表示されます。

(defun C:SYMIN()
  (setq sym 
    (getstring 
      "\nEnter symbol name: ")      ; Prompts for a symbol name
  )

  (setq 
    siz (getreal 
          "\nSelect symbol size: ") ; Prompts for a symbol size

    p1 (getpoint 
          "\nInsertion point: ")    ; Prompts for insertion point
  )

  (command "._insert"               ; Issues the INSERT command
           sym                      ; using the desired symbol
           p1 siz siz 0)            ; insertion point, and size

 (princ)                            ; Exits quietly 
)
注: 通常使用する AutoLISP ルーチンには、エラー チェック機能を組み込んで、ユーザ入力の有効性を確認した方がよいでしょう。

上記のサンプルを実行中に、プロンプトの 1 つへの応答として、DIESEL 式を実行するユーザ インタフェース要素をクリックすることができます。たとえば、現在の DIMSCALE の 3/8 の尺度を使用するために、式 $M=$(*,$(getvar,dimscale),0.375) を使用することもできます。

これは、同様の AutoLISP コードでは実行できません。通常、AutoLISP 式が返す値は、getXXX 関数呼び出し(上記のサンプルの getreal 関数など)に対する応答として使用できないからです。