ziko 发表于 2022-7-6 11:36:39

 
我试过。。。还是不适合我。

CADkitt 发表于 2022-7-6 11:40:27

有没有办法检查文件是否存在?我想这样保存版本。我在你的代码中添加了一些规则,但我不知道是否可以检查图纸的存在。
(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)
)

Lee Mac 发表于 2022-7-6 11:44:20

可能类似于:
 

(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]
查看完整版本: 简单的saveas-LISP