Если вы хотите использовать команду SAVEAS, перед вызовом SAVEAS вы должны удалить все не выбранные объекты из чертежа. Вы должны иметь в виду, что AutoLISP запускается в контексте документа, поэтому процедура LISP завершается, как только команда SAVEAS уничтожает текущий документ.
(defun c:foo (/ s1 s2 i)
(if (setq s1 (ssget))
(progn
(setq s2 (ssget "_X"))
(repeat (setq i (sslength s1))
(ssdel (ssname s1 (setq i (1- i))) s2)
)
(repeat (setq i (sslength s2))
(entdel (ssname s2 (setq i (1- i))))
)
(command "_.saveas"
""
(strcat
"C:\\Temp\\DrawingFromSelection_"
(menucmd "M=$(edtime,$(getvar,date),YYYYMMDD-HHMMSS)")
)
)
)
)
(princ)
)