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

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

Выбор всех объектов внутри замкнутой полилинии

Ответ
Поиск в этой теме
Непрочитано 29.09.2011, 12:19 #1
Выбор всех объектов внутри замкнутой полилинии
fellow123
 
Регистрация: 29.09.2011
Сообщений: 13

Доброго времени суток!
Поискали на форуме, но так и не нашел ответ на вопрос: есть ли программным путем или стандартными средствами в Autocad решить проблему выбора объектов находящихся внутри замкнутой полилинии. Я занимаюсь топографическим съемками и при обновлении информации иногда нужно просто удалить старую находящуюся в определенном контуре и просто вставить обновленную. Если кто уже решал подобную задачу, подскажите!!
Заранее благодарен за ответы!
Просмотров: 18810
 
Автор темы   Непрочитано 29.09.2011, 12:24 Выбор всех объектов внутри замкнутой полилинии
#2
fellow123


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


Доброго времени суток!
Поискали на форуме, но так и не нашел ответ на вопрос: есть ли программным путем или стандартными средствами в Autocad решить проблему выбора объектов находящихся внутри замкнутой полилинии. Я занимаюсь топографическим съемками и при обновлении информации иногда нужно просто удалить старую находящуюся в определенном контуре и просто вставить обновленную. Если кто уже решал подобную задачу, подскажите!!
Заранее благодарен за ответы!
fellow123 вне форума  
 
Непрочитано 29.09.2011, 12:25
#3
Profan


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


Использовать для выбора объектов секущий многоугольник (обвести им полилинию)?
Profan вне форума  
 
Автор темы   Непрочитано 29.09.2011, 12:30
#4
fellow123


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


Цитата:
Сообщение от Profan Посмотреть сообщение
Использовать для выбора объектов секущий многоугольник (обвести им полилинию)?

Можно подробней? Какая команда?
fellow123 вне форума  
 
Непрочитано 29.09.2011, 12:36
#5
Profan


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


Команда "_ERASE" ("СТЕРЕТЬ") с опцией "_CP" ("СМ").
Profan вне форума  
 
Автор темы   Непрочитано 29.09.2011, 12:43
#6
fellow123


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


не получается что то
секущий многоугольник имеется ввиду region?
как набрать в ком. строке: _erase_cp не проходит
fellow123 вне форума  
 
Непрочитано 29.09.2011, 12:46
#7
Profan


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


Сначала ввести _erase, потом на запрос выбора объектов ввести _cp.
Profan вне форума  
 
Автор темы   Непрочитано 29.09.2011, 12:46
#8
fellow123


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


Цитата:
Сообщение от Profan Посмотреть сообщение
Команда "_ERASE" ("СТЕРЕТЬ") с опцией "_CP" ("СМ").
не получается что то
секущий многоугольник имеется ввиду region?
как набрать в ком. строке: _erase_cp не проходит
fellow123 вне форума  
 
Непрочитано 29.09.2011, 12:48
#9
Profan


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


Смотри #6.
Profan вне форума  
 
Автор темы   Непрочитано 29.09.2011, 12:51
#10
fellow123


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


Цитата:
Сообщение от Profan Посмотреть сообщение
Сначала ввести _erase, потом на запрос выбора объектов ввести _cp.
да так работает!
ну все таки может с помощью полилинии как то возможно так сделать?
просто участки довольно большие с большим количеством точек, а полилинию я создаю с помощью склейки многих линий. так что на это уходит не много времени, а обводить таким полигоном довольно длительный процесс!
fellow123 вне форума  
 
Непрочитано 29.09.2011, 12:59
1 | #11
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 357
<phrase 1=


Тоже как-то был озадачен похожей проблемой..решил для себя этим лиспом- попробуй, может пригодится...сразу оговорюсь,что не сильно разбираюсь в Lisp и данный код собрал из кусков..не помню уж в каких случаях,но бывает что работает не так как хочется..короче -пробуй.
Вложения
Тип файла: lsp CLAR.lsp (22.5 Кб, 1034 просмотров)
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
 
Автор темы   Непрочитано 29.09.2011, 13:08
#12
fellow123


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


Цитата:
Сообщение от getr Посмотреть сообщение
Тоже как-то был озадачен похожей проблемой..решил для себя этим лиспом- попробуй, может пригодится...сразу оговорюсь,что не сильно разбираюсь в Lisp и данный код собрал из кусков..не помню уж в каких случаях,но бывает что работает не так как хочется..короче -пробуй.


Спасибо! работает!!
fellow123 вне форума  
 
Непрочитано 29.09.2011, 14:08
2 | #13
Кулик Алексей aka kpblc
Moderator

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


Чтобы по всем вершинам не кликать:
Код:
[Выделить все]
 (defun sel-by-pline (/ ent ss)
  (if (and (= (type (setq ent (vl-catch-all-apply
                                (function
                                  (lambda ()
                                    (ssname (ssget "_:E" '((0 . "LWPOLYLINE") (70 . 1))) 0)
                                    ) ;_ end of lambda
                                  ) ;_ end of function
                                ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'ename
              ) ;_ end of =
           (= (type (setq ss (vl-catch-all-apply
                               (function
                                 (lambda ()
                                   (ssget "_wP"
                                          (mapcar
                                            (function cdr)
                                            (vl-remove-if-not
                                              (function
                                                (lambda (x)
                                                  (= (car x) 10)
                                                  ) ;_ end of lambda
                                                ) ;_ end of function
                                              (entget ent)
                                              ) ;_ end of vl-remove-if-not
                                            ) ;_ end of mapcar
                                          ) ;_ end of ssget
                                   ) ;_ end of lambda
                                 ) ;_ end of function
                               ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              ) ;_ end of =
           ) ;_ end of and
    (sssetfirst ss ss)
    ) ;_ end of if
  ) ;_ end of defun
Парочка "но": полилиния не должна иметь самопересечений; дуговые сегменты не обрабатываются.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.09.2011, 14:40
#14
fellow123


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


СпасибО!! Работает!!
fellow123 вне форума  
 
Непрочитано 29.09.2011, 19:18
1 | #15
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


LISP.Выделение объектов в области контура
Выделение объектов в области контура, AutoCAD
Выделение снаружи _pline
Удаление объектов находящихся за заданным контуром
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 30.09.2011, 07:04
#16
fellow123


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


Еще один вопрос! Думаю он тоже может подойти к этой теме!
Может есть лисп который может сделать такие же действия только по заданным координатам Z (высотам, отметкам)? То есть удалить всю информацию ниже какой то отметки, высоты или выше.

Последний раз редактировалось fellow123, 30.09.2011 в 13:17.
fellow123 вне форума  
 
Непрочитано 30.09.2011, 13:53
#17
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


А точно лисп нужен? Я обычно сбоку смотрю и стираю то что ниже опеделённой отметки. Часто бывает 3Д-линия идёт нормально,
а потом вдруг скачет на ноль. Я её отмечаю, возвращаюсь в обычный вид и исправляю ошибку.
Victor вне форума  
 
Автор темы   Непрочитано 30.09.2011, 13:59
#18
fellow123


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


дело в том что я занимаюсь проектированием и нужно частенько делать погоризонтные планы. Было бы очень удобно если бы нужный диапазон отметок сразу отсекался автоматически!
fellow123 вне форума  
 
Непрочитано 07.03.2017, 08:58
#19
tujn08


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


Привет! Как правильно использовать: (ssget "_WP"....?
или то, что поможет выбирать многоугольником, визуально показывая границы выбора (не секущей рамкой)
Хочу получить набор блоков из слоя, а визуально как если бы выбирал: (command "_select" "_wp").

Спасибо!
tujn08 вне форума  
 
Непрочитано 07.03.2017, 09:13
#20
Кулик Алексей aka kpblc
Moderator

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


См.ключи ssget. Ну и не забывай про то, что при подобных режимах выбора все точки должны быть видны на экране.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Выбор всех объектов внутри замкнутой полилинии

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Простановка площадей внутри полилинии. Klo LISP 26 14.12.2018 17:43
Задание начальной точки у замкнутой полилинии Sky_cool Программирование 2 23.01.2008 11:11
как узнать координаты всех объектов в определенных слоях? kikach Программирование 2 04.01.2008 11:54
некорректно определяется площадь замкнутой полилинии elena_din AutoCAD 16 23.09.2005 17:37
Нужна прога для преобразования ВСЕХ примитивов в полилинии timurka AutoCAD 4 25.11.2003 05:15