(defun c:ach()
(setvar "CMDECHO" 0)
(setq ss (ssget (list (cons 0 "solid"))))
(setq n (sslength ss))
(setq siz (getreal "\nInput arrow size:"))
(setq i 0)
(while (<= i (- n 1))
(setq si (ssname ss i))
(setq sj (entget (ssname ss i)))
(setq x10 (cadr (assoc 10 sj)))
(setq y10 (caddr (assoc 10 sj)))
(setq x11 (cadr (assoc 11 sj)))
(setq y11 (caddr (assoc 11 sj)))
(setq x12 (cadr (assoc 12 sj)))
(setq y12 (caddr (assoc 12 sj)))
(setq xzj (+ x10 (/ (- x11 x10) 2.0)))
(setq yzj (+ y10 (/ (- y11 y10) 2.0)))
(setq arl (sqrt (+ (* (- xzj x12) (- xzj x12)) (* (- yzj y12) (- yzj y12)))))
(setq sc (/ siz arl))
(setq base (cdr (assoc 13 sj )))
(command "scale" si "" base sc)
(setq x10 nil y10 nil x11 nil y11 nil x12 nil y12 nil base nil arl nil)
(setq i (+ 1 i))
)
(setq ss nil j nil n nil ddd1 nil ddd2 nil sj nil si nil)
(command "redraw")
(princ)
) |