概要 - 任意のキーボード入力(AutoLISP)

任意入力により、ほとんどの getXXX 関数に、キーワードのように文字列を入力できるようになります。コントロール ビットとキーワードは、最初に受け入れられます。

この機能を使用するアプリケーションは、getXXX 関数のプロンプトに対してユーザが AutoLISP の関数を呼び出せるように書くことができます。任意のキーボード入力を有効にするには、initget 関数でコントロール ビット 128 を使用します。

次のサンプル コードでは、ARBENTRY という名前のコマンドと REF という名前の関数を定義します。任意のキーボード入力が可能になるように設定された ARBENTRY コマンド内の getpoint 関数への応答で REF 関数が使用されます。

(defun C:ARBENTRY ( / pt1)
  (initget 128)                     ; Sets arbitrary entry bit
  (setq pt1 (getpoint "\nPoint: ")) ; Gets value from user.
  (if (= 'STR (type pt1))           ; If it's a string, convert it
    (setq pt1 (eval (read pt1)))    ; to a symbol, try evaluating
                                    ; it as a function; otherwise,
    pt1                             ; just return the value.
  )
)

(defun REF ( )
  (setvar "LASTPOINT" (getpoint "\nReference point: "))
  (getpoint "\nNext point: " (getvar "LASTPOINT"))
)

次のコマンド シーケンスに、ARBENTRYREF を一緒に使用する方法を示します。

コマンド: arbentry

点を指定: (ref)

参照点を入力: 点を指定します

次の点を入力: @1,1,0