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函数复制少了一段代码.现在可以用了.
页: 1 [2] 3 4
查看完整版本: 把参照绝对路径改为相对路径