・ (entlast) 関数で取得できるのはデーターベースの最後のオブジェクトではない
よく (entlast)
で最後に追加された図形名を取得して、それ以後に作成した図形をグループ化したり、選択セットにしたりすることがあります。
しかし、マニュアルを読むと書いてあるのですが (entlast)
で取得できるのは、最後に追加された主図形の図形名であって、必ずしも、データベースの一番最後ではないのです。
つまり、(entnaxt (entlast)) がnil とは限らないということです。
たとえば、POLYLINE を作図した直後 (entlast)
で取得できるのは、POLYLINEの図形名であって、SEQEND
ではないのです。
とくに、(entlast)
で取得した図形名の次にテンポラリな図形を作成して、後で削除するような場合には、十分な注意が必要です。
ちなみに、データベースの最後を取得したければ
(if (setq en_last (entlast)) (while (entnext en_last);従属図形がある場合その最後の図形名を取得; (setq en_last (entnext en_last)) ) )