Vla-get-value
- 構文
- (vla-get-value vla-object ' ' ')
- 機能
- 新しく作成されるクローン オブジェクトのプロパティの現在の値、またはオブジェクト ID を取得する。
- 引数
-
- vla-object … DynamicBlockReferenceProperty、IDPair の VLAオブジェクト
- 戻り値
- バリアント型(DynamicBlockReferenceProperty)、Long_PTR (IDPair)
- DynamicBlockReferenceProperty: プロパティの現在の値。
- IDPair: CopyObjects オペレーション内の新しく作成されたクローン オブジェクトのオブジェクト ID。
- 注意 :
- DynamicBlockReferenceProperty: 指定されたプロパティの値を設定できない場合、エラーは返されない。たとえば、プロパティに有効な値のリストや上限下限範囲が設定されており、かつ指定された値がリストに存在しなかったり範囲外であっても、エラーは返されない。
- IDPair: コピー元オブジェクトのオブジェクト ID は Key プロパティを使用して取得する。
- サンプル
(vl-load-com)
(defun c:Example_Value()
;; 2つの円をコピーメソッドを使って作成し、
;; It then returns the object IDs
;; of the new objects using the Value property and uses the
;; object IDs to remove the new (target) objects
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
;; 円の設定
(setq centerPoint (vlax-3d-point 0 0 0)
radius1 5
radius2 7
radius1Copy 1
radius2Copy 2)
;; Add two circles to the drawing
(setq modelSpace (vla-get-ModelSpace doc))
(setq circleObj1 (vla-AddCircle modelSpace centerPoint radius1))
(setq circleObj2 (vla-AddCircle modelSpace centerPoint radius2))
(vla-ZoomAll acadObj)
;; オブジェクトコピー
;;
;; まず CopyObjectsと互換性のある形式にコピーするオブジェクトを置く。
(setq objCollection (vlax-make-safearray vlax-vbObject '(0 . 1)))
(vlax-safearray-put-element objCollection 0 circleObj1)
(vlax-safearray-put-element objCollection 1 circleObj2)
;; オブジェクトをコピーし、新しいオブジェクトのコレクションを取得(コピー)
(setq retObjects (vlax-variant-value (vla-CopyObjects doc objCollection nil 'IDPairs)))
;; 新しく作成されたオブジェクトを取得し、コピーに新しいプロパティを適用
(setq circleObj1Copy (vlax-safearray-get-element retObjects 0))
(setq circleObj2Copy (vlax-safearray-get-element retObjects 1))
(vla-put-Radius circleObj1Copy radius1Copy)
(vla-put-Radius circleObj2Copy radius2Copy)
(vla-ZoomAll acadObj)
(vla-Regen doc acAllViewports)
;; コピーに使用されるソースオブジェクトのオブジェクトIDを表示
(alert (strcat "最初のターゲットの object ID は: " (itoa (vla-get-Value (vlax-safearray-get-element IDPairs 0)))
"\n次のターゲットの object ID は: " (itoa (vla-get-Value (vlax-safearray-get-element IDPairs 1)))))
;; このキーは、ユーザが手動でソースオブジェクトを選択した場合に有用な
;; ソース・オブジェクトを参照するためにobjectIDtoObjectと共に使用することができる。
;;
;; ここでは、取得したIDからソースオブジェクトを削除
(setq TargetObject (vla-ObjectIdToObject doc (vla-get-Value (vlax-safearray-get-element IDPairs 0))))
(vla-Delete TargetObject)
(setq TargetObject (vla-ObjectIdToObject doc (vla-get-Value (vlax-safearray-get-element IDPairs 1))))
(vla-Delete TargetObject)
(vla-Regen doc acAllViewports)
(alert "ターゲット・オブジェクトが削除されています!")
)
関連事項