我试过。。。还是不适合我。 有没有办法检查文件是否存在?我想这样保存版本。我在你的代码中添加了一些规则,但我不知道是否可以检查图纸的存在。
(defun c:ssave ( / *error* vars old s )
(defun *error* ( msg )
(and old (mapcar 'setvar vars old))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ)
)
(setq vars '("CMDECHO" "FILEDIA") old (mapcar 'getvar vars))
(mapcar 'setvar vars '(0 0))
(while
(progn
(setq s (getstring (strcat "\nEnter Filename for Save <" (getvar 'DWGNAME) "> : ")))
(cond ( (eq "" s)
(setq s (getvar 'DWGNAME)) nil)
( (not (snvalid s))
(princ "\n** Invalid **")))
)
)if not;check if drawing excist if it does (setq n (1+ n)) and check again***********************************************
(acet-file-mkdir (strcat (getvar "dwgprefix") "\backup\\"))
(setq DWGNM (strcat (getvar "dwgprefix") "\backup\\"(strcat (GETVAR "DWGNAME" ))))
(command "_.saveas" "_2007" (strcat (getvar "dwgprefix") "\backup\\" s (itoa n)))
);and if
(mapcar 'setvar vars old)
(princ)
) 可能类似于:
(defun c:ssave ( / *error* vars old s path dwg )
(vl-load-com)
(defun *error* ( msg )
(and old (mapcar 'setvar vars old))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ)
)
(setq vars '("CMDECHO" "FILEDIA") old (mapcar 'getvar vars))
(mapcar 'setvar vars '(0 0))
(while
(progn
(setq s (getstring (strcat "\nEnter Filename for Save <" (vl-filename-base (getvar 'DWGNAME)) "> : ")))
(cond ( (eq "" s)
(setq s (vl-filename-base (getvar 'DWGNAME))) nil)
( (not (snvalid s))
(princ "\n** Invalid **")))
)
)
(if (not (findfile (setq path (strcat (getvar 'DWGPREFIX) "backup"))))
(vl-mkdir path)
)
(if (findfile path)
(progn
(if (findfile (setq dwg (strcat path "\\" s ".dwg")))
(
(lambda ( i )
(while (findfile (setq dwg (strcat path "\\" s (itoa (setq i (1+ i))) ".dwg"))))
)
0
)
)
(command "_.saveas" "_2007" dwg)
)
)
(mapcar 'setvar vars old)
(princ)
)
但是,不确定您要查找的文件结构是什么?
页:
1
[2]