任意入力により、ほとんどの 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")) )
次のコマンド シーケンスに、ARBENTRY と REF を一緒に使用する方法を示します。
コマンド: arbentry
点を指定: (ref)
参照点を入力: 点を指定します
次の点を入力: @1,1,0