;; (c) 2010, Fred R. Weaver ;; fred@fredweaver.biz ;; SPRAY POINTS (defun c:spray ( / p0 xs-set cnt ent data p1 ang rod) (while (setq p0 (getpoint "\nPick center of bolt pattern: ")) (prompt "\nSelect POINTS to rotate: ") (while (setq xs-set (ssget)) (setq cnt 0) (repeat (sslength xs-set) (setq ent (ssname xs-set cnt)) (setq cnt (1+ cnt)) (setq data (entget ent)) (if (= (cdr (assoc 0 data)) "AECC_POINT") (progn (setq p1 (list (car (cdr (assoc 11 data)))(cadr (cdr (assoc 11 data))) 0.0)) (setq ang (cdr (assoc 142 data))) (if (< (distance p0 p1) 0.001) (setq rot 0) (setq rot (angle p0 p1)) ) (setq data (subst (cons 142 rot )(assoc 142 data) data)) (entmod data) (entupd ent) ) ) ) ) ) (princ) )