|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Выбор определенного блока, при пересечении с линией нужного цвета
Регистрация: 26.02.2019
Сообщений: 49
|
||
Просмотров: 6721
|
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
наверно, это развитие подобной темы - получить набор полилиний определенного цвета (и слоя, наверно, тоже) и дальше смотрите пост #23 от VVA в указанной ранее теме.
|
|||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Код:
|
|||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
Цитата:
т.е логика такая: 1). Выбрать все линии определенного цвета 2). Найти все блоки с ИЗВЕСТНЫМ ЗАРАНЕЕ названием, которые пересекают линии этого цвета. Вот и всё... И если кто то мог бы соединить это в LISP было бы оч круто ![]() |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
В посте №4 привел код для получения всех отрезков заданного цвета, во посте №2 - ссылку на код от VVA, получающий вставки блоков на полилинии. И посоветовал обратиться в ту же ветку с вопросом - как изменить этот код под отрезок. Дальше только писать за ТС весь код...
|
|||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
В посте №4 привел код для получения всех отрезков заданного цвета, во посте №2 - ссылку на код от VVA, получающий вставки блоков на полилинии. И посоветовал обратиться в ту же ветку с вопросом - как изменить этот код под отрезок. Дальше только писать за ТС весь код...[/quote]
Я прочитал ту ветку, там задача сильно отличается от моей хотя и похожа, но попробую спросить там. |
|||
![]() |
|
||||
|
||||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
Цитата:
----- добавлено через ~1 мин. ----- Огромное спасибо koMon и Семёныч!!!! ----- добавлено через ~32 мин. ----- Имею ввиду что сначала выделяю рамкой нужный чертеж, а потом к нему применяется лисп а не ко всем объектам на листе. |
|||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
Уважаемый! А не подскажите как переписать ваш лисп так чтобы в нем изначально был записан нужный цвет и название блока без возможности выбора?
----- добавлено через ~10 мин. ----- П.С. И что то когда я убираю из ssget _x вообще ничего не происходит, хотя я выбираю нужный чертеж заранее ![]() |
|||
![]() |
|
||||
Цитата:
Код:
Код:
не будут обрабатываться дин. блоки |
||||
![]() |
|
||||
Регистрация: 08.12.2018
Сообщений: 164
|
Для koMon
Про динамические блоки автор темы ничего не писал. А программа моя названа простой, потому что она и есть ПРОСТАЯ. Для aafeoktistov Не надо выбирать объекты до начала работы программы. В данном случае обращение "Уважаемый" звучит как "Эй, половой", поэтому я откланиваюсь. |
|||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
Цитата:
; ошибка: неверный тип аргумента: lentityp (0 (12181.5 17123.0 0.0)) с _x все работает нормально, но все таки хочется разобраться с выделением руками ![]() |
|||
![]() |
|
||||
Цитата:
Код:
Последний раз редактировалось koMon, 27.03.2019 в 09:38. |
||||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
Я может что то не так запускаю но он теперь просто считает выделенные линии
----- добавлено через ~10 мин. ----- Цитата:
т.е с _x все работает четко, но вот с выбором руками пока не выходит... Извините что достаю, просто очень хочется разобраться, потому как реализация выглядит оч грамотной! |
|||
![]() |
|
||||
Цитата:
Код:
aafeoktistov, frostmourn говорит, что нуно так (setq certain_lines_ss (ssget (list (cons 0 "LINE") (cons 62 line_color)))) |
||||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
Код:
теперь вообще не запускается, что посоветуете? ----- добавлено через ~14 мин. ----- Покопался видимо какой то глюк!!! С последней версией все работает так как нужно!!! Огромнейшее спасибо Семёныч и koMon!!! и всем кто поучаствовал! |
|||
![]() |
|
||||
|
||||
![]() |
|
||||
|
||||
![]() |
|
||||
Инженер-конструктор Регистрация: 25.12.2015
Москва
Сообщений: 77
|
|
|||
![]() |
|
||||
|
||||
![]() |
|
||||
Инженер-конструктор Регистрация: 25.12.2015
Москва
Сообщений: 77
|
Я имею ввиду, если его сделать локальной переменной, после (sssetfirst nil blocks_sset) и завершения работы программы, выбранные объекты автоматически перейдут в новый набор, имя которого сгенерирует автокад?
|
|||
![]() |
|
||||
чисто теоретически да, практически нет. переменная с набором глобализируется.
|
||||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
|
|||
![]() |
|
||||
Инженер-конструктор Регистрация: 25.12.2015
Москва
Сообщений: 77
|
Просто повторяете операцию дважды. Сначала делаете набор с пересечением белыми линиями. Потом набор с пересечением оранжевыми. Затем вычитаете из первого второе. Посмотрите справку по ssdel.
|
|||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
Цитата:
Просто мне кажется или есть более изящное решение или ssdel единственный вариант? |
|||
![]() |
|
||||
|
||||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
Господа! Возникла новая проблема, помогите плз.
Как добавить в этот лисп чтобы блоки выделялись только при пересечении линии (line) черного цвета (7) (любой длины) и линии (line) черного цвета, но с длиной 3.3. Никак не могу найти чтобы можно было использовать 2 свойства... Заранее спасибо! Пока lisp выглядит так Код:
Подумал вот, достаточно будет если будет выделяться блок при пересечении с линией (line) определенного цвет (7) и длины (3.3). Т.е получается в каком то роде это упрощение предыдущего лиспа, но я никак не могу понять как объединить 2 свойства одной линии (цвет и длину). Последний раз редактировалось aafeoktistov, 03.04.2019 в 18:26. Причина: неправильный лисп |
|||
![]() |
|
||||
Инженер-конструктор Регистрация: 25.12.2015
Москва
Сообщений: 77
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 26.02.2019
Сообщений: 49
|
Прикрепил
Нужно добиться того, чтобы блоки выделялись только при пересечении с линиями цвета 7 и длиной 3.3 в другой моей теме был предложен такой вариант, но он почему то не работает, выделяются вообще ВСЕ блоки... Код:
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Быстрый выбор нужного слоя | dim5678 | AutoCAD | 23 | 29.02.2024 23:03 |
Выбор атрибута (площади) по возрастанию и затем нумерация блока | koskos | LISP | 2 | 02.10.2016 21:24 |
Как при пересечении двух линий сделать установку нужного блока в месте пересечения | 128500 | Программирование | 34 | 07.10.2014 11:06 |
Копирование нужного атрибута блока в другой блок. | Alexeipost | Программирование | 4 | 25.05.2011 09:33 |
Привязка только к объектам определенного цвета | Torino | AutoCAD | 30 | 29.03.2004 15:56 |