(defun lep (op st)
;;; Получаем примитив
(setq pln (entget (car (entsel))))
;;; Получаем подсписок с DXF-кодом 10
(while (setq el (car pln))
(if (= 10 (car el))
(progn
;;; Получаем точку с координатами текущей вершины полилинии
(setq pt1 (list (cadr el) (caddr el)))
;;; Вставляем блок опоры
(command "_insert" op pt1 1.0 1.0 0.0)
(if pt2
(progn
;;; Вставляем блок опоры в предидущую вершину
(command "_insert" op pt2 1.0 1.0 0.0)
;;; Получаем углы поворота стрелок
(setq ang1 (rad_grad (angle pt1 pt2)))
(setq ang2 (rad_grad (angle pt2 pt1)))
;;; Вставляем стрелки
(command "_insert" st pt1 1.0 1.0 ang1)
(command "_insert" st pt2 1.0 1.0 ang2)
)
)
)
)
;;; Следующая вершина
(setq pln (cdr pln))
;;; Сохраняем точку текущей вершины
(setq pt2 pt1)
)
)
;;; Преобразует радианы в градусы
(defun rad_grad (rad / grad)
(setq grad (* rad (/ 180 pi)))
)