Vlax-make-variant

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年1月23日 (土) 20:10時点におけるGizmon (トーク | 投稿記録)による版
構文
(vlax-make-variant [value] [type])


機能
バリアント データ タイプを作成する。
引数
  • value : バリアント型のデータに割り当てる値。 指定しないと、バリアント型は vlax-vbEmpty タイプ(データなし)で作成される。
  • type : バリアント型のタイプ。次の定数の 1 つを指定することができる。
  • vlax-vbEmpty (0) データ無し(既定値)
  • vlax-vbNull (1) 有効なデータが含まれない
  • vlax-vbInteger (2) 整数
  • vlax-vbLong (3) 長整数
  • vlax-vbSingle (4) 単精度浮動小数点数
  • vlax-vbDouble (5) 倍精度浮動小数点数
  • vlax-vbString (8) 文字列
  • vlax-vbObject (9) オブジェクト
  • vlax-vbBoolean (11) 真偽値
  • vlax-vbArray (8192) 配列
括弧内に示した整数は、定数の値を示している。CAD の将来のリリースで値が変更されたときのために、引数には整数値ではなく、定数を指定することが推奨される。
type 引数を指定しないと、vlax-make-variant 関数は、指定された value 引数のデータ タイプに基づいて、既定のデータ タイプを割り当てる。それぞれの LISP データ タイプに割り当てられる既定のバリアント型データ タイプは、次のとおり。
  • nil : vlax-vbEmpty
  • :vlax-null : vlax-vbNull
  • 整数 : vlax-vbLong
  • 実数 : vlax-vbDouble
  • 文字列 : vlax-vbString
  • VLA オブジェクト : vlax-vbObject
  • :vlax-true : :vlax-false vlax-vbBoolean
  • バリアント : 初期値のタイプと同じ
  • vlax-make-safearray  : vlax-vbArray


戻り値
作成されたバリアント型データ。


サンプル
vlax-make-variant 関数の既定を使用してバリアント型データを作成する。
(setq varnil (vlax-make-variant))
#<variant 0 >
既定により、初期化していない(vlax-vbEmpty)バリアント型を作成する。次のように呼び出すことにより、明示的に同じことを実現できる。
(setq varnil (vlax-make-variant nil))
#<variant 0 >
整数のバリアント型データを作成し、その値を 5 に設定する。
(setq varint (vlax-make-variant 5 vlax-vbInteger))
#<variant 2 5>
上記のコマンドで、type 引数を指定しないとどうなるかをテストする。
(setq varint (vlax-make-variant 5))
#<variant 3 5>
データ タイプの既定により、vlax-make-variant 関数は、指定された整数値を、整数データ タイプではなく、長整数データ タイプに割り当てた。つまり、数値で作業するときは、作成するバリアント型のタイプを明示的に指定することが重要。
文字列に対しては type 引数を指定しなくても、期待どおりの結果になる。
(setq varstr (vlax-make-variant "ghost"))
#<variant 8 ghost>
配列を含んだバリアント型データを作成するには、配列内のデータのタイプと一緒に、タイプに vlax-vbArray を指定する必要がある。たとえば、倍精度実数の配列を含んだバリアント型データを作成するには、まず、変数の値を倍精度の配列に設定する。
(setq 4dubs (vlax-make-safearray vlax-vbDouble '(0 . 3)))
 #<safearray...>
次に、倍精度の配列を取得し、それをバリアント型データに割り当てる。
(vlax-make-variant 4dubs)
#<variant 8197 ...>

関連事項