Please note he doesn't want annotative text because problems when sending files to clients if i remember.
(defun C:test (/ scl ss txt style ht)
(setq scl (abs (getint "\nSet Scale(50,100,200,250,500,etc): "))) ;abs to set number always positive
(if (setq ss (ssget '((0 . "TEXT")))) ;filter the selection here no need to test (if (= "TEXT" (cdr b))
(foreach txt (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
(setq txt (entget txt))
(setq style (strcase (cdr (assoc 7 txt))))
(cond
((or (eq "AREA" style)(eq "MULTY AREA" style)(eq "DIAST" style))
(if (eq "DIAST" style)
(setq ht (cons 40 (* 0.00175 scl)))
(setq ht (cons 40 (* 0.003 scl)))
)
(entmod (subst ht (assoc 40 txt) txt))
)
(t ;everything else
(setq ht (cons 40 (* 0.0025 scl)))
(entmod (subst ht (assoc 40 txt) txt))
)
)
)
(prompt "\nNothing Selected")
)
(princ)
)