hosyn 发表于 2022-7-5 22:42:08

有办法触摸bl吗

有没有办法通过lisp代码或命令“相似选择”在选定的绘图区域中触摸块自动选择相似块?

pBe 发表于 2022-7-5 23:17:36

你试过SSX吗?

hanhphuc 发表于 2022-7-5 23:26:25

嗨,霍辛,我不知道你触摸的意思,
试试这个简单的dxf滤波器函数,
(issget e i);参数e=参考实体&i=要过滤的dxf索引

;Single dxf index-match ssget filter
(defun issget(_e _id / ss i e1 e2 lst ss1 next)
(if
(not (setq ss (ssget)))
         (setq ss(ssget "X")))

(if ss (progn
(setq i 0)
(repeat (sslength ss)
   (setq e1 (ssname ss i))
   (if (apply 'equal
            (foreach en(list e1 _e )
                (setq lst (cons (mapcar '(lambda (x) (cdr (assoc x (entget en)))) (list 0 _id))
                              lst))                 ;setq
                )                                 ;foreach
            )                                 ;apply
   (setq ss1 (cons e1 ss1))
   )                                         ;if
   (setq i(1+ i)
         lst nil))                                ;repeat
(setq next (ssadd))
(foreach e2 ss1 (ssadd e2 next))                 ;foreach
)                                                ;progn
nil)                                                ;if
) ; defun

示例:只需选择单个实体,然后[输入],或手动选择
_$(sslength(issget(car(entsel))8));
44;

BIGAL 发表于 2022-7-5 23:46:46

易于理解的
 

(setq obj (entsel "pick block"))
(setq bname (assoc 2 (entget (car obj)))
(princ bname)
; just use bname in a ssget filter now.
页: [1]
查看完整版本: 有办法触摸bl吗