|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
25.04.2020, 15:17 | #1 | |
Макрос для выбора объектов по заданным характеристикам
Регистрация: 15.04.2019
Сообщений: 58
|
||
Просмотров: 6415
|
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
1. Выборка всех примитивов на чертеже с использованием фильтра по DXF группе 8 (слой).
2. Выделение данных примитивов. 3. Применение команды _isolateobjects к выбранным примитивам ну а реализация будет зависеть от выбранного вами языка программирования. |
|||
|
||||
Регистрация: 15.04.2019
Сообщений: 58
|
Цитата:
Может быть, именно поэтому я и не имею понятия, что значит "Выборка всех примитивов на чертеже с использованием фильтра по DXF группе 8 (слой)" |
|||
|
||||
Регистрация: 15.04.2019
Сообщений: 58
|
Вы, конечно же, не ожидали, но и это мне, тупому, ни чего не даёт. Может быть, вы не заметили, но я уже дважды написал, что языкам программирования не обучен.
А эта строчка, будучи просто вписанной в макрос, не выделяет объекты, а просто пишет, что создан очередной (с новым номером) Selection Set. При каждом нажатии кнопки номер этого сета увеличивается, что говорит о том, что какие-то непонятные мне сущности множатся, и это совсем не входило в мои планы. Для вас, умного, это, наверное, дело понятное. А для меня, тупого, - бесполезное. Вы чего ожидали, давая такие ответы на мои тупые вопросы? Вам нравится получать в ответ новые и новые тупые вопросы? Что ж, получайте удовольствие) Тем не менее, продемонстрировать, что вы умный, а я - тупой, у вас получилось. Если это и есть искомый результат - то явно не мною. Кому-то, кто поумнее меня, наверняка, ваш ответ будет полезен. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
|
|||
|
||||
(command "_isolateobjects" (ssget "_x" (list (cons 8 "0"))) "")
выбор и изоляция всех примитивов слоя ""0" (sssetfirst nil (ssget "_x" (list (cons 8 "0")))) выбор всех примитивов слоя "0" |
||||
|
||||
Регистрация: 15.04.2019
Сообщений: 58
|
Цитата:
Ещё только одна просьба... Я тут с подачи предыдущего собеседника немного стал ковырять информацию по ssget и увидел, что метод "_x" выбирает все объекты, в т.ч. на скрытых слоях и т.п. Собственно, по приведённому Вами коду оно так и работает (т.е. в количестве выбранных элементов показывает цифру с учётом ранее скрытых объектов, а также находящихся на других листах). В официальном хелпе я так и не нашёл метод, который бы выбирал только видимые объекты в текущем пространстве (модельном ли, бумажном ли). Как добиться такого поведения макроса? И ещё одно беспокоит... В выводимом при работе макроса системном сообщении формата: "sssetfirst nil (ssget "_x" (list (cons 8 "0")))) (nil <Selection set: 58f>" постоянно увеличивается номер этого самого Selection set. Скажите, пожалуйста, не сказывается это на росте веса файла и т.п.? От этого в базе данных не прирастает ненужных сущностей? Можно ли как-то почистить эти Selection set'ы с меньшими порядковыми номерами, чтобы они не засоряли собой файл? А то, подозреваю, пользоваться этими кнопками (ещё раз огромное спасибо за помощь!) предстоит часто, и за пару месяцев работы над проектом этих сущностей (если они накапливаются) соберётся уже порядочно... Последний раз редактировалось modest-bp, 26.04.2020 в 00:53. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Цитата:
раньше было ограничение в 128 наборов, сейчас фиг знает. Локальная переменная освободится при выходе из функции, а вот если глобальная - то в явном виде надо присвоить nil для для освобождения набора. к БД чертежа никакого отношения наборы не имеют, хранятся где-то внутри акада в памяти. |
|||
|
||||
так вроде требовалось выбрать объекты/примитивы только одного указанного слоя?!
видимо для решения такой задачи нужно написать лисп команду (которая вряд ли будет уже простым макросом), которая будет выбирать только то, что видно и только в текущем рабочам пространстве. простым использованием аргументов и фильтров ssget этого скорее всего не достигнуть( |
||||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Просмотрел тему... а Сергей то молодец, сподвиг пользователя развиваться, пойти почитать документацию и встать на путь написания программ. Я так не умею. Уважуха.
ЗЫ. Цитата:
Тем более, что есть нативный способ добавить объекты в коллекцию изолированных. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Код:
Посмотрел. Все равно не понял. При скрытии объектов командой _HideObjects 60-я группа не появляется. Offtop: Думаю, что в каждой паре "сэнсэй-подаван" в случае удачи всегда есть заслуги обеих сторон. И заслуга подавана - главная, на мой взгляд. Потому что требует больше усилий вникнуть, нежели попробовать передать, что знаешь. Не умаляю заслуг учителей, нет. Просто балбеса, который не хочет - не научишь. А вот заинтересовать - это искусство, но если ему это реально не надо, то тоже без толку. Для меня в свое время сэнсэями были в основном VVA и kpblc - за что я им безмерно благодарен. Они смогли заинтересовать именно предоставлением рыбы для затравки - показали, как это вкусно и совсем не страшно - и, уже почувствовав вкус, я захотел удочку и на море. Скажи они мне сразу, чтоб я шел в попуиск, не факт, что я бы решился, и так и сидел бы вручную все рисовал. Как вариант. Просто моё скромное мнение. |
|||
|
||||
А мне нравится в отличие от
|
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,853
|
Точно 60, а не 61-я группа?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
увы, насколько понял по форумам - API для "_ISOLATEOBJECTS " даже в ObjectARX нет. Но как альтернатива - можно просто видимостью примитивов "играться")
----- добавлено через ~3 мин. ----- 60 Object visibility (optional): 0 = Visible; 1 = Invisible в нескольких источниках, начиная с Полещука) Последний раз редактировалось Сергей812, 27.04.2020 в 21:21. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Цитата:
Код я тут выкладывать не буду, так как тема в общем то про Лисп, залил его в тему по указанной тобой ссылке, но там действительно все просто. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,853
|
Охотно верю - поскольку с DXF работаю нечасто.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Появилось диалоговое окно выбора из нескольких объектов. Как отключить? | Tregart | AutoCAD | 2 | 04.04.2020 15:27 |
После выбора объектов для команды требуется дополнительное подтверждение | Rustam-tam | AutoCAD | 2 | 15.03.2020 22:57 |
JavaScript. nanoCAD 5. Округление координат объектов с учетом ПСК | Нубий-IV | Готовые программы | 6 | 04.05.2019 10:04 |
Простой макрос выбора и удаления всех штриховок | MrBrown | Программирование | 9 | 06.06.2014 12:30 |
Отмена выбора объекта (объектов) | stinger20112 | AutoCAD | 4 | 04.11.2011 12:15 |