Vla-put-translateids
- 構文
- (vla-put-translateids vla-object bool)
- 機能
- deepClone または wblockClone 実行中に、含まれたすべてのオブジェクト ID の変換を指定する。
- 引数
-
- vla-object … XRecordのVLAオブジェクト
- bool … ブール型
- :vlax-True : deepClone および wblockClone 実行中に、含まれた ID を変換する。
- :vlax-False : deepClone および wblockClone 実行中に、含まれた ID を変換しない。
- 戻り値
- nil
- サンプル
(vl-load-com) (defun c:Example_TranslateIDs() ;; XRecord を作成して TranslateIDs をトグルで変更するサンプル (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; 他のXRECORDデータと区別するためユニークな識別子をつける (setq TYPE_STRING 1 TAG_DICTIONARY_NAME "ObjectTrackerDictionary" TAG_XRECORD_NAME "ObjectTrackerXRecord") ;; ディクショナリの XRecord に接続 (setq dictionaries (vla-get-Dictionaries doc)) (setq TrackingDictionary (vl-catch-all-apply 'vla-Item (list dictionaries TAG_DICTIONARY_NAME))) (if (= (type TrackingDictionary) 'VLA-OBJECT) (setq TrackingXRecord (vla-GetObject TrackingDictionary TAG_XRECORD_NAME)) (progn ;; Create the objects that hold this XRecordData (setq TrackingDictionary (vla-Add dictionaries TAG_DICTIONARY_NAME)) (setq TrackingXRecord (vla-AddXRecord TrackingDictionary TAG_XRECORD_NAME)) ) ) ;; 現在の XRecordData (vla-GetXRecordData TrackingXRecord 'temp-XRecordDataType 'temp-XRecordData) ;; 無かったら作成 (setq ArraySize 0) (if (/= temp-XRecordDataType nil) (progn (setq ArraySize (vlax-safearray-get-u-bound temp-XRecordDataType 1)) (setq XRecordDataType (vlax-make-safearray vlax-vbInteger (cons 0 (1+ ArraySize)))) (setq XRecordData (vlax-make-safearray vlax-vbVariant (cons 0 (1+ ArraySize)))) (setq iCount 0) (while (>= ArraySize iCount) ;; エレメントのインフォメーションを取得 (setq DataType (vlax-safearray-get-element temp-XRecordDataType iCount)) (setq Data (vlax-variant-value (vlax-safearray-get-element temp-XRecordData iCount))) (vlax-safearray-put-element XRecordDataType iCount DataType) (vlax-safearray-put-element XRecordData iCount Data) (setq iCount (1+ iCount)) ) ) (progn (setq XRecordDataType (vlax-make-safearray vlax-vbInteger '(0 . 0))) (setq XRecordData (vlax-make-safearray vlax-vbVariant '(0 . 0))) ) ) ;; 現在の TranslateIDs値を取得 (setq currXlate (vla-get-TranslateIDs TrackingXRecord)) (alert (strcat "The current setting of the TranslateIDs is " (if (= currXlate :vlax-true) "True" "False"))) ;; トグルで変更 (vla-put-TranslateIDs TrackingXRecord (if (= currXlate :vlax-true) :vlax-false :vlax-true)) (alert (strcat "The new setting for the TranslateIDs is " (if (= (vla-get-TranslateIDs TrackingXRecord) :vlax-true) "True" "False"))) ;; 戻す (vla-put-TranslateIDs TrackingXRecord currXlate) (alert (strcat "TranslateIDs has been reset to " (if (= (vla-get-TranslateIDs TrackingXRecord) :vlax-true) "True" "False"))) )
関連事項