lisp如何获取图纸内的所有外部参照名称
时间: 2024-03-13 07:46:12 浏览: 22
要获取图纸内的所有外部参照名称,可以使用 AutoLISP 的图形界面操作函数来实现。以下是一个获取图纸内所有外部参照名称的示例代码:
```
(defun get-xref-names ( / ss xref-names)
(setq ss (ssget "X" '((0 . "INSERT"))))
(if ss
(progn
(setq xref-names '())
(repeat (sslength ss)
(setq name (cdr (assoc 2 (entget (ssname ss (setq i (1+ i)))))))
(if (member (strcase name) xref-names)
(setq xref-names xref-names)
(setq xref-names (cons (strcase name) xref-names)))))
(princ "\nNo external references found."))
(reverse xref-names))
```
在这个函数中,首先使用 `ssget` 函数获取所有的外部参照(即插入实体),然后遍历这些实体并使用 `entget` 函数获取它们的属性列表。在属性列表中,参照名称的属性代码为 2,因此可以使用 `assoc` 函数找到这个属性并获取其值。最后,使用 `member` 函数检查这个名称是否已经被记录,如果没有,就将其添加到名称列表中。最终函数返回的是一个反转后的名称列表,这是因为在添加名称时使用的是 `cons` 函数,所以名称的顺序是反向的。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)