Hello all
I have a code from the great friend Lee Mac
Selects several texts and gives the average AND
Draws a line between the texts and the average value
Is it possible, when setting the average value, to paint a line directly?
(defun c:avg ( / a b g i l p s u COT SUM SUMM )
(SETQ SUM 0)
(SETQ COT 0)
(if (setq s (ssget '((0 . "MTEXT,TEXT"))))
(progn
(repeat (setq i (sslength s))
(setq p (assoc 10 (entget (ssname s (setq i (1- i))))))
(setq u (cons (trans (cdr p) 0 1) u))
(setq l (cons p l))
(setq SUMM (ATOF (CDR (ASSOC 1 (entget (ssname s I))))));LEVEL
(setq SUM (+ SUM SUmM))
(setq COT (1+ COT))
(eval SUM)
)
(SETQ MEEM (/ SUM COT))
(SETQ DDD (RTOS MEEM 2 2))
(SETQ PO (GETPOINT "\nPlease Select a Point."))
(command "-mtext" PO "w" "0" (strcat "Avg=" DDD) "" )
;;; (princ "\nSelect Point: ")
(while
(progn (setq g (grread t 13 2) a (car g) b (cadr g))
(cond
( (= 5 a) (redraw)
(foreach x u (grdraw x b 1 1)) t
)
( (= 3 a)
(if (setq s (ssget b '((0 . "MTEXT,TEXT"))))
(progn
(setq p (cdr (assoc 10 (entget (ssname s 0)))))
(foreach x l (entmakex (list (cons 0 "LINE") x (cons 11 p)))) nil
)
;;; (princ "\nPlease Select a Point.")
)
)
)
)
)
)
)
(redraw) (princ)
)