pxt2001
发表于 2014-6-3 22:57:49
绝对路径改相对路径,这个功能很好,哪位高手能完善程序,搞一个最终版本
mj0000
发表于 2014-6-6 12:16:19
wudechao 发表于 2014-6-3 18:12 static/image/common/back.gif
你这段代码好象不能修改参照路径更改后的图,比如:原来被参照的文件放在文件根目录下,现在改为子目录下.
我的图都在文件根目录下,看起来方便
clinber
发表于 2014-6-16 10:59:26
楼主 你这个代码64位的cad2014用不了啊
spp_wall
发表于 2014-7-23 11:35:17
怎么08也不能用!!!!!
clinber
发表于 2015-2-10 15:11:31
命令: (LOAD "C:/Users/Administrator/Desktop/xl/参照.lsp") ; 错误: 输入的列表有缺陷
风流少年时
发表于 2015-9-5 13:18:24
对于嵌套参照无效
mj0000
发表于 2015-9-30 11:33:22
本帖最后由 mj0000 于 2015-9-30 11:35 编辑
wudechao 发表于 2014-6-3 18:12 static/image/common/back.gif
你这段代码好象不能修改参照路径更改后的图,比如:原来被参照的文件放在文件根目录下,现在改为子目录下.
改了下代码,支持子目录;;;;参照图块路径改为“相对路径” 且 自动重载XREF ---- 支持子目录
(defun C:Tools-BLK-XrefPathAutoLoad (/ ssg xpath i obj enl elist blkdef path n Sub_Path)
(setq ssg (ssget "x" '((0 . "insert"))))
(setq XPath (getvar "dwgprefix")) ;_取得当前文档路径
(setq i 0)
(setq n 0)
(if ssg
(repeat (sslength ssg)
(setq obj (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (cdr (assoc 2 (setq enl (entget (ssname ssg i)))))))
(if (= (vla-get-isxref obj) :vlax-true) ;_判断给定的图块是否为XRef图块
(progn
;;(vla-put-path obj (strcat xpath (vla-get-name obj) ".dwg"));_参照图块路径改为“绝对路径
(setq elist (entget (tblobjname "block" (cdr (assoc 2 enl))))) ;_获取参照图块的图元表
(setq blkdef (vlax-ename->vla-object (cdr (assoc 330 elist))))
(setq path (vla-get-path blkdef)) ;_取得外部参照的路径
(setq m (vl-string-mismatch XPath path 0 0 t)) ;_前面有多少个相同的字符
(setq Sub_Path (substr path (1+ m))) ;获取图块参照路径的子串
(vla-put-path blkdef (strcat ".\\" Sub_Path)) ;_参照图块路径改为“相对路径”
(setq n (1+ n))
)
)
(setq i (1+ i))
)
)
(if (> n 0)
(progn
(command "_xref" "r" "*")
(prompt (strcat "\n总共有 \" " (itoa n) " \"个参照物体路径改为相对路径."))
)
(princ "\n**** 没有外部参照 或 外部参照没有加载 ****")
)
(princ)
)
mj0000
发表于 2015-9-30 11:34:29
风流少年时 发表于 2015-9-5 13:18 static/image/common/back.gif
对于嵌套参照无效
嵌套的得去嵌套文件修改
风流少年时
发表于 2015-10-23 11:09:51
flytoday 发表于 2014-5-23 18:41 static/image/common/back.gif
最讨厌设计院的图插入参照啦………你说没事搞布局与参照干嘛………烦不烦啊…………给别人电子档时候参照没 ...
看兄台这么回复应该不是设计院的,所以不知道一线设计人员的痛苦,真正做了才知道你这么说是多麽的搞笑和无知!
wudechao
发表于 2015-11-13 12:46:12
clinber 发表于 2014-6-16 10:59 static/image/common/back.gif
楼主 你这个代码64位的cad2014用不了啊
不好意思,ffg-getfolder函数复制少了一段代码.现在可以用了.