找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1979|回复: 12

[编程申请]:批量更改外部参照路径的程序

[复制链接]
发表于 2005-9-6 20:38:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
图纸中的外部参照路径如果发生改变,则需要打开每一张图纸更改,费时费力,能不能写一个批量更改路径的程序。在程序中可以手动选择新的路径和需要更改路径的图纸文件或文件夹。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-9-6 22:48:16 | 显示全部楼层
你把外部参照拷到文件指定的目录里不是更方便吗,比编程再改方便多了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-8 14:58:57 | 显示全部楼层
这个方法挺行的,但是考到哪个指定目录里呢
ET里面有个工具可以将文件打包的哈,可以把文件里的图片,外部参照等等一起打包带走
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-8 19:14:20 | 显示全部楼层
不好,我就是要统一路径,要是每个人都带一个自己的路径来,管理起来很不方便。
特别是对于开始没有做好这方面工作的图纸。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-8 19:52:09 | 显示全部楼层
最后出成式图的时候让他们都绑定给你就行了,要不就是把所有的图都考在一个目录下,没有子目录,也是可以的,放在哪个目录都可以,不过这样更乱,不建议,你要是统一管理,就是绑定,要是收手别人的活,可能就要一张一张的改图径了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-25 00:44:57 | 显示全部楼层
ET里有个redir命令,专门解决这问题的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-6-14 14:29:03 | 显示全部楼层
设置工程文件路径
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-12-17 19:33:12 | 显示全部楼层
那关键是用lisp 是怎么更换的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

发表于 2008-12-20 12:29:42 | 显示全部楼层

借题问问有没有批量外部参照绝对路径转绝对路径的lsp

借题问问有没有批量外部参照绝对路径转绝对路径的lsp
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-1-24 23:16:04 | 显示全部楼层
;;;**********************************************************
;;; No.6 外部参照对象(BlockReference)引用路径重新指定  函数  
;;;               ---- By  Ayunger Studio 2009.01
;;;**********************************************************
(defun C:ayRefPath(/ SS1 SS2 entName1 entName2 entData1 entData2 isLoop BlkName refBLKFile refFilePath
                                                                           refFileBase refNewPath refNameNew n k i)
        (setvar "cmdecho" 0)
        (if (= #AY_REFBLKPATHDEF nil) (setq #AY_REFBLKPATHDEF ""))
        (setq isLoop T)
        (setq SS2 (ssadd))
        (prompt "\n【提示】选择外部参照(BlockReference)对象...")
        (while isLoop
                (setq SS1 (ssget '((0 . "Insert"))))
                (if (> (sslength SS1))
                        (progn
                                (setq i 0)
                                (while (< i (sslength SS1))
                                        (setq entName1 (ssname SS1 i))
                                        (setq refBLKFile (cdr (assoc 1 (entget (tblobjname "BLOCK" (cdr (assoc 2 (entget entName1))))))))
                                        (if (and refBLKFile (/= refBLKFile "")) (ssadd entName1 SS2))
                                        (setq i (+ i 1))
                                );end_while
                        );end_progn
                );end_if
                (if (and SS2 (> (sslength SS2) 0))
                        (setq isLoop nil);then
                        (progn;else
                                (princ "\n错误: 没有外部参照对象被选择,请重新选择外部参照(BlockReference)对象!")
                                (setq isLoop T)
                                (setq SS1 nil)
                        );end_progn else
                );end_if
        );end_while
       
        (setq SS1 SS2)
        (setq refNewPath (getfiled "指定外部参照文件夹(提示: 任选一文件, 以便返回文件夹名称)" #AY_REFBLKPATHDEF "" 16))
        (if refNewPath
                (progn
                        (setq refNewPath (vl-filename-directory refNewPath))
                        (setq #AY_REFBLKPATHDEF (strcat refNewPath "\\"))
                        (prompt "\n正在加载外部参照(BlockReference)文件,请稍等...")
                        (princ (strcat "\n[No]  [标志]  [图块名称] " (chr 9) " [路径] "))
                        (setq i 0)
                        (setq k 0)
                        (setq n (sslength SS1))
                        (while (< i n)
                                (setq entName1 (ssname SS1 i))
                                (setq entData1 (entget entName1))
                                (setq BlkName (cdr (assoc 2 entData1)))
                                (setq entData2 (entget (tblobjname "BLOCK" BlkName)))
                                (setq entName2 (cdr (assoc -1 entData2)))
                                (setq refBLKFile (cdr (assoc 1 entData2)))
                                (setq refFilePath (vl-filename-directory refBLKFile))
                                (setq refFileBase (vl-filename-base refBLKFile))
                               
                                (setq refNameNew (strcat refNewPath "\\" refFileBase ".Dwg"))
                                (if (findfile refNameNew)
                                        (progn
                                                (vl-cmdf "-xRef" "P"  BlkName refNameNew)
                                                (setq k (+ k 1))
                                                (princ (strcat "\n[" (itoa i) "]  [√]  " BlkName (chr 9) refNameNew))
                                        );end_progn
                                        (princ (strcat "\n[" (itoa i) "]  [×]  " BlkName (chr 9) refFilePath));else
                                );end_if
                                (setq i (+ i 1))
                        );end_while i
                );end_progn
        );end_if
        (princ (strcat "\n【信息】外部参照文件找到并成功加载共 " (itoa k) "/" (itoa n) " 个!"))
        (princ)
);end_defun
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-2-2 01:13:19 | 显示全部楼层
最初由 AyungerStudio 发布
[B];;;**********************************************************
;;; No.6 外部参照对象(BlockReference)引用路径重新指定  函数  
;;;               ---- By  Ayunger Studio 2009.01
;;;********************... [/B]



这么好的程序,怎么没有人顶?*-*a
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-3-19 10:19:24 | 显示全部楼层
http://ayungerstudio.ys168.com  网页中【软件成果】下载【一个非常好用的AutoCAD工具集】,安装后于[文件类]中就有【外部参照路径重新关联】函数:ayRefPath。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

发表于 2021-9-11 16:11:26 | 显示全部楼层
能不能直接从块表把所有的参照路径都改了?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-20 04:40 , Processed in 0.435230 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表