01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
| (defun C:EF_TodaySave ( / name basename ext fullname bakname path time newname)
(setq name (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument) 'Name))
(setq fullname (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument) 'FullName))
(setq path (vl-filename-directory fullname))
(setq ext (vl-filename-extension name))
(setq basename (vl-filename-base name))
(setq bakname (strcat path "\\" basename ".bak"))
(setq time (menucmd "m=$(edtime,$(getvar,DATE),YYYY-MO-DD HH-MM-SS)"))
(cond ((= fullname "") ;从未存过盘
(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) "SAVE ")
)
((wcmatch (strcase name) "*`[####-##-## ##-##-##`].DWG")
(setq newname (strcat path "\\" (substr basename 1 (- (strlen basename) 21)) "[" time "]" ext))
(if (= (strcase fullname) (strcase newname))
(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) "SAVE ")
(progn
(vl-cmdf "SAVEAS" "" newname)
(if (= (getvar 'ISAVEBAK) 1) ;检测是否需要备份
(vl-file-rename fullname (strcat path "\\" (vl-filename-base newname) ".bak"))
(vl-file-delete fullname)
)
(if (vl-file-size bakname) (vl-file-delete bakname))
)
)
)
(T
(setq newname (strcat path "\\" basename "[" time "]" ext))
(vl-cmdf "SAVEAS" "" newname)
(if (= (getvar 'ISAVEBAK) 1) ;检测是否需要备份
(vl-file-rename fullname (strcat path "\\" (vl-filename-base newname) ".bak"))
(vl-file-delete fullname)
)
(if (vl-file-size bakname) (vl-file-delete bakname))
)
)
(princ)
)
|