Very cool Patrick. Thanks for posting.
Now, lets have some fun
(defun c:SpeakLayers()
(setq layList (list (cdr (assoc 2 (tblnext "LAYER" T)))))
(while (setq layName (cdr (assoc 2 (tblnext "LAYER"))))
(setq LayList (append LayList (list layname)))
)
(setq sapi (vlax-create-object "Sapi.SpVoice"))
(mapcar '(lambda(x) (vlax-invoke sapi "Speak" x 0)) layList)
(vlax-release-object sapi)
)
But don't try this in a big drawing. Neither Control-C or Esc will halt execution.
The evil side takes over.
Add the words "Deleting all objects on Layer [what]." Then install it on coworkers computer.
or
Add a delay between the sayings, and then add the works
"Deleting all objects one layer x unless you yell stop"
Then after the wait say.
"Didn't hear you, proceeding with deletion."