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")))
)
関連事項