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))
- )
- )
|