(car (entsel)) 发表于 2022-7-5 17:06:43

(nentsel)

你好
这个线程不是关于(nentsel),而是用于类似的功能。
我试着用这个:
(cdr (assoc 0 (entget (ssname (ssget "_+.:E:S:L:N") 0))))
这意味着:“选择单个实体,在解锁层上,嵌套”
所以我在块内选择了一条嵌套的LWMOLYLINE,它返回“INSERT”。
怎么会?

Roy_043 发表于 2022-7-5 17:46:06

RTM:主实体也添加到集合中。

Grrr 发表于 2022-7-5 18:11:03

ssnamex是答案:
; Alternative of (nentsel)
(defun C:test ( / SS Lst )
(while (not (setq SS (ssget "_+.:E:S:L:N"))) SS)
(setq Lst (vl-remove-if-not '(lambda (x) (= 'ENAME (type x))) (apply 'append (ssnamex SS))))
(mapcar '(lambda (x) (cdr (assoc 0 (entget x)))) Lst)
)
例子:
("LWPOLYLINE" "INSERT") ; prints after selecting nested LWpolyline
("LINE" "INSERT" "INSERT") ; prints after selecting nested line within a nested block
页: [1]
查看完整版本: (nentsel)