Dictadd

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(dictadd ename symbol newobj)


機能
指定されたディクショナリに非グラフィカルオブジェクトを追加する。
引数
  • ename : オブジェクトが追加されるディクショナリの名前。
  • symbol : ディクショナリに追加するオブジェクトのキー名。 symbol は、ディクショナリ内の既存の項目と重複しない独自の名前でなければならない。
  • newobj : ディクショナリに追加する非グラフィカル オブジェクト。
一般的な規則として、ディクショナリに追加する各オブジェクトは、ディクショナリ内で重複してはいけない。
これは、グループ ディクショナリにグループ オブジェクトを追加する場合、特に問題となる。異なるキー名で同じグループ オブジェクトを追加すると、グループ名が重複することとなり、dictnext 関数が無限ループに陥る可能性がある。
戻り値
ディクショナリに追加されたオブジェクトの図形名。


サンプル
次の例では、オブジェクトを作成し、それらを名前の付いたオブジェクト ディクショナリに追加する。
ディクショナリ項目リストを作成する。
(setq dictionary (list '(0 . "DICTIONARY") '(100 . "AcDbDictionary"))) ((0 . "DICTIONARY") (100 . "AcDbDictionary"))
entmakex 関数を使用して、ディクショナリ オブジェクトを作成する。
(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>

関連事項