Maybe this too:
(defun regularpolygon-p (ename fuzz / ap d e p pts)
(and (eq (type ename) 'ename)
(eq (cdr (assoc 0 (setq e (entget ename)))) "LWPOLYLINE")
(setq pts (mapcar 'cdr (vl-remove-if-not (function (lambda (x) (= 10 (car x)))) e)))
(> (length pts) 2)
(setq ap (mapcar '(lambda (p) (/ p (length pts))) (apply 'mapcar (cons '+ pts))))
(setq d (distance ap (car pts)))
(vl-every '(lambda (p) (equal (distance ap p) d fuzz)) pts)
)
)
(regularpolygon-p (car (entsel)) 0.0001)