|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Выделение объектов в области контура, AutoCAD
Тегусегальпа
Регистрация: 23.10.2006
Сообщений: 2
|
||
Просмотров: 46362
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
А если попробовать группы?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
>PAIN Пробуй
Код:
Код:
Код:
***Добавлено*** 2011-03-14 Фрагмент чертежа по прямоугольной, круглой или ломаной границе Команды: SCWP; SCCP Выделение объектов путем указания существующего контура. В качестве контура могут выступать сплайны, полилинии, дуги, круги, элипсы. Контур должен быть выпуклым. Код:
Последний раз редактировалось VVA, 27.06.2012 в 11:40. Причина: Добавил dtr |
|||
![]() |
|
||||
Регистрация: 23.10.2006
Тегусегальпа
Сообщений: 2
|
Большое спасибо что откликнулись))!!
Группы здесь скорее всего не подойдут потому-то они постоянно могут изменятся. В качестве примера вылежал фрагмент расселения, на карте 2 зоны пересекающие друг друга…..и мне нужна такая вещ…При выделении синей или зеленой полилинии должны выделятся ТОЛЬКО все красные точки попавшие в ее контуры. про wpolygon я знаю это немного другое мне нужна именно линия отображающаяся на чертеже а не многоугольный курсор, причем я должен при желании изменить форму или переместить эту линию и соответственно точки попавшие в контур станут другие. Незнаю на сколько всё это решаемо, жду ваших комментариев. Заранее спасибо) [ATTACH]1161695004.jpg[/ATTACH] |
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Судя по картинке это не точки а блоки. Попробуйте этот лиспик. Сначала указываете граничную полилинию, потом образцовый блок. Если надо действительно точки то переделать несложно.
Код:
|
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Тут есть рабочий лисп на эту тему от VVA (корректно второе издание, переработанное и дополненное
![]() Мне, например, надо выделять объекты в области контура (замкнутого, разумеется) точь-в-точь, т.е., именно то, что находится внутри контура, ни больше ни меньше... Лисп же с этой ссылки делает чуть не так. Команда SCWP выделяет только объекты, целиком попавшие в контур, при этом игнорируются те, что находятся по обе стороны контура. А команда SCCP выделяет все те, хотя бы часть которых попала в контур. Лиспом, точнее командой BreakTouching отсюда я разрываю все граничащие с контуром линии. Потом делаю Offset (Подобие) секущего контура внутрь на 0,1мм с удалением исходного секущего контура, и выделяю то, что внутри контура командой SCCP, либо наоборот, Offset наружу и командой SCWP. Подобие нужно потому, как я понял, что наш секущий контур после разрыва всех линий касается этих линий как внутри, так и снаружи себя, что нежелательно в моем случае при использовании ни SCCP, ни SCWP. В принципе, это выход, но очень много манипуляций. Может, можно как-то выбирать объекты внутри контура с их разрывом одной командой? P.S. Изначально хотел, просто донести информацию до кого-то, кому это может пригодиться, но если кто подскажет, как упростить процесс, буду благодарен, хотя и так труда особого не составляет. Вчера коллегу удивил, вырезав из большой карты круглый фрагмент за пятнадцать секунд..... Она break'ом все линии рвала, потом выделяла по одной ![]() Последний раз редактировалось skkkk, 17.01.2014 в 18:37. Причина: Подправил ссылку |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
skkkk, Добавил в #4 dtr (так, для порядку). SCWP и SCCP лучше (обрабатывают дуговые сегменты). Ты все правильно понял и правильно делаешь. В BreakTouching, по-моему, можно вызвать разрыв функцией, но это нужно смотреть.
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 14.03.2011 в 19:40. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Это самое сложное, проще наверное попросить пользователя "ткнуть" мышкой. Как вариант - преобразовать в регион и взять центр тяжести.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Фрагмент чертежа по прямоуг. или кругл. границе
Хотя, пожалуй лучше опубликую тут - ссылки иногда теряются: Код:
Последний раз редактировалось skkkk, 14.05.2009 в 23:46. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
skkkk, ссылочку-то подправь. Она в имеющемся виде ведет в никуда
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Есть еще хороший лисп CookieCutter2 - more fun with ET extrim
Описание Цитата:
Так как там требуется регистрация, то лисп тоже размещу здесь PS. Еще версия http://forum.dwg.ru/showthread.php?t=42985
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 29.03.2012 в 09:39. Причина: Орфография |
|||
![]() |