Re: Невозможно выбрать объекты

Получается интересная картина. Думал может РД какие-нибудь. Попробывал снести этим лиспом.

(defun C:APPDEL ( / nb nlst lst Rdn adoc )
  (defun massoc (key alist)
  (mapcar 'cdr (vl-remove-if-not (function (lambda (x) (= key (car x)))) alist)))
  (defun delRd ( en Rdn / elist sub)
   (setq elist (entget en (list "*")) sub nil)
   (foreach i (cdr (assoc -3 elist))
     (if (not(wcmatch (strcase(car i))(strcase Rdn)))
       (setq sub (append sub (list i)))
       (setq sub (append sub (list(list (car i)))))))
  (setq sub (cons -3 sub) elist (subst sub (assoc -3 elist) elist)
        elist (entmod elist)))
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
;_Получаем список РД Примитивов
  (if (setq nb (ssget "_X" '((-3 ("*")))))(progn
   (setq nlst nil lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex nb))))
   (mapcar '(lambda (e1) (mapcar '(lambda(rdn)(if (not(member rdn nlst))
   (setq nlst(append nlst (list rdn)))))(mapcar 'car (car(massoc -3 (entget e1 '("*"))))))) lst)
   (setq nlst(vl-remove-if '(lambda(x)(wcmatch (strcase x) "ACAD*,ACDB*")) nlst))
   (setq Rdn (apply 'strcat (mapcar '(lambda(x)(strcat x ",")) nlst)))
   (mapcar '(lambda(x)(delRd x Rdn)) lst)))(princ "\nУдаленные РД:")(mapcar 'print nlst)
(princ))(princ "\nНаберите APPDEL в командной строке")

Никаких РД не нашел, но текст стал выделяться.
Обрадовался. Закрыл-открыл опять частично не выделяется. Запустил лисп - выделяется. И так до следующего сеанса редактирования. Где тут собака роется - пока не понятно. Но вроде как после отработки лиспа в текущем сеансе можно работать. Проверял Acad 2006 RUS

Re: Невозможно выбрать объекты

Я тоже пробовал сносить РД, тоже не работало. Там на примитивах, которые не выделяются, еще какие-то словарные данные болтаются (в DXF-виде группы 102 и 360). Может, просто надо было после снесения этих групп еще и словари чистить?
В файле столько софта покопалось, что у машины волосенки встают дыбом: ADT 2005, Civil 3D, GeoniCS, СДПС... И каждый чего-то там пишет.

Re: Невозможно выбрать объекты

> u33
Добрый дядя
Решил поделиться новым вирусом с народом :)
Скинул бы вначале файл на какой нибудь сайт Антивируса - пусть добавят в базу :)

Re: Невозможно выбрать объекты

Короче что сделал: переписал все тексты этим лиспом

(defun C:RETXT ( / nb lst e1 ed *error*)
(defun *error* (msg)(princ msg)(vla-endundomark adoc))
(vl-load-com)
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
(vla-startundomark adoc)
(if (setq nb (ssget "_X" '((0 . "*TEXT"))))
  (progn
    (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex nb))))
    (foreach e1    lst
      (setq ed (entget e1))
      (setq ed (vl-remove-if
         '(lambda (x) (member (car x) '(-1 5 102 360 330)))
         ed
           )
      )
      (entdel e1)
      (entmake ed)
    )
  )
)
  (vla-endundomark adoc)
  (princ "\nПереписано текстов - ")(princ (length lst))(princ)
  )

Вроде работает. Проверял пару раз. Снос РД помогал-помогал, а потом перестал :(

Re: Невозможно выбрать объекты

> kpblc
Странно... что покопалось много софта, хотя может я туда забрасывал планы архитекторские, а потом снёс...
А есть лекарство для чистки этих покопавшихся??
Да последний лисп вроде помог!!!
ВСЕМ ОГРОМНОЕ ЧИСТОСЕРДЕЧНОЕ СПАСИБО И УВАЖУХА!!!:))))
ОСОБЕННО
>kpblc
>VVA

Re: Невозможно выбрать объекты

> u33
Ну не то чтобы лекарство... Это в принципе можно попробовать через ObjectEnabler'ы сделать, только тут есть несколько проблем. Первая: под GeoniCS такого ObjEnablerа не выпускалось, по-моему. По крайней мере на оф.сайте я не нашел. Под остальное вроде как было. Вторая: даже наличие ObjEnabler'ов не гарантирует корректность работы. И, наконец, третье. Перестройка текстов, похоже, единственный вариант, который будет работать. Только кто гарантирует, что через n-ное кол-во дней (тьфу-тьфу, конечно) не перестанут выделяться еще и отрезки? Я взял на себя наглость немного переделать код > VVA (2006-11-24 11:14:40) :

(defun c:remake (/ adoc selset)
  (vl-load-com)
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of vla-startundomark
  (if (setq selset (ssget "_X"))
    (foreach item (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset)))
      (entmake (vl-remove-if
                 '(lambda (x) (member (car x) '(-1 5 102 360 330)))
                 (entget item)
                 ) ;_ end of vl-remove-if
               ) ;_ end of entmake
      (entdel item)
      ) ;_ end of foreach
    ) ;_ end of if
  (vlax-for dict (vla-get-dictionaries adoc)
    (vl-catch-all-apply '(lambda () (vla-delete dict)))
    ) ;_ end of vlax-for
  (vla-auditinfo adoc :vlax-true)
  (command "_.-purge" "_r" "*" "_n")
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun

Код не проходит по примитивам блоков (а там тож могут быть проблемы). Заблокированность, замороженность или отключенность слоев не контролируются. После выполнения я б попробовал рецепт от Vova (который с _wblock).
Я попробовал прогнать, вроде как сработало (в ожидаемом объеме).

Re: Невозможно выбрать объекты

> kpblc
Спасибо, применим... но, тот файл что по ссылке, да и у тебя - после wblock, только до переписки текстов....
Неееее, не пугай меня еще и отрезками :)

Re: Невозможно выбрать объекты

В общем всех лекарств последней модификации хватило на пол дня... Вчера под вечер снова началось... Применил таблетки - пока работает...

Re: Невозможно выбрать объекты

Ради исторической справедливости

под GeoniCS такого ObjEnablerа не выпускалось, по-моему

Выпускалось
http://geonika.net/ ->скачать

Re: Невозможно выбрать объекты

Спасибо :)

Re: Невозможно выбрать объекты

Подъитог спустя 3 недели.
Работаю с файлом посредством retxt каждые полчаса.
Кардинально проблема так и не решилась.
Но все равно спасибо:))

Re: Невозможно выбрать объекты

Если после retxt или remake выделить все и через буфер кинуть в новый файл?

Re: Невозможно выбрать объекты

> VVA
Ну я даже после этого через wblock делал... с ним и работаю
а если просто "копи-паст" - то формат теряется напрочь

Re: Невозможно выбрать объекты

> VVA
и кстати тоже самое, буквально сразу после копи-паста

Re: Невозможно выбрать объекты

Как вариант совсем жесткого:
_-purge _a * _n
_-purge _r * _n
сохранить и попробовать. Может, чего и получится.
Можно заодно еще и словари посносить, но после такого эксперимента у меня ADT гавкнулся напрочь (хорошо хоть все сохранить успел)

Re: Невозможно выбрать объекты

> kpblc
В общем это как то связано с таблицами было... взорвал все до единой таблицы, поскольку заметил не совсем понятный глюк со слоем defpoints и этими таблицами, хотя те были в другом слое... вродебы (тьфу-тьфу) обычный текст теперь стал без проблем выбираться и таких глюков уже не видно...

Re: Невозможно выбрать объекты

Начиная с 2006-го появилась команда TEXTTOFRONT
Для локализованных версий _TEXTTOFRONT
Переносит либо тексты, либо размеры, либо и тексты и размеры, по выбору, на передний план (поверх всего), очевидно, для решения проблемы, связанной с выделением/редактированием вышеназванных примитивов

Re: Невозможно выбрать объекты

Огромное спасибо > Hrenn (2007-03-22 13:28:41).
Некоторые файлы "болели" вышеупомянутой байдой. Приходилось изворачиваться, чтоб выделить текст для работы. Теперь команда TEXTTOFRONT - и весь текст тебе подвластен. Еще раз спасибо.