ssget“minsert”
大家好,是否可以过滤选择集以仅包含minserted块?
如果是,如何?
感谢所有花时间找到问题答案的人。 我的方法。。
(defun c:TesT (/ ss i sset mins)
;;;=== Tharwat 24. Sep. 2011 ===;;;
(if (setq ss (ssget "_x" '((0 . "INSERT"))))
(progn
(repeat (setq i (sslength ss))
(setq sset (ssname ss (setq i (1- i))))
(setq mins (vl-remove-if-not
(function (lambda (x)
(eq (car x) 100)
)
)
(entget sset)
)
)
(if (not (member (cdr (cadr mins)) '("AcDbMInsertBlock")))
(ssdel sset ss)
)
)
)
(princ)
)
(princ)
(alert (strcat "Number of Minsert Blocks >> :"
""
" <"
""
(itoa (sslength ss))
""
"> "
""
"Nos."
)
)
(princ)
)
塔瓦特 谢谢Tharwat,
你的代码很好,但难道不能像这样在一行中过滤minserted对象吗?
(setq ss (ssget "_x" '((0 . "INSERT")(100 . "AcDbMInsertBlock"))))
我知道这不对,但有点像。。。
事实上,这是我第一次尝试的,但它确实选择了所有块,根本没有考虑到只过滤minserts。 (ssget "_X" '((0 . "INSERT") (-4 . ">") (70 . 0))) 如果100过滤器不工作(我认为它应该工作),那么我认为您将测试所有行/列值:
(ssget "_X" '((0 . "INSERT")
(-4 . "<OR")
(-4 . ">")
(44 . 0)
(-4 . ">")
(45 . 0)
(-4 . ">")
(70 . 0)
(-4 . ">")
(71 . 0)
(-4 . "OR>")))
-大卫 李,你和你出色的即兴表演:奥。
非常感谢:D。 大卫,
非常感谢您展示“entget”ing“INSERT”和“MINSERT”之间所有可能的差异。
谢谢阿汉哈
页:
[1]