guohq 发表于 2023-11-17 20:33

批量recover插件

本帖最后由 guohq 于 2023-11-17 20:33 编辑

程序代码

(vl-load-com)
(defun c:BatRecover(/ DwgDir DwgFiles DwgFile)
(setvar "OSMODE" 0)
(setvar "sdi" 1)
(setvar "lispinit" 0)
(setq DwgDir (SelectFolder "选择目录"))
(setq DwgFiles (vl-directory-files DwgDir "*.dwg"))
(foreach DwgFile DwgFiles
    (command "recover" (strcat DwgDir "\\" DwgFile))
    (vl-cmdf "qsave")
)
(setvar "sdi" 0)
(setvar "lispinit" 1)
(vl-cmdf "close")
)


(defun SelectFolder( Title / ShellApp Folder Result)
;Title 表示选择文件对话框的标题
;https://docs.microsoft.com/en-us ... ell-browseforfolder
(setq Result nil)
(setq ShellApp (vlax-create-object "Shell.Application"))
(setq Folder (vlax-invoke-method ShellApp 'BrowseForFolder 0 Title 1))
(if Folder
    (setq Result (vlax-get-property (vlax-get-property Folder 'Self) 'Path))
    )
(vlax-release-object ShellApp)
Result
)


将需要修复的DWG文件保存于同一文件夹下(注意:不要放到某个盘的根目录下),BatRecover 命令,选择相应的文件夹。

备注:批处理部分的代码参照了lq8000写的批处理工具。

批量DWG - AutoCAD与GIS测绘 - AutoCAD论坛 - 明经CAD社区 - ACET - Powered by Discuz! (mjtd.com)

jh3030912 发表于 2023-12-23 22:36

guohq 发表于 2023-12-23 21:28
你的CAD是哪个版本?我是在AutoCAD2020上写的,当时测试没有问题。

我用cad 2021和2023

可以上传一个编辑好的lsp文件吗?
也有可能是我复制粘贴代码出错的问题

guohq 发表于 2023-12-23 21:28

jh3030912 发表于 2023-12-23 19:16
怎么提示出错提示: 输入的列表有缺陷?

你的CAD是哪个版本?我是在AutoCAD2020上写的,当时测试没有问题。

jh3030912 发表于 2023-12-23 23:07

guohq 发表于 2023-12-23 21:27
我也不知道能修复啥,说白了就是批量执行recover   命令

已经解决了,就是复制粘贴代码的原因。

muai2010 发表于 2023-11-17 20:40

之前看到过别人遇到这个问题,居然还有能修复的源码

飞雪神光 发表于 2023-11-17 21:12

这两个变量第一次知道 能跨文档保留函数 真不错 那这操作空间岂不是就很大了 能做很多事情

wangsr 发表于 2023-11-17 22:52

请教楼主这样做对吗

664571221 发表于 2023-11-18 16:49

修复啥的啊

菜鸟初来乍到 发表于 2023-11-18 20:07

感谢大佬分享

magicheno 发表于 2023-11-18 23:28

感谢大佬分享

ghgh0130 发表于 2023-11-19 19:28

感谢楼主分享

jkop 发表于 2023-11-21 09:18

修复批量文档,给力!

paulpipi 发表于 2023-11-21 11:30

感谢无私分享
页: [1] 2
查看完整版本: 批量recover插件