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

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

Контекстное редактирование блока, как выбрать примитивы?

Ответ
Поиск в этой теме
Непрочитано 11.07.2017, 08:33 #1
Контекстное редактирование блока, как выбрать примитивы?
prajdziswet
 
Регистрация: 30.03.2015
Сообщений: 152

Добры день.
Как выбрать или отфильтровать лиспом объекты который входят в блок (при контекстном редактировании)?
Команда (ssget "_X") выбирает все объекты, что впринципе логично. Но хочется выбрать объекты которые входят именно в блок в режиме контестного редактирования...Как это можно сделать (и возможно их выбрать или отфильтровать)?

Заранее: Спасибо за подсказки...
Просмотров: 3893
 
Непрочитано 11.07.2017, 08:45
#2
Кулик Алексей aka kpblc
Moderator

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


Один вопрос - а на фига? Какая конечная цель?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.07.2017, 09:10
#3
prajdziswet


 
Регистрация: 30.03.2015
Сообщений: 152


Хочу подсветить или выбрать примитивы(неважно), которые пересекаются с объектами в блоке. Объекты которые в блоке пересекаются не интересуют...
Объясню например на задаче, может более понятно будет:
например есть блок кабельных лотков, меняется подоснова архитерктура здания => в результате некоторые локти налетают(пересекают) допустим на стенку здания(или другие конструкции).
при контекстном редактировании и подсветке (например другим цветом) или выделении их - можно быстро осмотреть проблемные места (понятно что все придется отсматривать - но так можно заострить внимание на чем-то....). При этом понятно что в контекстном редактировании удобно просматривать и срау подправить блок лотков...
prajdziswet вне форума  
 
Непрочитано 11.07.2017, 09:26
#4
Кулик Алексей aka kpblc
Moderator

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


Так это задача обратная - сначала надо найти эти пересечения. Получаешь координаты примитивов копий блока, через тот же insert проверяешь пересечения - и дальше уже делаешь что надо.
Хотя мне кажется, что для подобных задач надо использовать вертикалки - AutoCAD MEP / Revit MEP
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.07.2017, 13:18
#5
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


prajdziswet, что-то не пойму, задача в итоге - выбрать все примитивы блока при его контекстном редактировании или же выбрать объекты, которые пересекаются с примитивами данного блока?
Если первое - то Алексей как-то выкладывал для этого функцию по сбору списка vla-объектов, входящих в блок.
Если второе, то эта функция, скорее всего тоже понадобится.
Еще интересует вопрос: не будет ли так, что такой же блок лотка сидит еще где-то в чертеже, и он тоже поменяется, хотя и не надо бы? Может, для такой цели больше пойдут динамические блоки?
Я так полагаю, что конечная цель - подсветить (цветом?) блоки, которые с чем-то пересеклись, чтобы визуально оценить, изменить "наезжающие" и перекрасить обратно?
Для полного понимания картины хорошо бы приложить файл.
skkkk вне форума  
 
Непрочитано 11.07.2017, 14:43
#6
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,811
Отправить сообщение для Cfytrr с помощью Skype™


Цитата:
Сообщение от prajdziswet Посмотреть сообщение
Хочу подсветить или выбрать примитивы(неважно), которые пересекаются с объектами в блоке. Объекты которые в блоке пересекаются не интересуют...
...
А использование команды INTERFERE не позволит найти все пересечения?
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Автор темы   Непрочитано 11.07.2017, 15:06
#7
prajdziswet


 
Регистрация: 30.03.2015
Сообщений: 152


Цитата:
Сообщение от skkkk Посмотреть сообщение
prajdziswet, что-то не пойму...
я думал пересечение определить по линиям, тоесть думал найти расчетным путем, или по занимаемому месту объекта....
а задача было "выбрать все примитивы блока при его контекстном редактировании" так все примитивы я получаю (ssget "_X") - и потом убрать из пересекаемых те что входят только в блок...
Цитата:
Сообщение от skkkk Посмотреть сообщение
Если второе, то эта функция, скорее всего тоже понадобится.
я так понимаю функция для блока - а не "контекстного редактирования" так как в контекстном редактировании ты можешь добавить линии и пока его не сохранил (не вышел из режима) набор у тебя старый и данный скрипт не подходит...
Цитата:
Сообщение от skkkk Посмотреть сообщение
Для полного понимания картины хорошо бы приложить файл.
мх открыл, похожую задачу и тут полоса заземления (зеленая штриховая) Нажмите на изображение для увеличения
Название: 001.png
Просмотров: 23
Размер:	34.8 Кб
ID:	190863 наверное и при лотках пересечений будет куча. Тоесть задача бредовая - Алексей наверное удали вопрос(тему эту) тогда из форума - "не додумал"

п.с Хоть у меня все равно остался вопрос "можно ли выбрать объекты блока при контекстном редактировании (так для себя - интересно), хоть задачи получается не осталось....
prajdziswet вне форума  
 
Непрочитано 11.07.2017, 15:35
#8
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от prajdziswet Посмотреть сообщение
Алексей наверное удали вопрос(тему эту) тогда из форума
Ты про эту: http://forum.dwg.ru/showthread.php?p...0&#post1659790 ?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.07.2017, 15:40
#9
prajdziswet


 
Регистрация: 30.03.2015
Сообщений: 152


Наверное обе, чтобы не заграмождать форум:
- там вопрос так и не решен - да оно позволяет закрыть редактор при взрыве СПДС (ну или прокси-объектов == наверное многие знают что или за СПДС или за прокси ошибки, а как решить невзрывая - неизвестно)
- а тут вопрос пока безполезен зачем выбирать элементы при контестном реактировании
....
Спасибо...
prajdziswet вне форума  
 
Непрочитано 11.07.2017, 16:06
#10
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Цитата:
Сообщение от prajdziswet Посмотреть сообщение
я так понимаю функция для блока - а не "контекстного редактирования" так как в контекстном редактировании ты можешь добавить линии и пока его не сохранил (не вышел из режима) набор у тебя старый и данный скрипт не подходит...
Я наверное, поторопился с ответом, и не по этой причине. А по причине того, что код возвращает список примитивов в описании блока, а не во вхождении.
Да и думается мне, что вопрос надо бы решить по-другому. Только вот вопрос так и не понятен до конца. Я бы копал в сторону габаритного контейнера блока и все же сделал бы его динамическим для удобства редактирования. Без файла с примером сказать что-либо наверняка трудно.
skkkk вне форума  
 
Непрочитано 11.07.2017, 16:40
#11
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


кстати о блоках, есть такой лисп, чтобы мог выбирать все блоки в чертеже и менять цвета внутри блока? есть чертеж, с блоками из макростэйшн, почему то в автокаде не могу войти в редактор блока (запрашивает имя блока), остается только взрывать блок, чтобы цвет поменять
Рyslan вне форума  
 
Автор темы   Непрочитано 11.07.2017, 16:55
#12
prajdziswet


 
Регистрация: 30.03.2015
Сообщений: 152


Цитата:
Сообщение от skkkk Посмотреть сообщение
Без файла с примером сказать что-либо наверняка трудно.
331-060-ЭОГ_007.dwg
пример с заземлением(правда тут не блок а слоем), с лотками будет примерно тоже самое, только добавятся угловые элементы и может не столько переходов...
ну вот правда не мой, но с лотками Каб.конструкции.dwg , может правда проходок нету в стенах, но не важно

смести любую из стен здания и получишь пример...

Цитата:
Сообщение от skkkk Посмотреть сообщение
А по причине того, что код возвращает список примитивов в описании блока, а не во вхождении.
Тут как раз надо вхождения, при чем конкретное "контекстное редактирование", если ты откроешь простое вхождение (ну как обычный редактор блоков у тебя и ssget вернет то что надо) + надо учитывать, что в "контекстном" у тебя могут быть уже новые элементы, котрых в блоке как бы нет (ты еще не вышел с редактора и объекты не обновились)...

все что мне приходит в голову как выбрать элементы при "контекстное редактирование", это получить сначала все а потом проходить и проверять можно ли удалить объект - если объект нелья удалить, то скорее всего они в входят в данный блок (конечно кроме случаев когда слой заблокирован, ну можно добавить проверку что входят в описание блока (для заблокированных))....

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

----- добавлено через ~15 ч. -----
Цитата:
Сообщение от Рyslan Посмотреть сообщение
кстати о блоках, есть такой лисп, чтобы мог выбирать все блоки в чертеже и менять цвета внутри блока?
есть - ищи (google в помощь.. ), где-то лиспик был вроде наверное Алексея, что "нормализует" блоки (выставляет цвет по-блоку и т.д)
Цитата:
Сообщение от Рyslan Посмотреть сообщение
почему то в автокаде не могу войти в редактор блока
да есть такие блоки, что имя не подхватывает и не видит его,хоть пишет что блок -тогда взрываю и
Код:
[Выделить все]
 (if (/= (setq temp1234 (ssget "_p")) nil) (sssetfirst nil temp1234) (alert "Измененных объектов нету"))
-выделяю и пересобираю блок...

п.с но это тема не про это,..

Последний раз редактировалось prajdziswet, 12.07.2017 в 07:56.
prajdziswet вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Контекстное редактирование блока, как выбрать примитивы?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрет на редактирование значения атрибута в составе вхождения блока hwd AutoCAD 10 26.01.2016 12:02
В определении блока некорректно указывается устройство печати hwd AutoCAD 8 25.12.2012 16:06
Не появляется контекстное меню при редактировании блока KriM AutoCAD 3 14.08.2012 19:36
Странное поведение динамического блока высотной отметки hwd Динамические блоки 12 08.09.2011 11:15
Перевод имени блока в имя переменной и обратно Supermax Программирование 11 14.12.2009 23:26