jamesfui 发表于 2022-7-6 08:33:20

保存副本的lsp帮助

你好需要有关创建lsp的帮助,该lsp可以:
 
>在所有打开的DWG上各保存一份副本到指定文件夹,后缀根据现有的“按下一个数字”增加!
 
实例
```````
当前打开的图纸:
abc。图纸,定义。图纸,ghi。dwg等.dwg
 
当执行命令功能时,它将在与上述打开的文件名相同的指定文件夹中创建一个副本,并添加后缀,如下所示;
c: \文档和设置\用户\备份\ abc\U 1。图纸
c: \文档和设置\用户\备份\定义1。图纸
c: \文档和设置\用户\备份\ ghi\U 1。图纸
如果第二次执行命令功能,它将根据现有文件名以1的增量保存另一个副本,如下所示;
c: \文档和设置\用户\备份\ abc\U 2。图纸
c: \文档和设置\用户\备份\定义2。图纸
c: \文档和设置\用户\备份\ ghi\U 2。图纸
谢谢
 

Lee Mac 发表于 2022-7-6 08:55:15

尝试以下操作:
 

(defun c:backup ( / dir dwg dfn sfn inc )

   (setq dir "C:\\YourDirectory") ;; Backup Directory

   (if (vl-file-directory-p (setq dir (vl-string-right-trim "\\" (vl-string-translate "/" "\\" dir))))
       (vlax-for doc (vla-get-documents (vlax-get-acad-object))
         (cond
               (   (not (eq "" (setq sfn (vla-get-fullname doc))))
                   (setq dwg (vl-filename-base (vla-get-name doc))
                         inc 0
                   )
                   (while (findfile (setq dfn (strcat dir "\\" dwg "_" (itoa (setq inc (1+ inc))) ".dwg"))))
                   (vla-save doc)
                   (vl-file-copy sfn dfn)
               )
         )
       )
       (princ "\nInvalid Backup Directory.")
   )
   (princ)
)
(vl-load-com)

 
根据需要更改备份目录。

jamesfui 发表于 2022-7-6 09:32:22

它工作得很好,:lol:b这是我一直想确保我的画安全的最优秀的lsp之一。。。
但它也会触发“qsave”命令,如果可能的话,我更愿意关闭该功能,因为
大多数情况下,我需要创建一个备份副本“之前和之后”。。。因此,如果lastsaved上有字段更新,它将在原始图形上自动更新!!
 
同样是lsp,我尝试将保存文件扩展名从.dwg更改为.bak
它运行/工作正常,但当我尝试将扩展名更改为“.lnk”时
创建的快捷方式*。lnk似乎没有链接回源图形!?!
 
就像当我尝试右键单击“打开文件位置”时,创建的*。lnk不是这样工作的?
 
因此,如果可能的话,关闭“qsave”命令并创建*。lnk工作。谢谢

Lee Mac 发表于 2022-7-6 09:45:41

只需评论这一行:
 
(vla-save doc)
 
创建快捷方式更复杂。
页: [1]
查看完整版本: 保存副本的lsp帮助