masterlong 发表于 2017-7-27 22:54:32

参照就算了布局不让用这就是搞笑了打个比方一个大地下室不用布局图框要套1:300的A0哪个专业都别想把图画出来

走走逛逛瞧瞧 发表于 2018-3-29 13:07:34

怎么查询已知图中所有外部参照的路径呢

cghdy 发表于 2019-5-21 09:30:40

在寻求一个获取参照路径的的代码,有朋友知道的可以指点一下吗:handshake

20060510412 发表于 2019-5-21 09:54:57

第一次在CAD论坛里面遇到吐槽使用布局和外部参照的,懵逼……

尘缘一生 发表于 2021-8-10 22:34:28

wudechao 发表于 2016-6-21 22:57
;20160621修改版本
(defun c:xfx (/ *error* ss ffg k path files path2 path3 m m2 n n2 total tst temp...

最好别选择参照文件夹,匆图中所有参照取得。。。。。。

依然小小鸟 发表于 2021-8-11 21:20:28

xiaojiajun160 发表于 2021-11-1 17:36:48

暂时用不到,先打卡!

〓桠枫〓/db 发表于 2022-2-1 13:01:39

很好,实用!!!

moshouhot 发表于 2022-10-26 18:52:16


;改一下,增加如果参照存在,只改路径,增加支持父目录,子目录,孙目录。。。。。。。
(defun c:WBCZ (/ file scale1 pt0 i total ss filename ent obj elist blkdef)
(vl-load-com)
(defun ffg-path-xiangdui (path-file / tst m m2 ffg n n2 path3 path2 temp xpath path-xiangdui)
(setq tst nil
    m 0
)
(setq ffg (getvar "dwgprefix"))
(setq m (vl-string-mismatch ffg path-file 0 0))
(if (>= m (strlen ffg))
   (progn
    (setq tst t)
   )
   (progn
    (setq n 0
      n2 0
      path3 ""
    )
    (setq path2 (substr ffg (1+ m)))
    (setq m2 (strlen path2))
    (repeat m2
   (setq temp (ascii (substr path2 (- m2 n) 1)))
   (if (= temp 92)
      (setq n2 (+ 1 n2))
   )
   (setq n (+ 1 n))
    )
    (repeat n2
   (setq path3 (strcat ".." (chr 92) path3))
    )
   )
)
(setq xpath (substr path-file (1+ m)))
(if (= xpath "")
   (progn
    (setq path-xiangdui (strcat "." (chr 92) xpath))
   )
   (progn
    (if tst
   (setq path-xiangdui (strcat "." (chr 92) xpath))
   (setq path-xiangdui (strcat path3 xpath))
    )
   )
)
path-xiangdui
)
(setvar "cmdecho" 0)
(if (setq file (getfiled "选择参照文件" (strcat (getvar "dwgprefix") "\\") "dwg" 16))
(progn
   (if (= (tblobjname "block" (vl-filename-base file)) nil)
    (progn
   (setq scale1 (getvar "userr4"))
   (if (equal scale1 0 0.0001)
      (progn
       (setq scale1 1.00)
       (setvar "userr4" scale1)
      )
   )
   (setq scale1 (getreal (strcat "\n请输入图形放大系数 < " (rtos scale1 2 2) " >:"))
       scale1 (if scale1
         scale1
         (getvar "userr4")
          )
   )
   (setq pt0 (getpoint "\n指定插入点:"))
    )
    (progn
   (setq i 0
       total 0
   )
   (setq ss (ssget "x" '((0 . "insert"))))
   (repeat (sslength ss)
      (setq obj (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (cdr (assoc 2 (entget (ssname ss i))))))
      (if (and
       (= (vla-get-name obj) (vl-filename-base file))
       (= (vla-get-isxref obj) :vlax-true)
      )
       (progn
    (setq filename (vla-get-name obj))
    (vla-put-path obj (ffg-path-xiangdui file))
    (setq total (1+ total))
       )
      )
      (setq i (1+ i))
   )
   (prompt (strcat "\n参照已经存在,仅仅修改路径。修改了 " (itoa total) " 个名称为\" " filename " \"的参照块路径."))
    )
   )
)
)
(if pt0
(progn
   (command "-xref" "a" file "s" scale1 "r" "0.0" pt0)
   (setq ent (entget (ssname (ssget "L" '((0 . "insert"))) 0)))
   (setq obj (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (cdr (assoc 2 ent))))
   (setq elist (entget (tblobjname "block" (cdr (assoc 2 ent)))))
   (setq blkdef (vlax-ename->vla-object (cdr (assoc 330 elist))))
   (vla-put-path blkdef (ffg-path-xiangdui file))
)
)
(command "_xref" "r" "*")
(setvar "cmdecho" 1)
(princ)
)
页: 1 2 3 [4]
查看完整版本: 把参照绝对路径改为相对路径