・ (entmake) 関数でオブジェクトを複製する場合の注意点

マニュアルには (entmake) のところに以下のように書かれています。

elist 引数は、entget 関数が返すのと同じ形式の図形定義データのリスト。 elist 引数には、図形の定義に必要な情報がすべて含まれていなければなりません。 必要な何らかの定義データが抜けていると、entmake 関数は nil を返し、その図形は無効になります。 省略可能な定義データ(画層など)を省略した場合、entmake 関数は既定値を使用します。

何が省略可能な定義データなのかは試してみないとわからない。(とりあえず、DXFでデフォルト値のあるものは省略可能らしい)
画層・色・線種・線種尺度などは省略した場合、現在の作図モードでオブジェクトがつくられるらしい。
これは、たいへんありがたいことなのだが、たまに不都合もあるので注意してください。

たとえば、ブロックを定義しなおすために、(entget) した図形定義データのリストを、そのまま (entmake) に渡した場合を考えてみると。
色・線種などが BYLAYER の場合、(entget) した図形定義データのリストには、コード 62番・6番は存在しない。
このリストを (entmake) にそのまま渡すと、現在の作図モードでオブジェクトが作られるため、元のオブジェクトとは違った色や線種となる可能性があるのです。

これを避けるには、定義データリストに (60 . 256) (6 . "BYLAYER") を追加するか、作図モード(CECOLOR・CELTYPE)を(entmake) 実行時にBYLAYERに変更しておく必要があります。