批量修改CAD外部参照
2012-05-04 15:37阅读:
有一大批图纸,原来引用的外部参照是名称叫做:图框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,再按回车或空格才能
够实再自动更换参照路径。
其实下面是通用的模式,
复制以下代码
- (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,再按回车或空格才能够实再自动更换参照路径。
cad外部参照管理器
13.3.1 启动外部参照管理器
对于图形中所引用的外部参照,AutoCAD主要是通过外部参照管理器(Xref
Manager)来进行管理的,其命令调用方式为:
工具栏:“Reference(外部参照)”→
(或“Insert(插入)”→ )
菜单:【Insert(插入)】→【Xref
Manager…(外部参照管理器)】
快捷菜单:选择外部参照对象后单击右键,选择“Xref
Manager…(外部参照管理器)”
命令行:xref(或别名xr)
调用该命令后,系统将弹出“Xref
Manager(外部参照管理器)”对话框,如图13-2所示。
如果在该对话框中选择
按钮,则以列表的形式显示已附着的外部参照的详细信息,包括:
(1) “Reference
Name(参照名)”:参照名并不要求和原始文件名相同,因此可对参照名进行更改。用户选中需要改变的参照名后,可再次单击左键或按F2键来进行编辑。
(2)
“Status(状态)”:显示相应参照的状态,可能的状态包括:
“Loaded(已加载)”
当前已附着在图形中
“Unload(卸载)”
关闭“外部参照管理器”之后,标记将从图形中卸载。
“Unreferenced(未参照)”
已附着到图形中但被删除。
“Not Found(未找到)”
在有效搜索路径中不再存在。
“Unresolved(未融入)”
AutoCAD无法读取。
“Orphaned(已孤立)”
附着到其他未参照、未融入或未找到的外部参照中。
(3) “Size(大小)”:显示相应参照图形的文件大小。
(4) “Type(类型)”:显示相应参照的类型。
(5)
“Date(日期)”:显示相关联图形的最后修改日期。
(6) “Saved
Path(保存路径)”:显示相关联外部参照的保存路径。
如果在该对话框中选择
按钮,则显示一个层次结构的外部参照树状视图,在图中显示外部参照定义之间的关系,以及它们的状态。
利用该对话框还可对外部参照进行各种管理和设置。
13.3.2 附着外部参照
如果在列表中选择了一个已有的外部参照,单击Attach...按钮可直接弹出“External
Reference(外部参照)”对话框,用于在图形中插入该参照的一个副本。如果没有选择或选择多个外部参照,则单击该按钮将定位并插入新外部参照文件。具体过程见上一节。
13.3.3 拆离外部参照
在外部参照列表中选择一个或多个参照后,单击Detach按钮可以从图形中拆离指定的外部参照。如果对某个外部参照进行拆离(Detach)操作,则AutoCAD将在图形中删除该外部参照的定义,并清除该外部参照的图形,包括其所有的副本。
注意
只能拆离直接附加或覆盖到当前图形中的外部参照,而不能拆离嵌套的外部参照。
13.3.4 重载外部参照
在外部参照列表中选择一个或多个参照后,单击Reload按钮可以对指定的外部参照进行更新。AutoCAD在打开一个附着有外部参照的图形文件时,将自动重载所有附着的外部参照,但在编辑该文件的过程中则不能实时地反映原图形文件的改变。因此,利用重载(Reload)按钮可以在任何时候都可以从外部参照文件中重新读取外部参照图形,以便及时地反映原图形文件的变化。
13.3.5 卸载外部参照
在外部参照列表中选择一个或多个参照后,单击Upload按钮可以将指定的外部参照在当前图形中卸载。卸载(Unload)与拆离(Detach)不同,该操作并不删除外部参照的定义,而仅仅取消外部参照的图形显示(包括其所有副本)。
13.3.6 绑定外部参照
在外部参照列表中选择一个或多个参照后,单击Bind...按钮可以将指定的外部参照断开与原图形文件的链接,并转换为块对象,成为当前图形的永久组成部分。选择该按钮后将弹出“Bind
Xrefs(绑定外部参照)”对话框,如图13-3所示。
该对话框提供了两种绑定类型:
(1)
“Bind(绑定)”:选择该项,则在绑定时,AutoCAD将外部参照的已命名对象依赖符号加入到当前图形中。具体方式是保留其前缀,但将“|”符号变为“$n$”的形式。其中n是由0开始的数字,在命名对象的名称出现重复时可改变n的取值,以确保命名对象名称的唯一性。
(2)
“Insert(插入)”:选择该项,则在绑定时,AutoCAD将外部参照的已命名对象名称中消除外部参照名称,并将多个重名的命名对象合并在一起。如果原内部文件中的命名对象具有与其相同的名称,则将绑定的外部参照中相应的命名对象与其合并,并采用内部命名对象定义的属性。例如,如果外部参照具有名为“exam9-1|CENTER”的图层,则在绑定时直接转换为“CENTER”。
13.3.7 修改外部参照路径
在外部参照列表中选择某个参照后,“Xref Found
At(发现外部参照于)”编辑框中将显示当前选定外部参照的完整路径。此时,用户可以单击Browse...按钮来重新指定外部参照的原文件路径或文件名,并可单击Save
Path按钮将其保存在外部参照的定义中。
说明 “xref”命令具有相应的命令行形式。