Тема: Глюк с блоками и слоями

Обнаружилось следующее: есть 2 слоя, вставляем блок с атрибутом, копируем блок и переносим во второй слой. Удаляем все из первого слоя и пытаемся его удалить. Это не получится, т.к. у блока во втором слое в SEQEND в DXF группе 8 стоит первый слой !

Re: Глюк с блоками и слоями

Без проверок на нюансы:
  (defun offset-blk-on-newlayer
       (newlayer / a atrs blk)
  (vl-load-com)
  (setq blk (vlax-ename->vla-object(car (entsel))))
  ;|(if (and blk (eq (vla-get-hasattributes blk) :vlax-true)) progn |;
  (if
    (setq atrs (car (vlax-invoke blk 'Getattributes)))
    (progn
      (not (vl-catch-all-error-p
         (vl-catch-all-apply (function (lambda ()
      (vla-put-layer atrs newlayer))))))
      (not (vl-catch-all-error-p
         (vl-catch-all-apply (function (lambda ()
      (vla-put-layer blk newlayer))))))
  (vla-update atrs)
  (vlax-release-object atrs)
  (vla-update  blk)
  (vlax-release-object blk)))
  (vla-regen (vla-get-activedocument
           (vlax-get-acad-object)
         )
         acactiveviewport
  )
  (princ)
  )
;;;Call:
;;;  (offset-blk-on-newlayer "ARCH_INT_WALL")
~'0'~

Re: Глюк с блоками и слоями

Спасибо. Как решить проблему я и сам знаю, просто хотелось бы знать мнение уважаемых форумчан - ведь это достаточно серьёзная ошибка ядра АКАДА !

Re: Глюк с блоками и слоями

> zhuravsky
Может быть по этой причине рекомендуют создавать блоки
на слое "0"? И логично, и баг прикрыт...
~'0'~

Re: Глюк с блоками и слоями

Я это знаю. Блоки были созданы на слое "0". Но при вставке то они вставляются на др. слой! Сам блок получает (в DXF 8) текущий слой, его атрибуты - нулевой, а SEQEND -тоже текущий и потом это (имеется ввиду SEQEND) не меняется, даже если блок перемещен в др. слой.

Re: Глюк с блоками и слоями

> zhuravsky
А если прописать DOC_MANAGER_REACTOR или еще как,
чтобы при вставке блока сажать его на слой "0",
потом возвращать текущий слой...

Re: Глюк с блоками и слоями

Реакторы бывает сильно глючат. Я просто написал команду, которая проверяет такие вещи и если надо исправляет.