lonshinyoo 发表于 2011-9-8 09:52:44

以系统时间存CAD图

是否有LISP实现以系统时间存当前CAD图,新图是以系统时间格式YYYY-MM-DD(HH-MM-SS) 年-月-日(时-分-秒),存储路径是该图一开始的存储路径
                                          

ruirui999 发表于 2011-9-8 10:51:54

呵呵 。我就有一套这样的小程序。

lonshinyoo 发表于 2011-9-8 11:05:01

ruirui999 发表于 2011-9-8 10:51 static/image/common/back.gif
呵呵 。我就有一套这样的小程序。

兄弟,能否共享一下

xshrimp 发表于 2011-9-8 11:59:04

;;保存时按时间更改名字保存
(defun c:sss ( / date dwgtitled hz newname oldname path);!!!时间名保存
(setq DWGTITLED (getvar "DWGTITLED")) ;指出当前图形是否已命名
(if (= DWGTITLED 0)
    (ALERT "请先保存文件!")
    (progn
            ;"F:\\Tu\\水木年华花园-别墅\\合并01.dwg"
      (setq path (getvar "DWGPREFIX") ;"F:\\Tu\\水木年华花园-别墅\\"            
            oldname (vl-filename-base (getvar "DWGNAME"));"合并01"
            ;"合并01.dwg"
            )      
          (setq date (menucmd "M=$(edtime,$(getvar,date),YY-MO-DD)"));"07-07-05"
          (vl-mkdir (strcat path "bak"))
         
         (if (wcmatch oldname "*`[##-##-##`]#")
         
         (if (wcmatch oldname (strcat "*`[" date "`]#") );判断是不是当前日期.
         (progn
            (setq hz (substr oldname (strlen oldname) 1));后缀
            (if (/= "9" hz)
            (progn
            (setq newname (vl-string-right-trim hz oldname))
            (setq hz (itoa (+ (atoi hz) 1)));后缀增1
            (setq newname (strcat newname hz))            
            (command "_.saveas" "" (strcat path newname ))
            (vl-file-copy   (strcat path oldname ".dwg") (strcat path "bak\\" oldname ".dwg") nil)
            (vl-file-delete (strcat path oldname ".dwg"))
            (vl-file-delete (strcat path oldname ".dwl"))
            (vl-file-delete (strcat path newname ".dwl"))
             );end progn
             (command "_.qsave")
             )
         )
         (progn
             (setq newname (substr oldname 1 (- (strlen oldname) 11)));前缀
             ;(setq newname (strcat path newname "[" date "]1" ))
             (command "_.saveas" "" (strcat path newname "[" date "]1" ))
             (vl-file-delete (strcat path newname "[" date "]1" ".dwl"))
             (vl-file-delete (strcat path oldname ".dwl"))         
             (vl-file-copy   (strcat path oldname ".dwg") (strcat path "bak\\" oldname ".dwg") nil)
             (vl-file-delete (strcat path oldname ".dwg"))
            )
         );end if
            (progn
             (command "_.saveas" "" (strcat path oldname "[" date "]1" ))
             (vl-file-delete (strcat path oldname "[" date "]1" ".dwl"))
             (vl-file-delete (strcat path oldname ".dwg"))
             (vl-file-delete (strcat path oldname ".dwl"))
            )
         )

      )
    )
(princ)
)

hhh454 发表于 2011-9-8 12:02:02

好程序,顶一个。

kwok 发表于 2011-9-8 13:05:52

不错的,支持.

xshrimp 发表于 2011-9-8 14:29:34


;;保存时按时间更改名字保存
(defun c:sss ( / date dwgtitled newname oldname path)
(if (= (getvar "DWGTITLED") 0)
    (ALERT "请先保存文件!")
    (progn
      (setq path (getvar "DWGPREFIX")
          oldname (vl-filename-base (getvar "DWGNAME"))
      )
      (setq date (menucmd "M=$(edtime,$(getvar,date),-)"))
      (setq newname (strcat path oldname date))
      (command "_.save" newname)
    )
)
(princ)
)

yoyoho 发表于 2011-9-9 09:20:59

感谢 xshrimp 楼主分享程序,不错喔!

AMTONNY 发表于 2011-9-10 17:02:31

七楼太强了,顶

诸葛四郎 发表于 2013-11-15 11:23:03

请教一下,这个函数怎么改成

数字在前面变更,日期在后面呢:

比如:

CGD010005-K1AD0AY1(131115)
后面的1变化,日期跟着系统时间变动
页: [1] 2
查看完整版本: 以系统时间存CAD图