I was playing around with one of those situations where you are forced to use command to visually place something and I scratched this out...
(defun AT:Command (cmd / *error* c e n lst)
(defun *error* (msg) (and c (setvar 'CMDECHO c)) (reverse lst))
(setq e (entlast))
(setq c (getvar 'CMDECHO))
(setvar 'CMDECHO 1)
(command cmd)
(while (eq 1 (logand 1 (getvar 'CMDACTIVE))) (command PAUSE))
(or (equal (setq n e) (entlast)) (while (setq n (entnext n)) (setq lst (cons n lst))))
(*error* nil)
)