Lee Mac 发表于 2022-7-6 07:30:41

 
否则会打印两次“Select Xref:”

alanjt 发表于 2022-7-6 07:34:36

可能是对的。我有时会忘记,并不是每个人都将cmdecho设置为0。

Baber62 发表于 2022-7-6 07:36:15

@李·麦克
 
优秀的编码从分离x-refs开始,又好又整洁。

Lee Mac 发表于 2022-7-6 07:40:02

 
谢谢你,宝贝

Baber62 发表于 2022-7-6 07:44:49

@李·麦克,
 
只需快速查询一下。我尝试使用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)
)


 
如果您能就如何解决此问题提供任何建议,我们将不胜感激。
 

Lee Mac 发表于 2022-7-6 07:46:15

 
在AutoCAD中打开图形时,图形文件所在的文件夹称为“工作目录”。
 
AutoCAD搜索文件时,首先搜索工作目录,然后搜索“选项”菜单中“文件”选项卡下的“支持文件搜索路径”列表。
 
因此,当外部参照文件放置在工作目录中时,AutoCAD尝试定位文件时会找到它们;这让我不禁要问:外部参照的路径类型是什么?
 
 
请注意,如果用户未能选择对象,您的代码将导致错误,因为entget函数将传递一个nil参数。但是,由于您重新定义了*error*函数,只打印一个空格而不显示错误消息,因此无法检测到此错误。
 
此外,由于您没有本地化*错误*符号,因此重新定义了内置AutoCAD*错误*处理程序,这意味着对于任何未定义自己的*错误*函数的AutoLISP程序,所有错误消息都不会被检测到。请阅读我关于错误处理和变量本地化的教程,以更好地理解这种做法。

Baber62 发表于 2022-7-6 07:49:37

嗨,李,
 
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引用时,就会出现问题。
 
 

Lee Mac 发表于 2022-7-6 07:52:41

外部参照路径类型是什么?i、 e.绝对/相对/无?

Baber62 发表于 2022-7-6 07:54:36

李,
 
如何确定路径是否为绝对/相对/无?
 
目前它们在记忆棒上,所以我要说它们是绝对的,因为它们包括本地硬盘驱动器号或网络服务器驱动器号。
 

Lee Mac 发表于 2022-7-6 07:59:11

 
这可以从外部参照选项板(命令行处的外部参照)中确定,该选项板列出了图形中包含的所有文件参照。
 
文件引用的“保存路径”属性是用于确定该引用的源文件位置的路径。“保存路径”(即完整/相对/无)的性质是在图形中插入外部参照时设置的,可以是完整路径(指向外部参照源文件位置的绝对路径)、相对路径(相对于插入外部参照的图形文件位置的路径),或无(即没有路径与外部参照关联,AutoCAD尝试从支持路径或工作目录中获取外部参照文件)。
 
 
路径类型不取决于外部参照文件的位置,而是取决于此类文件在主图形中的参照方式。
页: 1 [2]
查看完整版本: 外部参照Lisp例程