Тема: Как преобразовать примитив Атрибут в примитив Текст?

Некоторые добрые люди используют вместо команды DTEXT команду ATTDEF. Внешне выглядит одинаково, а при подгрузке такого файла в качестве внешней ссылки атрибуты не высвечиваются. В EXPRESS команда EXPLODE ATTRIBUTE TO TEXT расчленяет блок и превращает атрибуты, относящиеся к данному блоку, в тексты. Но у меня-то атрибут сам по себе!

Re: Как преобразовать примитив Атрибут в примитив Текст?

Пробуй без проверок на блокировку слоев и т.п.

(defun C:A2T ( / sset item tagstr)
(setq sset (ssget "_X" '((0 . "ATTDEF"))))
(if sset
(setq sset  (vl-remove-if 'listp (mapcar 'cadr (ssnamex sset)))))
(foreach item sset
(setq tagstr (cdr(assoc 2 (entget item)))
      tagstr (list '(0 . "TEXT") '(100 . "AcDbText")(cons 1 tagstr))
      tagstr (append tagstr
             (vl-remove-if '(lambda (x)(member (car x) '(-1 0 1 2 3 5 100 330 70 74)))(entget item)))
      )
(entmake tagstr)
(entdel item))
  (princ))(princ "\nType A2T in comman line")

На всякий случай Как сохранить программный код на своем компьютере?

Re: Как преобразовать примитив Атрибут в примитив Текст?

Спасибо! Работает в 2006 и 2007.

Re: Как преобразовать примитив Атрибут в примитив Текст?

В 2008 тексты не появляются, атрибуты стираются!
А старые версии Автокада пришлось убрать...

Re: Как преобразовать примитив Атрибут в примитив Текст?

в 2008 надо добавить в список 280
(-1 0 1 2 3 5 100 280 330 70 74)