Тема: подсчитать измененные атрибуты блока

Извините , если плохо сформулировала тему- просто как по-другому сказать и не знаю.
Вставляю в нужные мне места блок с изменяемым атрибутом, значение по умолчанию Х
Затем некоторые Х меняю на 1, некоторые на 2, некоторые на 3, меняю чертеж много раз и в результате запутываюсь окончательно- сколько 1, 2, 3 у меня на чертеже.
Как это подсчитать одним махом ? Если выбераю это все selsim- которым все время пользуюсь-

лирическое отступление- спасибо тому,
кто это придумал- приложение выше всяких похвал

выбираются все блоки с атрибутом Х, не зависимо от того, на какое значение я это Х поменяла.
Рылась неделю, ответа найти не смогла, хотя явно ответ на такую простую задачу где-то есть.

Re: подсчитать измененные атрибуты блока

Попробуй вариант для 1 атрибута. Клик по блоку и получаешь сколько блоков с таким атрибутом.
(defun c:bbya( / blc sp_bl imja filtr nameset nm_at_o 
                 sp_at_o tx_at_o nm_bl nm_at sp_at tx_at
                 kol setlength i namrun spirun l_run )
(setq blc (car (entsel)))
(setq sp_bl (entget blc)) ; spisok
(setq imja (assoc 2 sp_bl)) ;p imja
(setq nm_at_o  (entnext blc)); imya attributa
(setq sp_at_o (entget nm_at_o)) ; spisok attributa
(setq tx_at_o  (cdr(assoc 1 sp_at_o))); atribut 1
(setq filtr (list '( 0 . "INSERT") imja))
(setq nameset (ssget "X" filtr)) ;imya nabora
(setq setlength (sslength nameset)) ;dlina nabora
(setq kol 0)
(setq i -1)
(repeat setlength
  (setq i (1+ i))
  (setq nm_bl (ssname nameset i)) ;imya i
  (setq nm_at  (entnext nm_bl)); imya attributa
  (setq sp_at (entget nm_at)) ; spisok attributa
  (setq tx_at  (cdr(assoc 1 sp_at))); atribut 1
  (if(= tx_at_o tx_at)(setq kol (1+ kol)))
)
(princ "\nKol-vo blokov s atributon ")
(princ tx_at_o)
(princ " = ")
(princ kol)
(princ)
)

Re: подсчитать измененные атрибуты блока

Если можно для ... не очень сведущей женщины- создала блок с атрибутом, его скопировала несколько раз, поменяла значения атрибута в блоках на разные,
затем то, что вы написали сохранила в lisp, подгрузила, ввожу команду bbya- пишет мне - выберите объект , а после этого ничего не происходит... Что не так делаю?

Спасибо.

Re: подсчитать измененные атрибуты блока

Если автокад русский то заменить строку (setq nameset (ssget "X" filtr)) на (setq nameset (ssget "_.X" filtr)) или (setq nameset (ssget "_X" filtr)). Проверить не могу.

Re: подсчитать измененные атрибуты блока

галина С,
Есть в Автокаде команда extracting или dataextraction в зависимости от версии. Вы не назвали версию Автокада потому трудно сказать более. Можно получить параметры блоков со значениями атрибутов в таблицу Автокада или по желанию в Excel.

Re: подсчитать измененные атрибуты блока

Спасибо, все оказывается работает, действительно считает количество блоков с определенным измененным атрибутом, только для того, что бы посмотреть результат командную строку приходиться провернуть немножко назад.
Жаль , что не поняла этого раньше- уж по крайней мере дня два работы сэкономила бы. спасибо еще раз.

Re: подсчитать измененные атрибуты блока

галина С,
А вытащить блоки с атрибутами в Excel не захотели попробовать. :?: