嘻皮客娱乐学习网
标题:
批量修改CAD外部参照
[打印本页]
作者:
xipick
时间:
2011-9-5 02:38
标题:
批量修改CAD外部参照
有一大批图纸,原来引用的外部参照是名称叫做:图框A,
现在这一大批图纸分成了三类,分别放在三个文件夹中,因为他们所要引用的外部参照 图框A 里面的签名是各不一样的,因此为了在不重新插入外部参照的情况下,想要把图框A这个外部参照分别修改成三个不同的版本,但名称还是图框A,然后把这三个不同版本的图框A,分别放到三个新文件夹中,也就是说,现在需要修改这一大批图纸中的参照路径,就可以直接加载修改过的外部参照。
方法如下:
如果手动修改路径的话需要进行下面的操作:假设原图框A放在D盘根目录下面,新版的图框A分别放在D盘根目录下面的新建文件夹1,新建文件夹2,新建文件夹3,里面。
命令: -XREF
输入选项 [?/绑定(B)/拆离(D)/路径(P)/卸载(U)/重载(R)/覆盖(O)/附着(A)] : p
输入要编辑路径的外部参照名: 图框A
外部参照名:图框A
原路径: D:\图框A.dwg
输入新路径: d:\新建文件夹1\图框A.dwg
重载 外部参照 "图框A.dwg": D:\新建文件夹1\图框A.dwg
“图框A”已加载。
=================================================
按上面的方法写一个批处理:
代码:
(defun $$$$$test()
(setq path "d:\\新建文件夹1\\") ;;
(if (tblsearch"block""图框A")(command "-xref""p""图框A"(strcat path "图框A.dwg")))
;;
)
($$$$$test)
把上面的代码存成 acaddoc.lsp ,然后放到需要加载该外部参照的图纸的文件夹中,这样每次打开这个文件夹中的图纸会自动执行更换参照路径。
或者把最下面的 ($$$$$test) 改为(defun c:test()($$$$$test)(princ))
这样需要在每个dwg文件的命令行输入test,再按回车或空格才能够实再自动更换参照路径。
作者:
xipick
时间:
2011-9-5 13:34
其实下面是通用的模式,
复制以下代码
(defun $$$$$test()
(setq path "d:\\新建文件夹\") ;;
(if (tblsearch"block""A")(command "-xref""p""A"(strcat path "C.dwg")))
;;
)
($$$$$test)
复制代码
把上面的代码存成 acaddoc.lsp ,然后放到需要加载该外部参照的图纸的文件夹中,这样每次打开这个文件夹中的图纸会自动执行更换参照路径。
或者把最下面的 ($$$$$test) 改为(defun c:test()($$$$$test)(princ))
这样需要在每个dwg文件的命令行输入test,再按回车或空格才能够实再自动更换参照路径。
关于代码中一些参数的设置:
if (tblsearch"block""A")是检查当前图形中是不是有参照名为A的外部参照,如果有,就执行更换该参照名为A的外部参照的找到路径。如果没有参照名为A的参照,则不试图进行更换路径的操作。
注意,这里A是外部参照的参照名,并不一定是外部参照文件的名称。因为外部参照文件附着到当前图形后,虽然默认的的参照名与外部参照文件的名称一样,但是这个参照名在当前图形中是可以更改的。也就是说参照名可以与这个外部参照文件的名称不一样。
代码中的“test”可以改成任何字母组合,只要与你cad中的快捷键不相冲突就可以了。
d:\\新建文件夹 是新的参照路径,也就是新参照文件所在的目录,可以根据你的实际需要进行修改;A 是原外部参照的参照名称,C.dwg 是新的参照文件名。
此命令的作用是,如果打开的图形中有参照名为A的外部参照,则将外部参照的路径修改为 d:\新建文件夹\C.dwg,但是外部参照名仍然还是A
把此文件命令为acaddoc.lsp后,放在需要进行更换外部参照路径的图的文件夹里,每次打开这个文件夹里面的图,会自动进行此操作。
或者把最下面的 ($$$$$test) 改为(defun c:test()($$$$$test)(princ))
这样需要在每个dwg文件的命令行输入test,再按回车或空格才能够实再自动更换参照路径。
欢迎光临 嘻皮客娱乐学习网 (http://www.xipick.com/)
Powered by Discuz! X3.3