;;;(c) writed by CADCHAJIAN.COM SAVEWITHTIME (defun c:SAVEWITHTIME (/ dwgname path name ext datetime newfilename pos start end cleanname response) (vl-load-com) ;; 获取当前图形的完整路径 (setq dwgname (getvar "dwgname")) (setq path (getvar "dwgprefix")) ;; 如果文件尚未保存,提示先保存 (if (= dwgname "") (progn (alert "请先保存文件!") (exit) ) ) ;; 分离文件名和扩展名 (setq name (vl-filename-base dwgname)) (setq ext (vl-filename-extension dwgname)) ;; 检测并移除已有的 [时间] 后缀 (if (setq pos (vl-string-search "[" name)) (progn (setq start pos) (if (setq end (vl-string-search "]" name start)) (setq cleanname (substr name 1 start)) (setq cleanname name) ) ) (setq cleanname name) ) ;; 生成时间戳 (setq datetime (menucmd "M=$(edtime,$(getvar,date),[YYYYMODD-HHMM])")) (setq newfilename (strcat path cleanname datetime ext)) ;; 命令行确认(支持回车默认Yes) (initget "Yes No") (setq response (getkword (strcat "\n即将保存为 " cleanname datetime ext " [Yes/No] : "))) ;; 修正:response=nil(用户回车)也视为Yes (if (= response "No") (progn (princ "\n用户取消操作") (exit) ) ) ;; 执行保存 (command "_.saveas" "" newfilename) (princ (strcat "\n文件已另存为: " newfilename)) (princ (strcat "\nCADCHAJIAN.COM")) (princ) )