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

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

Выделение примИтивов на слое одним кликом

Ответ
Поиск в этой теме
Непрочитано 12.07.2011, 05:44 1 |
Выделение примИтивов на слое одним кликом
Alex79
 
проектирование
 
Родом из солнечной системы
Регистрация: 06.12.2006
Сообщений: 60

Здравствуйте уважаемые участники форума.
У меня такой вопрос. Мне необходимо при помощи lisp программы или стандартной команды ( о которой я возможно не знаю) выделить все примитивы находящиеся на одном слое.
Можно конечно отключить все слои оставив один и посмотреть что на нем находится, но когда слоев очень много то это занимает время. У меня есть Лисп, который по примитиву изменяет название слоя. Еще раз поясню что мне нужно. Есть множество слоев, я запускаю ЛИСП, кликаю на один из объектов и автоматически выделяются все объекты, находящиеся на данном слое.
Только не нужно пинать, или советовать обратиться к мануалу, просто скажите, где нужно посмотреть.

PS - если ответ простой, не могли бы вы в скайп написать, буду очень признателен

Последний раз редактировалось Alex79, 12.07.2011 в 12:44.
Просмотров: 10799
 
Непрочитано 12.07.2011, 21:03
#21
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Ничего там не растет. Заранее имя слоя неизвестно, поэтому "_qselect" не поможет.
Profan вне форума  
 
Непрочитано 12.07.2011, 21:12
#22
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Profan Посмотреть сообщение
Ничего там не растет. Заранее имя слоя неизвестно, поэтому "_qselect" не поможет.
а что мешает посмотреть, выделив интересующий примитив? Или это идёт совместное "додумывание" мысли автора топика, мол одним кликом, да чтоб за пивом сбегала и носки заодно постирала?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 12.07.2011, 21:20
#23
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Мешает пустой и нелепый сарказм некоего субъекта, который вместо того, чтобы использовать стандартные команды AutoCAD'а, зачем-то программирует в .NET.
Profan вне форума  
 
Непрочитано 12.07.2011, 21:26
#24
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Profan Посмотреть сообщение
Мешает пустой и нелепый сарказм некоего субъекта, который вместо того, чтобы использовать стандартные команды AutoCAD'а, зачем-то программирует в .NET.
Пожалуй открою глаза другому "субъекту": _qselect - не написана мною на .Net, а является стандартной командой AutoCAD. Иначе как незнанием сего факта не могу объяснить наличие выше процитированного текста (дотнет зачем-то приплёл...)...

п.с. всё что написано выше (во всех моих постах топика) - писалось без сарказма (недоумение и сарказм - разные вещи). Обидчивых просьба особо не обижаться...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 12.07.2011, 22:02
#25
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от hwd Посмотреть сообщение
честно говоря, несколько удивлён велосипедостроению предложенным выше вариантам решения... А что, кто-то предал анафеме использование _qselect?
hwd, при всем уважении, у меня сложилось впечатление, что Вы даже не изучили должным образом варианты решения предложенные другими участниками форума, а просто не увидев предложения использовать _qselect назвали их "велосипедостроением". Да, согласен с тем, что автор темы не совсем точно сформулировал свои потребности, однако выскажусь в защиту своего "велосипеда" из поста #13. Лично я сделал его изначально для своих нужд по работе, в виде панельки с несколькими кнопками которые позволяют, как здесь говорили, выполнить выбор группы объектов в один клик по различным критериям (в моем примеры - это: слой, цвет, тип объекта или вхождения блока).
К тому же я несколько раз убеждался, что если чертеж очень насыщен (т. е. число около 100 тысяч.), то ssget с фильтрами работает гораздо быстрее, чем _qselect
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 12.07.2011, 22:07
#26
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


hwd, что-то ты не туда загнул. Посмотри, что получается: есть набор команд работы со слоями. Мы можем кликнуть на объекте и слой, на котором отрисован объект, отключается. Или замораживается. Или блокируется. Или изолируется. А зачем нужны эти команды практически одного клика? Ведь следуя твоей логике, можно выделить объект, посмотреть его слой и потом в диспетчере слоев сделать этот слой текущим. Или заморозить его. Или заблокировать его. Или изолировать его. Но это не самый короткий путь. Команда "_qselect" - мощная команда выбора объектов по многим параметрам. У нас же требуется простейшая по выполнению команда, которая, к сожалению, не вошла в тот набор команд работы со слоями, который я упомянул выше. Я думаю, что такая команда "Выбор всех объектов на слое выбранного объекта" вполне могла бы войти в набор штатных команд. Поэтому автор темы и спрашивал, есть ли такая команда в AutoCAD'е...
Profan вне форума  
 
Непрочитано 13.07.2011, 08:59
#27
angel-fear

инженер-электрик
 
Регистрация: 21.10.2010
Краснодар
Сообщений: 134


TararykovDG надо бы таблицы добавить в список выделяемого

Или это у меня чего-то не пашет....

Да, точно с экспрессовским Fastsel спуталось, а _fast_select почему-то работать отказыватся хм...

Разобрался ) засада со скобочками, не обратил внимания сразу )

Последний раз редактировалось angel-fear, 13.07.2011 в 09:09.
angel-fear вне форума  
 
Непрочитано 13.07.2011, 09:00
#28
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


[quote=Profan;779051]hwd, что-то ты не туда загнул[/quote
ПримИтивы -в "слое" - What it is?
Пальцев жалко, для перехода на NET? Много лет ( без фильтра) - напишу на NET, жди!
__________________
С уважением sbi
sbi вне форума  
 
Непрочитано 13.07.2011, 09:09
#29
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


sbi, что это ты такое загнул?
[quote]
Цитата:
Сообщение от Profan Посмотреть сообщение
hwd, что-то ты не туда загнул[/quote
ПримИтивы -в "слое" - What it is?
Пальцев жалко, для перехода на NET? Много лет ( без фильтра) - напишу на NET, жди!
А я,собственно, вот что имел в виду: автор темы желает автоматизировать некую операцию при работе с AutoCAD'ом. И очень странно видить критику этого от человека, который сам автоматизирует работу в AutoCAD'е и уже давно.
Profan вне форума  
 
Непрочитано 13.07.2011, 11:15
#30
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Offtop: то TararykovDG - программа написанна классно (по крайней мере мне нравится) - но критика (не то чтоб критика но момент который лично мне "глаз резанул") есть - принимаешь?
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 13.07.2011, 11:30
#31
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Offtop: то TararykovDG - программа написанна классно (по крайней мере мне нравится) - но критика (не то чтоб критика но момент который лично мне "глаз резанул") есть - принимаешь?
Offtop: конечно принимаю, говорите
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 13.07.2011, 11:39
#32
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Еще раз повторю - все красиво (это мои личные тараканы):
1. Строка 38 (vla-get-EffectiveName (vlax-ename->vla-object (car obj))) - это происходит на каждой итерации - "залямбдить" до цикла.
2. Тут уже более мелочное но - строка 39 ты уже в 37 все равно перевел набор в список - фильтруй его (и возращай из полученного списка набор) - ты же по сути на каждой итерации "крутишь" переменную nbr (не аргумент а именно переменную - и чистота функции теряется), если что-то впоследствии решить добавить в цикл - что там у тебя в наборе??? - потенциальная ошибка из серии хрен найдешь.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 13.07.2011, 13:42
#33
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Э...
Select Similar бы усовершенствовать (пардон за повтор, но люди увлеклись дискуссией у кого код длиннее )
Есть же это замечательное творение Александра Ривилиса. Но в нем прошита чувствительность к типу указаного элемента-образца. Если в Select Similar Settings оставить только слой, то, в принципе она могла бы и находить все элементы слоя.
Почему бы хорошо усовершенствовать Select Similar:
1. чтобы не плодились кнопочки-лиспы,
2. потому что она решает очень похожую задачу ("одной кнопкой выделить некое все по указанному элементу").

Кстати, все это со всяческим глубоким уважением к создателям лиспов.

Последний раз редактировалось АлексЮстасу, 13.07.2011 в 15:55.
АлексЮстасу вне форума  
 
Непрочитано 13.07.2011, 13:53
#34
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Дима_, в общем, со всем согласен. 1-ый пунк более очевиден чем 2-ой, зато 2-ой потенциально более опасен, как Вы сказали при добавлении кода в цикл. Я бы еще добавил одну lambd'у, чтобы избавиться от постоянного (car obj) и (entget (car obj)). Еще нашел ошибку, в строке 43 (ssget "_X" (list (cons 0 "INSERT") (cons 2 (strcat "`*U*," (cdr (assoc mode (entget (car obj)))))))), если изначально выбранный блок был динамическим, то (cdr (assoc mode (entget (car obj)))) может вернут *U... и в фильтруемый набор не попадут те вхождения дин. блока у которых (cdr (assoc mode (entget (car obj)))) возвращает полноценное имя блока.

P. S. Еще один минус, в старых ACAD'ах нет свойства EffectiveName и код работать не будет, можно заменить EffectiveName, на это Имена динамических блоков

АлексЮстасу, Вашу просьбу может удовлетворить только Александр Ривилис, а наша дискуссия этому никак на мешает и не помогает
__________________
cadtools
TararykovDG вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Выделение примИтивов на слое одним кликом



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Справочный размер одним кликом Jonas AutoCAD 9 13.05.2011 13:42
Выбор всех примитивов одним кликом DANZZ AutoCAD 5 12.08.2006 17:49