蝙蝠mmx 发表于 2014-7-25 20:40:47

怎样利用LISP把CAD文件保存副本

本帖最后由 Gu_xl 于 2014-7-27 08:54 编辑

请教一下各位高人,想在CAD操作过程中保存文件的同时,再保存一份副本,并且副本保存到另外一个文件夹里,利用LISP程序怎样完成。
谢谢!

http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 蝙蝠mmx的微博

裤裆有异味 发表于 2014-7-25 20:50:44

应该用到反应器+当前文件路径获得+当前文件另存等操作

蝙蝠mmx 发表于 2014-7-26 12:41:06

具体怎样做?谢谢

edata 发表于 2014-7-26 13:46:30

完成后是编辑副本文件还是原来的文件。
保存的概念是将当前文件执行存储操作。
另存的概念是将当前文件存储到用户指定位置,将会编辑刚刚另存的文件。
------------------------
如果是保存完成后保存编辑当前文件,而不是副本文件,那么可以考虑用保存,复制文件。
------------------------

1993063 发表于 2014-7-26 16:04:13

本帖最后由 1993063 于 2014-7-25 22:43 编辑

;;;借花献佛,用我的改了一个,希望是你要的
(Defun SaveCommand (bak b)
(if
    (or
      (= (car b) "QSAVE")
      (= (car b) "SAVEAS")
      (= (car b) "SAVE")
    )(bak1)
)
)
(defun bak1 ()
(vl-mkdir (strcat (Getvar 'DWGPREFIX) "备份目录"))
(vl-file-copy
    (strcat (Getvar 'DWGPREFIX) (Getvar 'DWGName))
    (strcat (Getvar 'DWGPREFIX)
            "备份目录\\"
            (vl-filename-base (Getvar "dwgName"))
            (menucmd "m=$(edtime,$(Getvar,DATE), YYYY-MO-DD HH-MM)")
            ".dwg"
    )
)
)
(Defun bak ()
(vl-load-com)
(if *FileOnSave* (vlr-remove *FileOnSave*))
(setq *FileOnSave* (vlr-Command-reactor nil '((:vlr-CommandwillStart . SaveCommand))))
)(bak)

1993063 发表于 2014-7-26 16:38:43

打开备份文件夹
(startapp "explorer" (strcat (Getvar 'dwgprefix) "备份目录\\"))

蝙蝠mmx 发表于 2014-7-26 22:27:56

1993063 发表于 2014-7-26 16:04 static/image/common/back.gif
;;;借花献佛,用我的改了一个,希望是你要的
(Defun SaveCommand (bak b)
(if


在这谢谢了,请问你的这个加载就可以用了吗?是自动会保存的吗?还有你的这个是和原文件在同一个文件夹下的吧

1993063 发表于 2014-7-26 22:32:48

蝙蝠mmx 发表于 2014-7-26 04:27 static/image/common/back.gif
在这谢谢了,请问你的这个加载就可以用了吗?是自动会保存的吗?还有你的这个是和原文件在同一个文件夹下 ...

加载就可以用,调用反应器.文件保存在图形目录下的备份目录.自己去调试结果

1993063 发表于 2014-7-26 22:35:03

不过用了太多反应器,会使电脑变慢,

tranney 发表于 2014-7-27 06:14:52

请问楼上可是它山之石 另存的源码么?
页: [1] 2
查看完整版本: 怎样利用LISP把CAD文件保存副本