图形中的块选择
大家好,有谁能告诉我我错过了什么?
它必须是显而易见的。
图形中有多个块实例,但两个选择集都返回零。
(setq blkname (assoc 2 (entget (car (entsel "\nSelect Block: ")))))
(setq sset (ssget "_X" (list '(0 . "INSERT") '(66 . 1) blkname)))
(setq blkname (LM:effectivename (vlax-ename->vla-object (car (entsel)))))
(setq sset (ssget "_X" (list '(0 . "INSERT") '(66 . 1) (cons 2 blkname))))
;; Effective Block Name-Lee Mac
;; obj - VLA Block Reference object
(defun LM:effectivename ( obj )
(vlax-get-property obj
(if (vlax-property-available-p obj 'effectivename)
'effectivename
'name
)
)
) 块名可能包含必须转义的特殊wcmatch字符? 这些块是:
[列表]
[*]属性
[*]动态
[/列表]
您好,Grr,是的,在这种情况下,块都是。
我错误地认为这无关紧要
所以它需要测试相似的属性,以及属性中的相似值? 嗯,tblsearch需要额外的限定符吗?
这一点很重要。
不,我只是想确保你知道,在ssget过滤器中使用'(66.1),选择将只包含属性块。
现在,当块是动态的时,当修改时,它们的名称会更改并成为注释性的,例如:*U17、*U62。。甚至有一次我有*T43
假设您已经通过使用Lee的LM:effectivename函数得到了提示。
因此,首先必须在ssget过滤器中使用(cons 2(strcat blkname“,`**”))。
这将选择所有符合名称标准的块,以及所有注释性块(名称如*U17等)。
下一个任务是从选择中删除与effectivename特性标准不匹配的所有块。
若要继续,请检查本教程中有关选择集处理的内容。 好极了,你给我指明了正确的方向!
非常感谢。
没问题-如果你的尝试仍然不起作用,就把它贴在这里,这样任何人都可以帮助你。
页:
[1]