尝试以下未经测试的代码-调整属性标记以适应:
- (defun c:test ( / des ent lst map src )
- (setq map '(("[color="red"]TAG1[/color]" . "[color="red"]TAG2[/color]")))
- (while
- (progn (setvar 'errno 0) (setq ent (car (entsel "\nSelect block: ")))
- (cond
- ( (= 7 (getvar 'errno))
- (princ "\nMissed, try again.")
- )
- ( (null ent) nil)
- ( (/= "INSERT" (cdr (assoc 0 (entget ent))))
- (princ "\nThe selected object is not a block.")
- )
- ( (null
- (setq lst
- (mapcar
- '(lambda ( x ) (cons (strcase (vla-get-tagstring x)) x))
- (vlax-invoke (vlax-ename->vla-object ent) 'getattributes)
- )
- )
- )
- (princ "\nThe selected block has no attributes.")
- )
- ( (foreach itm map
- (if (and (setq src (cdr (assoc (car itm) lst)))
- (setq des (cdr (assoc (cdr itm) lst)))
- (vlax-write-enabled-p des)
- )
- (vla-put-textstring des (vla-get-textstring src))
- )
- )
- )
- )
- )
- )
- (princ)
- )
- (vl-load-com) (princ)
我假设您希望在单个块内的属性标记之间复制属性值。 |