拡張レコード(xrecord)オブジェクトは、任意のデータの格納と管理に使用されます。
それらは、標準オブジェクト グループ コード(非拡張グループ コード)の DXF グループ コードで構成され、サポートされている範囲は 1 から 369 です。このオブジェクトは、拡張データ(Xdata)の概念に似ていますが、サイズや順序に制限はありません。
次のコード例では、XRECLIST という名前のカスタム ディクショナリ内の拡張レコード データを作成およびリストします。
(defun C:MAKEXRECORD( / xrec xname )
; create the xrecord's data list.
(setq xrec '((0 . "XRECORD")(100 . "AcDbXrecord")
(1 . "This is a test xrecord list")
(10 1.0 2.0 0.0) (40 . 3.14159) (50 . 3.14159)
(62 . 1) (70 . 180))
)
; use entmakex to create the xrecord with no owner.
(setq xname (entmakex xrec))
; add the new xrecord to the named object dictionary.
(dictadd (namedobjdict) "XRECLIST" xname)
(princ)
)
(defun C:LISTXRECORD ( / xlist )
; find the xrecord in the named object dictionary.
(setq xlist (dictsearch (namedobjdict) "XRECLIST"))
; print out the xrecord's data list.
(princ xlist)
(princ)
)
LISTXRECORD コマンドの結果は、次のようになります。
((-1 . <Entity name: 7ffffb05ee0>) (0 . XRECORD) (5 . 1E6) (102 . {ACAD_REACTORS) (330 . <Entity name: 7ffffb038c0>) (102 . }) (330 . <Entity name: 7ffffb038c0>) (100 . AcDbXrecord) (280 . 1) (1 . This is a test xrecord list) (10 1.0 2.0 0.0) (40 . 3.14159) (50 . 3.14159) (62 . 1) (70 . 180))