|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Быстро получить Набор объектов попадающих в Сферу
инженер-дефектоскопист
Санкт-Петербург
Регистрация: 08.12.2006
Сообщений: 58
|
||
Просмотров: 5424
|
|
||||
инженер-дефектоскопист Регистрация: 08.12.2006
Санкт-Петербург
Сообщений: 58
|
Дима_: Можно пояснить поподробней?
Евгений А.: vla-CheckInterference не подойдет. Она работает только с двумя объектами и может возвращать объект-пересечение двух тел. Можно последовательно проверять каждое тело чертежа (из нескольких тысяч) на пересечение со сферой , но это, думаю, займет много времени. |
|||
![]() |
|
||||
Цитата:
1. Получаем набор всех объектов, попадающих в куб со стороной, равной диаметру сферы. 2. проходим по всем объектам и проверяем возможность их пересечений. Как вариант, можно пытаться ускорить этот алгоритм. Если объекты не слишком сложные или объекты предсказуемой конфигурации, я бы предложил написать свою функцию получения расстояний от объекта до точки.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
![]() |
|
||||
инженер-дефектоскопист Регистрация: 08.12.2006
Санкт-Петербург
Сообщений: 58
|
Елпанов Евгений: Про куб то я не подумал! Спасибо. Ведь можно наверно отсечь ненужные элементы кубом, а потом со сферой разбираться..)
Вообщето мне нужно отобрать попадающие в сферу элементы типа линий (0 . "*LINE"), и блоков (0 . "INSERT"). Через интерференцию тел - это извращенный способ, который мне первый в голову пришел.) Так. Какой-бы теперь такой хитрый фильтр для ssget придумать, чтобы сразу выбрать примитивы попадающие в куб? Собственно говоря задача про попадание в сферу полилиний всего чертежа уже мной решена: Вот кривенькая ф-ция координат полилайна Код:
Код:
Код:
Последний раз редактировалось [N.S], 06.08.2009 в 18:55. Причина: дополнение |
|||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Днепройт
Сообщений: 4,853
|
Цитата:
Теми, чей "куб" хоть частично попадает в "куб" сферы, заняться вплотную (с помощью довольно тормозных методов CheckInterference и Intersectwith) |
|||
![]() |
|
||||
Армспорт Регистрация: 18.07.2006
Ейск
Сообщений: 355
|
|
|||
![]() |
|
||||
Метод IntersectWith. Все графические элементы кроме Pviewport и PoligonMesh.
В книге Полещука Н.Н. "AutoLisp и Visual Lisp в среде AutoCAD" Есть функция ent-int (стр. 878). С ее помощью все и делается. Строите хоть сферу (3D солид), хоть куб, хоть звезду и находите пересечение с этим телом этой функцией. А PoligonMesh можно и по частям проверять. |
||||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите, существуют ли практические руководства по Lisp? | vn | LISP | 261 | 26.11.2015 13:27 |
Набор объектов | DEM | Программирование | 21 | 26.03.2014 19:11 |
FILTER / фильтр | BM60 | Справочник команд | 0 | 08.07.2008 15:35 |
Как получить таблицу свойств объектов такую же как в OrCad | passat | AutoCAD | 1 | 08.12.2004 01:12 |