概要 - 図形に拡張データをアタッチする(AutoLISP)

拡張データ(xdata)を使用して、任意のタイプの情報を図形上に格納することができます。

図形にアタッチされた xdata には、外部データベースのレコードや図形が追加または修正された日付と時間のスタンプなどがありますが、電話やワークステーションなどの現実世界のアイテムを表す情報を含めることもできます。xdata はユーザには表示されないため、カスタム アプリケーションを使用せずに修正するのは困難です。

注: 図形にアタッチされた xdata は、オブジェクトが現在の図面内でまたは図面間でコピーされるときは保持されます。

次のコード例は、図面に最後に追加された図形に xdata をアタッチする基本的な方法を示しています。次のサンプル コードを実行する前に、図形(線分や円など)を描きます。

; Gets the association list of definition data
; for the last entity.
(setq lastent (entget (entlast)))

; Registers the application name.
(regapp "NEWDATA")

(setq exdata                        ; Sets the variable
  '((-3 ("NEWDATA"                  ; exdata equal to the
    (1000 . "This is a new thing!") ; new extended data—
  )))                               ; in this case, a text
)                                   ; string.

; Appends new data list to entity's list.
(setq newent
  (append lastent exdata)) 

; Modifies the entity with the new definition data.
(entmod newent)

次のコード例は、新しい xdata が図形にアタッチされたことを確認するために使用することができます。

(entget (car (entsel)) '("NEWDATA"))