| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > выбор текста по содержимому

выбор текста по содержимому

Ответ
Поиск в этой теме
Непрочитано 20.10.2006, 11:44
выбор текста по содержимому
Neznayka
 
Регистрация: 24.03.2005
Сообщений: 320

есть на чертеже куча текста всякого
мне необходимо выделить для последующего удаления только тот текст который содержит :
l=... м Т.е. на мест е точек может быть любое число
КАК?
быстрый выбор позволяет выбрать только конкретный текст, и он не понимает такой запрос l=*
Просмотров: 25050
 
Непрочитано 04.12.2008, 13:41
#21
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


Если надо будет найти и жаворонка, и Жаворонка, в маске попробуй вбить "ж*,Ж*" - по идее для стандартного сравнения строк должно сработать.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.01.2009, 04:02
#22
Igor' Kulikov

горный инженер
 
Регистрация: 24.10.2007
Алдан
Сообщений: 151


с наличием каких либо букв понятно, а вот как например выбрать числовое содержимое которое удовлетворяет запросу всё > или = например 1. Поясню: имеется огромное количество одночтрочных текстов содержащих числа (1, 2, 1,5 ну и.д.) так вот как построить запрос что бы выбрались все тексты со значениями больше или равно 1,5 например?
Если _qselect не способен на такое то может кто-нить лиспик наваяет,а?

ну нецжели нет решения данной задачи

Последний раз редактировалось Кулик Алексей aka kpblc, 23.01.2009 в 12:23.
Igor' Kulikov вне форума  
 
Непрочитано 23.01.2009, 12:24
#23
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


Во-первых, не надо топик-апить. Во-вторых, штатного универсального решения лично я не знаю и пробовал бы разрабатывать лисп.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.01.2009, 12:28
#24
Igor' Kulikov

горный инженер
 
Регистрация: 24.10.2007
Алдан
Сообщений: 151


понятно, проблема за малым - разобраться и выучить LISP
Igor' Kulikov вне форума  
 
Непрочитано 23.01.2009, 13:04
#25
vasilyis

Инженер
 
Регистрация: 05.05.2008
Москва
Сообщений: 1,074


Цитата:
Сообщение от Igor' Kulikov Посмотреть сообщение
с наличием каких либо букв понятно, а вот как например выбрать числовое содержимое которое удовлетворяет запросу всё > или = например 1. Поясню: имеется огромное количество одночтрочных текстов содержащих числа (1, 2, 1,5 ну и.д.) так вот как построить запрос что бы выбрались все тексты со значениями больше или равно 1,5 например?
Если _qselect не способен на такое то может кто-нить лиспик наваяет,а?

ну нецжели нет решения данной задачи
Команда Найти... ищет текстовые вхождения, а не числовые.
__________________
Рапик отдай папе кость, Ты ведь не собака. /анекдот АРМЯНСКОГО РАДИО/
vasilyis вне форума  
 
Непрочитано 26.01.2009, 01:12
#26
Igor' Kulikov

горный инженер
 
Регистрация: 24.10.2007
Алдан
Сообщений: 151


команда Найти ищет и находит, но по одному и для редактирования например. а нужно именно выбрать все тексты в которых содержимое равно или больше 1.5 например, для редактирования свойств этих объектов текст. Тут ближе всего к этому решению _qselect но видимо для таких запросов он ещё не годится.
Igor' Kulikov вне форума  
 
Непрочитано 25.11.2010, 12:14
#27
REALFOX

Деструктор
 
Регистрация: 24.11.2010
Ярославль
Сообщений: 23


А тут есть живые? Хай всем! Вопрос CAD 2011, ну в принципе пофиг какой, разные есть. Суть вопроса с выбором текста. есть типа съемки с названиями населенных пунктов. Основные написаны ЗАГЛАВНЫМИ буквами, остальные просто с Большой буквы. мне нужно выбрать те которые БОЛЬШИМИ БУКВАМИ НАПИСАНЫ. стиль текста одинаковый, высота одинаковая, все в одном слое, цвет есессно тож у всех одинаков. че делать та? 11377 названий в ручную прочесывать? ))))

Последний раз редактировалось REALFOX, 25.11.2010 в 12:25.
REALFOX вне форума  
 
Непрочитано 25.11.2010, 12:42
#28
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,336


REALFOX, а что, в 2011 команда _find (найти) не работает? Настрой её, как надо
Миниатюры
Нажмите на изображение для увеличения
Название: screenshot59.jpg
Просмотров: 393
Размер:	38.0 Кб
ID:	48860  
Хмурый вне форума  
 
Непрочитано 25.11.2010, 12:51
#29
REALFOX

Деструктор
 
Регистрация: 24.11.2010
Ярославль
Сообщений: 23


Хм. Ща попробую.....


ХА! дак блин не то. вот есть например (ОДИНЦОВО, ВАРЕГОВО, ХУ@РЕГОВО, Огарево, Гагарка, Петрово) вот из этого мне нужно выбрать только те которые БАЛЬШИМ написаны. Эт все "разные тексты", в смысле не один текстовый блок.

а так если я задам поиск по "О" например, он выдаст ОДИНЦОВО и Огарево, а уж я вааще без понятия как там они называются тем более 11 тысяч их там.

Вот как у меня эт выглядит, чтоб понятней было

[IMG]http://s13.***********/i186/1011/df/12a78bc3f999.jpg[/IMG]



АААА! Все! Понял! Вроде получилось... СПАСИБАААА!

Последний раз редактировалось REALFOX, 25.11.2010 в 13:22.
REALFOX вне форума  
 
Непрочитано 25.11.2010, 13:07
#30
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Попробуй программно
Код:
[Выделить все]
(defun c:test
	      (/ i ss ss_2 temp temp_2)
  (setq
    i	 -1
    ss	 (ssget	"_X"
		'((0 . "*TEXT"))
	 )
    ss_2 (ssadd)
  )
  (repeat (sslength ss)
    (setq temp	 (ssname ss (setq i (1+ i)))
	  temp_2 (vl-string->list (cdr (assoc 1 (entget temp))))
    )
    (if	(equal (vl-remove-if-not
	      '(lambda (x) (> 223 x 192))
	      temp_2
	    )
	    temp_2
	)
      (setq ss_2 (ssadd temp ss_2))
    )
  )
  (sssetfirst nil ss_2)
)
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 25.11.2010, 13:09
#31
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,336


Цитата:
Сообщение от REALFOX Посмотреть сообщение
Хм. Ща попробую.....


ХА! дак блин не то. вот есть например (ОДИНЦОВО, ВАРЕГОВО, ХУ@РЕГОВО, Огарево, Гагарка, Петрово) вот из этого мне нужно выбрать только те которые БАЛЬШИМ написаны. Эт все "разные тексты", в смысле не один текстовый блок.

а так если я задам поиск по "О" например, он выдаст ОДИНЦОВО и Огарево, а уж я вааще без понятия как там они называются тем более 11 тысяч их там.
После разъяснения все, и я в том числе, поняли задачу
Хмурый вне форума  
 
Непрочитано 25.11.2010, 13:35
#32
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от Igor' Kulikov Посмотреть сообщение
команда Найти ищет и находит, но по одному и для редактирования например. а нужно именно выбрать все тексты в которых содержимое равно или больше 1.5 например, для редактирования свойств этих объектов текст.
Пробуй
from >= содержимое >= to
одно можно не вводить
Код:
[Выделить все]
(defun c:Find_text_from_to
			   (/ i from To temp temp_2 ss ss_2)
  (setq
    from (getreal "\nFrom: ")
    To	 (getreal "\nTo: ")
  )
  (if (or from
	  To
      )
    (progn
      (setq
	i    -1
	ss   (ssget '((0 . "*TEXT"))
	     )
	ss_2 (ssadd)
      )
      (repeat (sslength ss)
	(setq temp   (ssname ss (setq i (1+ i)))
	      temp_2 (cdr (assoc 1 (entget temp)))
	      temp_2 (if (wcmatch temp_2 "*@*")
		       nil
		       (atof temp_2)
		     )
	)
	(if (and
	      (if from
		(<= from temp_2)
		T
	      )
	      (if To
		(< temp_2 To)
		T
	      )
	    )
	  (setq ss_2 (ssadd temp ss_2))
	)
      )
      (sssetfirst nil ss_2)
    )
  )
)
__________________
Почему все вдруг становятся умными, когда уже не надо?

Последний раз редактировалось Disney, 25.11.2010 в 17:15.
Disney вне форума  
 
Непрочитано 25.11.2010, 16:07
#33
REALFOX

Деструктор
 
Регистрация: 24.11.2010
Ярославль
Сообщений: 23


Цитата:
Почему все вдруг становятся умными, когда уже не надо?
)))))

1. Я не осбо силен в кодах этих и куда вбивать? в среду какую-то или в командую строку?))))
2. Да обошелся в принципе тупо поиском, потом в списке результатов выделил необходимое и в другой слой нафик перенес.
3. А если разъясните вкуда коды, и каким макаром вставлять. то буду благодарен. Я не ламер, просто небыло раньше такой нужды. Я к тому, что с азов объяснять не нужно.))) заранее СПАСИБО!
REALFOX вне форума  
 
Непрочитано 25.11.2010, 16:15
#34
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686


Цитата:
Сообщение от REALFOX Посмотреть сообщение
))))) 1. Я не осбо силен в кодах этих и куда вбивать? в среду какую-то или в командую строку?))))
Не обязательно в среду, сегодня тоже можно.. пусть и четверг..
Открой txt файл в блокноте, скопируй код из соответствующего поста, от скобки ( до скобки). Сохрани файл под любым именем, с расширением *.lsp. Далее сервис - загрузка приложений - ищешь этот файл, загружаешь. Далее, что бы запустить программу, нужно в командной строке ввести то, что после "c:" в первой строке, то бишь наверное для поста 32 "Find_text_from_to" Ну а дальше смотришь, что и как там наваяли лисперы..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 25.11.2010, 16:27
#35
REALFOX

Деструктор
 
Регистрация: 24.11.2010
Ярославль
Сообщений: 23


шутники епть

ща залью гляну...


.... а вызывать то их как? Бубном?! кнопку там вынести или че? или как?

А! до конца не дочитал...

...Вот терь как бы все это переписать на выбор текста. Точнее текста по регистру, грубо говоря.

Последний раз редактировалось REALFOX, 25.11.2010 в 17:03.
REALFOX вне форума  
 
Непрочитано 25.11.2010, 17:00
#36
KSI


 
Регистрация: 19.03.2004
Калининград
Сообщений: 1,842


Можно и в бубен ударить. Но толку мало будет.
Ищи в начале кода: defun c:
то что стоит после с: и есть команда на запуск кода. Ввести это в командной строке, после загрузки.
KSI вне форума  
 
Непрочитано 25.11.2010, 17:05
#37
REALFOX

Деструктор
 
Регистрация: 24.11.2010
Ярославль
Сообщений: 23


да я уж понял, пасиб, еще раз
REALFOX вне форума  
 
Непрочитано 25.11.2010, 17:11
#38
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Я там перепутал чуть-чуть, цитировал одного, авторство получилось другого.
Программа из поста №30 для РеальногоЛиса, имя команды test
Программа из поста №32 для Игоря Куликова , имя команды Find_text_from_to
программы очень простенькие поэтому, что-то не стал расписывать, макросы там всякие на кнопки...
__________________
Почему все вдруг становятся умными, когда уже не надо?

Последний раз редактировалось Disney, 25.11.2010 в 18:02.
Disney вне форума  
 
Непрочитано 26.11.2010, 08:31
#39
Igor' Kulikov

горный инженер
 
Регистрация: 24.10.2007
Алдан
Сообщений: 151


Цитата:
Сообщение от Disney Посмотреть сообщение
Пробуй
from >= содержимое >= to
одно можно не вводить
Код:
[Выделить все]
(defun c:Find_text_from_to
			   (/ i from To temp temp_2 ss ss_2)
  (setq
    from (getreal "\nFrom: ")
    To	 (getreal "\nTo: ")
  )
  (if (or from
	  To
      )
    (progn
      (setq
	i    -1
	ss   (ssget '((0 . "*TEXT"))
	     )
	ss_2 (ssadd)
      )
      (repeat (sslength ss)
	(setq temp   (ssname ss (setq i (1+ i)))
	      temp_2 (cdr (assoc 1 (entget temp)))
	      temp_2 (if (wcmatch temp_2 "*@*")
		       nil
		       (atof temp_2)
		     )
	)
	(if (and
	      (if from
		(<= from temp_2)
		T
	      )
	      (if To
		(< temp_2 To)
		T
	      )
	    )
	  (setq ss_2 (ssadd temp ss_2))
	)
      )
      (sssetfirst nil ss_2)
    )
  )
)
ура, наконец то свершилось. Disney спасибо. работает но получается вот что: если не выбирать предварительно все объекты из которых надо выбрать определённые и запустить данный код, то листинг такой
Код:
[Выделить все]
Команда:
FIND_TEXT_FROM_TO
From: 0.6
To:
Выберите объекты:
что выбирать?
можно пойти другим путём: сначала выбираем все объекты а затем запускаем код, получается следующее:
Код:
[Выделить все]
Команда: AecSelectSimilar
Команда: FIND_TEXT_FROM_TO
From: 0.6
To:
найдено: 3497
(nil <Selection set: 53f>)
Команда:
после этого вид как будто ничего не произошло (на экране перекрестие), но стоит только щёлкнуть по ТЕКСТу с нужным значением и тут же выделяются все значения которые больше 0.6
Igor' Kulikov вне форума  
 
Непрочитано 26.11.2010, 11:25
#40
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от Igor' Kulikov Посмотреть сообщение
Код:
[Выделить все]
Выберите объекты:
что выбирать?
Как что? то же, что и
Цитата:
Сообщение от Igor' Kulikov Посмотреть сообщение
можно пойти другим путём: сначала выбираем все объекты а затем запускаем код
А вот почему необходимо ткнуть в экран(не обязательно по ТЕКСТу с нужным значением) чтоб ручки подсветились, мне не понятно, и я буду признателен, если кто-нибудь расскажет. Так же мне не совсем понятно взаимоотношения ssget и предварительного выбора.
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > выбор текста по содержимому

Размещение рекламы