2017-02-17 4 views

ответ

0

Если вы хотите использовать команду 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) 
) 
Смежные вопросы