・ ユーザー入力を制限・許容する

(initget) は、キーワードを指定する以外にもビットコードを指定することで、入力を制限できます。

  1    : 「Enter」のみの入力を禁止
  2    : 0(ゼロ)の入力を禁止
  4    : 負の値の入力を禁止
  8    : 現在の図面範囲外の点を入力禁止
 32    : ラバーバンドとボックスを破線表示
 64    : getdist 関数へのZ座標への入力を禁止
128    :キーワードに関係なく任意の入力を可能にする(ユーザー入力は文字列で返る)

たとえば、オフセットの距離を入力させる場合
(initget (+ 1 2 4) )
(getdist "\n距離を入力")

ポイントの入力を求め、オプションの入力を可能にする
(initget 128)
(getpoint "\n オプションを入力 または ポイントを指定 :")

    但し、この場合はキーボード入力は文字列で返るし、「Enter」のみの入力も可能なため注意が必要

   下の例は、返り値を (read) でデータタイプを変換してます
   これだと、ポイントの指定と整数すべてが入力可

(defun abc ( / f ret)
  (while (not f) (initget 128)
    (setq ret (getpoint "\n点or整数: "))
    (cond 
      ((listp ret) (setq f t)) 
      ((= (type (setq ret (read ret))) 'int) (setq f t))
      )
    )
  ret
  )

または
(initget  1 "U")
(getpoint "\n オプションを入力 または ポイントを指定 :")

  この場合は、ポイントの指定・"U"の入力のみの可能(Enterのみは不可)

参考文献:「おぉとりすぷの広場」 記事番号<16904> <16928>