卡在打开位置或功能
大家好,在一个简单的条件语句上再次需要您的帮助。
我需要在外部参照上拾取一个块。
块必须具有属性。
区块内的实体有两层,分别是A-DOORTAG和A-TEXT。
线、引线和圆位于A-DOORTAG层,属性位于A-TEXT层。
我的目标是,无论我选哪一个(线、圆或属性),我都会得到“e”的值。
图层必须为“A-doortag”或“A-text”
谢谢
(while
(or
(not (setq e (nentsel "\nSelect a door tag : ")))
(< (length e) 3)
(not (wcmatch (strcase (cdr (assoc 8 (entget (car (last e)))))) "*|A-DOORTAG"))
;(not (wcmatch (strcase (cdr (assoc 8 (entget (car (last e)))))) "*|A-TEXT"))
)
(princ "\nObject was not a door tag.")
)
1) 一个对象不能分为两层,因此(not)(wcmatch…中的一层始终为真。这是您应该使用或发挥作用的地方。
2) 你选错了nentsel返回的ename。最后一个包含父对象,即外部参照本身。
试试这个
(defun sel_xref_obj (/ e)
(setvar 'errno 0)
(cond
((setq e (nentsel "\nSelect a door tag : "))
(if
(and
(> (length e) 3)
(wcmatch (strcase (cdr (assoc 8 (entget (car e))))) "*|A-DOORTAG,*|A-TEXT")
; OR equivalent
;(or
;(wcmatch (strcase (cdr (assoc 8 (entget (car e))))) "*|A-DOORTAG")
;(wcmatch (strcase (cdr (assoc 8 (entget (car e))))) "*|A-TEXT")
)
e
(progn (princ "\nObject was not a door tag.") (sel_xref_obj))
)
)
((= (getvar 'errno) 7) (princ "\nNothing selected.") (sel_xref_obj))
)
) 现在知道了。谢谢Stefan。很好,谢谢你的帮助!
对于单个ssget调用来说,这将是一个很好的地方,为给定选择集过滤器的DXF 8分组对使用逗号分隔的层字符串。更少的按键。
页:
[1]