试试这个:-
对于文本:-
- (defun c:test (/ a b c d i)
- (if (setq a (ssget '((0 . "text"))))
- (repeat (setq i (sslength a))
- (setq b (entget (ssname a (setq i (1- i)))))
- (setq c (cdr (assoc 10 b)))
- (setq d (subst (atof (cdr (assoc 1 b))) (caddr c) c))
- (entmod (subst (cons 10 d) (assoc 10 b) b))
- )
- )
- (princ)
- )
对于块。。。。根据块标记更改属性标记“A”:-
- (defun c:test (/ a b c d i)
- (if (setq a (ssget '((0 . "insert"))))
- (repeat (setq i (sslength a))
- (setq b (vlax-ename->vla-object (ssname a (setq i (1- i)))))
- (setq c (vlax-get b 'InsertionPoint))
- (setq d (vl-some '(lambda (x)
- (if (eq (vla-get-tagstring x) "A") ; Change tag here
- (atof (vla-get-textstring x))
- )
- )
- (vlax-invoke b 'GetAttributes)
- )
- )
- (vla-put-insertionpoint
- b
- (vlax-3d-point (subst d (caddr c) c))
- )
- )
- )
- (princ)
- )
|