Тема: Отображение в динамики

Вопрос задавал но давно, но не получил на него понятного ответа.
В какой среде можно добиться чтобы редактируемые примитивы в акаде динамически(в реальном времени) изменялись?
Пример: У меня дуга. Перемешаю середину дуги, а концы дуги растягиваюсть или уменьшаюсть по какомуто прописаному закону.

Re: Отображение в динамики

> 23HA2
https://www.caduser.ru/forum/topic15273.html , особенно см. последний постинг (некоего Игоря).

Re: Отображение в динамики

Простенький вариант изменения радиуса дуги в динамике...

 (defun arc-radius ( / GR LST PT)
  (princ "\n Выберите дугу  ")
  (setq    lst (entget
          (car(entsel))
        ) ;_  конец функции entget
    pt (cdr (assoc 10 lst))
  ) ;_  конец функции setq
  (princ "\n Выберите новый радиус  ")
  (while (and (setq gr (grread 5)) (= (car gr) 5))
    (entmod (subst
          (cons 40 (distance pt (cadr gr)))
          (assoc 40 lst)
          lst
        ) ;_  конец функции subst
    ) ;_  конец функции entmod
    (entupd (cdr (assoc -1 lst)))
  ) ;_  конец функции while
) 

Кстати, по теме:
https://www.caduser.ru/forum/topic16415.html
Только-что написал для отрезка...

Re: Отображение в динамики

Спасибо коллеги). Понятно куда двигаться!
Сейчас задача
1.Построить дугу касательную к 2м примитивам и при изменение радиуса необходимо: РЕЗУЛЬТАТ - чтобы изменялось касательность к примитивам.
2.построить дугу проходяшую через точку и касат. к примитивы, результат такой же
Если кто занимался этим дайти совет !!!

Re: Отображение в динамики

To Евгений
К сожалению динамика с grread - бутафория
отсутствие возможности при выполнении этой функции использовать привязки сводит все на нет (((((

Re: Отображение в динамики

> sah-has
Никаких проблем... добавь в мой код поиск точки по привязке и получишь искомое. Я просто хотел продемонстрировать возможность и пути решения задачи, а усложнить код - никогда не поздно...

Re: Отображение в динамики

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

Re: Отображение в динамики

Примерно так...
Реагирует только на конечные и средние точки...
Можно сделать считывание из
"OSMODE" но сейчас совсем нет времени...

 (defun arc-radius ( / GR LST PT)
  (princ "\n Выберите дугу  ")
  (setq  lst (entget
        (car(entsel))
      ) ;_  конец функции entget
  pt (cdr (assoc 10 lst))
  ) ;_  конец функции setq
  (princ "\n Выберите новый радиус  ")
  (while (and (setq gr (grread 5)) (= (car gr) 5))
    (if (osnap (cadr gr) "_nea,_end,_mid")
      (progn
    (entmod (subst
        (cons 40 (distance pt (osnap (cadr gr) "_end,_mid")))
        (assoc 40 lst)
        lst
      ) ;_  конец функции subst
    ) ;_  конец функции entmod
    (entupd (cdr (assoc -1 lst)))))
  ) ;_  конец функции while
)
;;;(arc-radius) 

Re: Отображение в динамики

Спасибо - это похоже на то, что надо
конечно код сильно разрастется, но овчинка выделки стоит.
Еще раз спасибо - буду пробовать