给个参考,你自己根据需要修改吧 - ;| xgetlayatts = 取布局中的块属性----by lxx.2009.2.16
- 参数 tags = 属性名或属性名列表,字符串
- 返回: list 列表
- 实例: (xgetlayatts (list"AA" "BB"))
- ->(("AA" "a") ("BB" "1") ("AA" "b") ("BB" "2") ("AA" "c") ("BB" "3"))
- |;
- (defun xgetlayatts (tags / lays n lst a x atts tag y)
- (if (not(listp tags)) (setq tags (list tags)))
- (setq lays (vlax-get (vla-get-activedocument (vlax-get-acad-object))'layouts)
- n (1- (vla-get-count lays))
- )
- (repeat n
- (setq a (vla-item lays n)
- n (1- n)
- )
- (vlax-for x (vla-get-block a)
- (if (and (wcmatch (vla-get-objectname x) "*Block*")
- (setq atts (vlax-invoke x 'getattributes))
- )
- (mapcar
- '(lambda (y)
- (if (member (setq tag (vla-get-tagstring y)) tags)
- (setq lst (cons (list tag (vla-get-textstring y)) lst))
- )
- )
- atts
- )
- )
- )
- )
- lst
- )
|