如何判断选择的物体是一个块?且当前图形中已经存在!
如何判断接收(如通过ENTSEL)的物体是一个块?且当前图形中已经存在! 查看对象类型,如果是INSERT对象就是你说的块,如果是,那就肯定存在,因为你选的这个就是 (and (setq e (car (entsel "\nSelect block: ")))<BR> (= (cdr (assoc 0 (entget e))) "INSERT")<BR> ) 判断是否已存在(2个以上)选择的图块:(defun c:test ()(setq e (car (entsel "\n选择 : ")))
(if (= (dxf 0 (entget e)) "INSERT")
(setq ss (ssget "X" (list(cons 2 (dxf 2 (entget e)))))
num (sslength ss)
)
)
(if (> num 1)
(alert "\n此图块已存在(2个以上)!")
)
) 用这个为什么不行??/(= (TBLOBJNAME "BLOCK" "B0") NIL)
但对(IF (= (TBLOBJNAME "LAYER" "标注") NIL)可以判断当前图层是否有标注图层!!!
当ENTSEL接收的是块名而不是块物体!不行那可能是(请输入分跨块名或选择块物体)怎么接收??又该如何判断呢? ENTSEL怎么会接收到块名?
如果你想手动输入块名,不知道使用ENTSEL有什么意义。。。
你还是说明白点,你到底想要做什么吧,或许有更好的办法解决
页:
[1]