dictadd (AutoLISP)

指定されたディクショナリに非グラフィカル オブジェクトを追加します。

サポートされているプラットフォーム: Windows および Mac OS

構文と要素

(dictadd ename symbol newobj)
ename

タイプ: ads_name

オブジェクトが追加されるディクショナリの名前。

symbol

タイプ: 文字列

ディクショナリに追加するオブジェクトのキー名。symbol は、ディクショナリ内の既存の項目と重複しない独自の名前でなければなりません。

newobj

タイプ: ads_name

ディクショナリに追加する非グラフィカル オブジェクト。

戻り値

タイプ: ads_name

ディクショナリに追加されたオブジェクトの図形名。

注意

一般的な規則として、ディクショナリに追加する各オブジェクトは、ディクショナリ内で一意でなければなりません。これは、グループ ディクショナリにグループ オブジェクトを追加する場合、特に問題となります。異なるキー名で同じグループ オブジェクトを追加すると、グループ名が重複することとなり、dictnext 関数が無限ループに陥る可能性があります。

注: タイトル、分類、作成者、キーワードなどの図面のプロパティには、IAcadSummaryInfo インタフェースでアクセスできます。このインタフェースには、AutoCAD のオブジェクト モデルの Document オブジェクトのプロパティとしてアクセスすることができます。

次の例では、オブジェクトを作成し、それらを名前の付いたオブジェクト ディクショナリに追加します。

ディクショナリ項目リストを作成します。

(setq dictionary (list '(0 . "DICTIONARY") '(100 . "AcDbDictionary")))
((0 . "DICTIONARY") (100 . "AcDbDictionary"))

entmakex 関数を使用して、ディクショナリ オブジェクトを作成します。

(setq xname (entmakex dictionary))(setq xname (entmakex dictionary))
<Entity name: 1d98950>

ディクショナリを、名前の付いたオブジェクト ディクショナリに追加します。

(setq newdict (dictadd (namedobjdict) "MY_WAY_COOL_DICTIONARY" xname))
<Entity name: 1d98950>

拡張レコード オブジェクト リストを作成します。

(setq datalist (append (list '(0 . "XRECORD")
                                 '(100 . "AcDbXrecord"))
                                 '((1 . "This is my data") (10 1. 2. 3.) (70 . 33))))
((0 . "XRECORD") (100 . "AcDbXrecord") (1 . "This is my data") (10 1.0 2.0 3.0) (70 . 33))

拡張レコード オブジェクトを作成します。

(setq xname (entmakex datalist))
<Entity name: 1d98958>

拡張レコード オブジェクトをディクショナリに追加します。

(dictadd newdict "DATA_RECORD_1" xname)
<Entity name: 1d98958>