拡張レコード(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))