Тема: Пересечение примитивов!

Есть примитив - дуга, как узнать, какие примитивы она пересекает?

Re: Пересечение примитивов!

и мне тоже интересно. и кстати как получить координаты пересечений

Re: Пересечение примитивов!

Получение точек пересечения примитивов с помощью функций ACET:
(acet-geom-intersectwith (ssname (acet-ui-entsel alst) 0) (ssname (acet-ui-entsel alst) 0) 0)
(vlax-safearray->list(vlax-variant-value (VLA-INTERSECTWITH (vlax-ename->vla-object(ssname (acet-ui-entsel alst) 0)) (vlax-ename->vla-object(ssname (acet-ui-entsel alst) 0)) 0)))
Форма получаемых результатов, естественно, будет разная.
По этой же схеме можно получить список примитив, которые пересекают выбранный примитив:
(setq ss1 (ssname (acet-ui-entsel alst) 0)); Это имя выбранного примитива
(setq nab (ssdel ss1 (ssget "_A")))        ; Это набор всех примитивов рисунка без выбранного примитива
Далее выбираете любую привычную Вам схему выделения примитивов из набора по признаку их пересечения с исходным и/или другим признакам или фильтрам.

Re: Пересечение примитивов!

Можно и так находить точки пересечения примитивов без АСЕТ:
( с конференции cad.dp.ua)
(defun Intersect (/ Prim1 Prim2 Points Rezult)
(setq Prim1 (vlax-ename->vla-object (car (entsel "Объект1:")))
Prim2 (vlax-ename->vla-object (car (entsel "Объект2:")))
Points (vl-catch-all-apply 'vla-IntersectWith (list Prim1 Prim2 acExtendNone))
)
(cond
((vl-catch-all-error-p Points) nil)
((vl-catch-all-error-p
(setq Points (vl-catch-all-apply 'vlax-safearray->list (list (vlax-variant-value Points))))
) nil
)
(t Points ;Преобразование к удобочитаемому списку точек
(while Points
(setq Rezult (cons (list (car Points) (cadr Points) (caddr Points)) Rezult)
Points (cdddr Points)
)
)
Rezult
)
)
>shura-alex
У меня Мар4, но Ваши пример почему-то не работает. ЕТ загружено, но не узнает команд. Может в комплекте идет более старый ЕТ или это для 2002?

Re: Пересечение примитивов!

> BelPolk
Посмотрите acetauto.lsp, там расписаны все загружаемые команды и функции.
etv1-9.exe скачан c URL:
http://www-eng.lbl.gov/~anita/pdm/etv1-9.exe
объем: 2714kB
А использовать ET или не использовать - это воля каждого.
Вы, наверное, сами-то используете что-то из ET, иначе зачем устанавливали. Так почему же не воспользоваться этим  приложением программистам так же, как его используют чертежники?