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 "ターゲット・オブジェクトが削除されています!") )
関連事項