看看这是否适合你
已更新
- (defun c:FindMe (/ LM:FindFile Blks blk NewPath XrefFile)
- (vl-load-com)
- (defun LM:FindFile ( file directory )
- (cond
- ( (findfile (strcat (setq directory (vl-string-right-trim "\" directory)) "\" file)) )
- (
- (vl-some
- (function
- (lambda ( dir )
- (LM:FindFile file (strcat directory "\" dir))
- )
- )
- (vl-remove "." (vl-remove ".." (vl-directory-files directory nil -1)))
- )
- )
- )
- )
- (setq Blks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
- (while (setq blk (tblnext "block" (not blk)))
- (if (and [color=blue][b](= 4 (logand 4 (cdr (assoc 70 blk))))
- [/b][/color] (setq NewPath
- (LM:FindFile
- (strcat (cdr (assoc 2 blk))
- ".dwg")
- [b][color=blue] "Y:\\VENKI\ST11\"[/color][/b]))
- )
- (progn (setq XrefFile (vla-item Blks (cdr (assoc 2 blk))))
- (vla-put-path XrefFile NewPath)
- (vla-reload XrefFile))
- )
- )
- )
容器文件夹是代码查找图形上现有外部参照名称的位置。外部参照名称应与以前相同,只是路径不同。
感谢LeeMac的LM:FindFile例程 |