「Vlax-make-variant」の版間の差分
(ページの作成: ; 構文 : (vlax-make-variant [''value''] [''type'']) ; 機能 : バリアント データ タイプを作成する。 ; 引数 :* value : バリアント型のデータに割…) |
編集の要約なし |
||
(同じ利用者による、間の1版が非表示) | |||
1行目: | 1行目: | ||
{{AutoLISP}} | |||
; 構文 | ; 構文 | ||
: (vlax-make-variant [''value''] [''type'']) | : (vlax-make-variant [''value''] [''type'']) | ||
5行目: | 6行目: | ||
; 機能 | ; 機能 | ||
: バリアント データ タイプを作成する。 | : バリアント データ タイプを作成する。 | ||
; 引数 | ; 引数 | ||
19行目: | 21行目: | ||
:::* vlax-vbBoolean (11) 真偽値 | :::* vlax-vbBoolean (11) 真偽値 | ||
:::* vlax-vbArray (8192) 配列 | :::* vlax-vbArray (8192) 配列 | ||
::: 括弧内に示した整数は、定数の値を示している。CAD の将来のリリースで値が変更されたときのために、引数には整数値ではなく、定数を指定することが推奨される。 | ::: 括弧内に示した整数は、定数の値を示している。CAD の将来のリリースで値が変更されたときのために、引数には整数値ではなく、定数を指定することが推奨される。 | ||
::: type 引数を指定しないと、vlax-make-variant 関数は、指定された value 引数のデータ タイプに基づいて、既定のデータ | |||
:::* nil vlax-vbEmpty | ::: type 引数を指定しないと、vlax-make-variant 関数は、指定された value 引数のデータ タイプに基づいて、既定のデータ タイプを割り当てる。それぞれの LISP データ タイプに割り当てられる既定のバリアント型データ タイプは、次のとおり。 | ||
:::* :vlax-null vlax-vbNull | :::* nil : vlax-vbEmpty | ||
:::* :vlax-null : vlax-vbNull | |||
:::* 整数 : vlax-vbLong | :::* 整数 : vlax-vbLong | ||
:::* 実数 : vlax-vbDouble | :::* 実数 : vlax-vbDouble | ||
29行目: | 33行目: | ||
:::* :vlax-true : :vlax-false vlax-vbBoolean | :::* :vlax-true : :vlax-false vlax-vbBoolean | ||
:::* バリアント : 初期値のタイプと同じ | :::* バリアント : 初期値のタイプと同じ | ||
:::* vlax-make-safearray : | :::* vlax-make-safearray : vlax-vbArray | ||
; 戻り値 | ; 戻り値 |
2023年11月20日 (月) 07:26時点における最新版
- 構文
- (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
- type 引数を指定しないと、vlax-make-variant 関数は、指定された value 引数のデータ タイプに基づいて、既定のデータ タイプを割り当てる。それぞれの LISP データ タイプに割り当てられる既定のバリアント型データ タイプは、次のとおり。
- 戻り値
- 作成されたバリアント型データ。
- サンプル
- 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 ...>
関連事項