如果层与目标块名称中的属性值的值匹配,则应根据层名称的状态打开和关闭层。
试试看,让我知道。
- (defun c:Test (/ s i l lst e n a)
- ;; Tharwat 12.9.2014 ;;
- (if (setq s (ssget "_X" '((0 . "INSERT") (66 . 1) (2 . "ULTRA INFO"))))
- (repeat (setq i (sslength s))
- (mapcar
- '(lambda (u)
- (if
- (eq (strcase (vla-get-tagstring u)) "CIRCID")
- (setq lst (cons (vla-get-textstring u) lst))
- )
- )
- (vlax-invoke
- (vlax-ename->vla-object (ssname s (setq i (1- i))))
- 'getAttributes
- )
- )
- )
- )
- (if lst
- (while (setq a (tblnext "LAYER" (not a)))
- (foreach x lst
- (if (wcmatch (setq n (cdr (assoc 2 a))) (strcat x "*"))
- (entmod
- (subst (cons 62 (- (cdr (assoc 62 a))))
- (assoc 62 (setq e (entget (tblobjname "LAYER" n))))
- e
- )
- )
- )
- )
- )
- )
- (princ)
- )(vl-load-com)
|