否则会打印两次“Select Xref:” 可能是对的。我有时会忘记,并不是每个人都将cmdecho设置为0。 @李·麦克
优秀的编码从分离x-refs开始,又好又整洁。
谢谢你,宝贝 @李·麦克,
只需快速查询一下。我尝试使用xref reload命令,但出现以下错误:
命令:xrr
; 错误:自动化错误。文件访问错误
我已经完成了该文件的电子传输,然后将所有x-references放置到相应的文件夹中。当我打开图形时,它会打开,但没有x参考,表示找不到x参考。因此,当例程运行时,显然无法找到要重新加载的x引用。但是,如果我将x参考复制到与图形相同的文件夹中,则在打开图形时会自动加载x参考,并且可以使用xrr例程卸载和重新加载。
我使用以下例程卸载x参考,而不是将其分离:
(defun c:xru (/ tData XName);Identify/Unload Xref
(defun *error* (msg)
(princ " ")
)
(while
(setq tData (entget (car (entsel " Select Item to Test for Xref"))))
(if
(setq XName (cdr (assoc 2 tData)))
(if (assoc 1 (tblsearch "BLOCK" XName))
(progn
(command ".xref" "u" XName)
(prompt (strcat " Xref " XName " unloaded" ))
)
(princ " Block Selected - Try Again")
);if
(princ " Entity in Base Drawing - Try Again")
);if
);while
(princ)
)
如果您能就如何解决此问题提供任何建议,我们将不胜感激。
在AutoCAD中打开图形时,图形文件所在的文件夹称为“工作目录”。
AutoCAD搜索文件时,首先搜索工作目录,然后搜索“选项”菜单中“文件”选项卡下的“支持文件搜索路径”列表。
因此,当外部参照文件放置在工作目录中时,AutoCAD尝试定位文件时会找到它们;这让我不禁要问:外部参照的路径类型是什么?
请注意,如果用户未能选择对象,您的代码将导致错误,因为entget函数将传递一个nil参数。但是,由于您重新定义了*error*函数,只打印一个空格而不显示错误消息,因此无法检测到此错误。
此外,由于您没有本地化*错误*符号,因此重新定义了内置AutoCAD*错误*处理程序,这意味着对于任何未定义自己的*错误*函数的AutoLISP程序,所有错误消息都不会被检测到。请阅读我关于错误处理和变量本地化的教程,以更好地理解这种做法。 嗨,李,
x参考的路径如下:
E: \Southwark parking estates\estates TMA和RTRA-INV\u AREA 4\TQ Mastermap\TQ3374NW。图纸
绘制路径如下:
E: \Southwark parking estates\estates TMA and RTRA-INV\u区域4\estates TMA and RTRA-INV\u区域4。图纸
当我尝试使用xrr命令重新加载卸载的x引用时,就会出现问题。
外部参照路径类型是什么?i、 e.绝对/相对/无? 李,
如何确定路径是否为绝对/相对/无?
目前它们在记忆棒上,所以我要说它们是绝对的,因为它们包括本地硬盘驱动器号或网络服务器驱动器号。
这可以从外部参照选项板(命令行处的外部参照)中确定,该选项板列出了图形中包含的所有文件参照。
文件引用的“保存路径”属性是用于确定该引用的源文件位置的路径。“保存路径”(即完整/相对/无)的性质是在图形中插入外部参照时设置的,可以是完整路径(指向外部参照源文件位置的绝对路径)、相对路径(相对于插入外部参照的图形文件位置的路径),或无(即没有路径与外部参照关联,AutoCAD尝试从支持路径或工作目录中获取外部参照文件)。
路径类型不取决于外部参照文件的位置,而是取决于此类文件在主图形中的参照方式。
页:
1
[2]