所有块的选择集w
是否存在允许您选择所有具有属性的块的选择集?(setq ss (ssget "c" (getvar "extmax") (getvar "extmin") '((0 . "insert"))))
我通常可以选择所有块,但我只想选择具有属性的块。 也许 吧:
(ssget "_X" '((0 . "INSERT") (66 . 1)))
或者,另一种方法:
(defun GetBlkWithAtt (/ ss)
(vl-load-com)
(if (setq ss (ssget "_X" '((0 . "INSERT"))))
(vl-remove-if-not
'(lambda (x) (eq :vlax-true
(vla-get-HasAttributes x)))
(mapcar 'vlax-ename->vla-object
(mapcar 'cadr (ssnamex ss))))))
将返回具有属性的块列表(VL表单) 李,
为什么在X之前加下划线 我相信这使它与语言兼容,我可能错了。 我曾认为这适用于命令,但我不确定它适用于这里。
无论如何,它不会给出任何错误。 当你这么做的时候。。。
我通常这样写:
(ssget“X”(列表(cons 0“行”))
然而,我看到很多人这样写:
(ssget“X”'((cons 0“LINE”))
这只是个人喜好,还是有任何赞成/反对的清单?我可以看出,这将减少“整洁”代码的字符数,但这是真的吗?有什么非常实际的原因吗? 谢谢李。看起来效果很好。尽管我喜欢使用extmin和extmax选择当前空间的交叉点,以仅获得当前空间的选择集。如果使用X,则它会选择整个图形。 只需添加
(cons 410(getvar“CTAB”))
到过滤器列表,以仅选择当前空间对象。
两者都有效,撇号只是表示不要在其后立即评估术语。
页:
[1]
2