Vla-get-key
- 構文
- (vla-get-key vla-object )
- 機能
- CopyObjects オペレーション内のソース オブジェクトのオブジェクト ID。
- 引数
-
- vla-object … IDPair のVLAオブジェクト
- 戻り値
- 元のオブジェクトのオブジェクト ID
- MEMO:新しく作成されたクローン オブジェクトのオブジェクト ID は、Value プロパティを使用して取得する。
- サンプル
(vl-load-com) (defun c:Example_Key() ;; 2 つの円オブジェクトを作成し、CopyObjects メソッドを使用して、それらをコピーする。 ;; キー プロパティを使用してソース オブジェクトのオブジェクト Id を返すサンプル (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) ;; 円を2つ作成 (setq modelSpace (vla-get-ModelSpace doc)) (setq circleObj1 (vla-AddCircle modelSpace centerPoint radius1)) (setq circleObj2 (vla-AddCircle modelSpace centerPoint radius2)) (vla-ZoomAll acadObj) ;; コピー (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 "最初のソースオブジェクト ID は: " (itoa (vla-get-Key (vlax-safearray-get-element IDPairs 0))) "\n2つめのソースオブジェクト ID は : " (itoa (vla-get-Key (vlax-safearray-get-element IDPairs 1))))) ;; キーは、ユーザーが手動でソース オブジェクトを選択した場合に便利で、 ;; ソース オブジェクトを参照する objectIDtoObject を使用できる。 ;; ;; 取得した ID からソース オブジェクトを削除。 (setq SourceObject (vla-ObjectIdToObject doc (vla-get-Key (vlax-safearray-get-element IDPairs 0)))) (vla-Delete SourceObject) (setq SourceObject (vla-ObjectIdToObject doc (vla-get-Key (vlax-safearray-get-element IDPairs 1)))) (vla-Delete SourceObject) (vla-Regen doc acAllViewports) (alert "ソース オブジェクトを消しました!") )
関連事項