
- ;;修改BLOCK REF单一属性性质
- ;;USAGE: (CHANGE_ATT1 "比例" "LAYER" "DIM")
- ;;USAGE: (CHANGE_ATT1 <属性标籤> <性质> <值>)
- (defun CHANGE_ATT1 (TAG PROPERTY VALUE / BLK BLKREF ENT)
- (vl-load-com)
- (while
- (or (not (setq BLK (car (entsel "\n选取带属性图块: "))))
- (progn
- (setq BLKREF (vlax-ename->vla-object BLK))
- (not (= (vla-get-objectname BLKREF) "AcDbBlockReference"))
- )
- )
- )
- (foreach ENT (vlax-safearray->list
- (vlax-variant-value (vla-getattributes BLKREF))
- )
- (if (= (strcase (vla-get-tagstring ENT)) (strcase TAG))
- ((eval (read (strcat "vla-put-" PROPERTY))) ENT VALUE)
- )
- )
- (princ)
- )
- ;;提取BLOCK REF单一属性性质
- ;;USAGE: (GET_ATT1 "比例" "LAYER")
- ;;USAGE: (GET_ATT1 <属性标籤> <性质>)
- (defun GET_ATT1 (TAG PROPERTY / VALUE BLK BLKREF ENT)
- (vl-load-com)
- (while
- (or (not (setq BLK (car (entsel "\n选取带属性图块: "))))
- (progn
- (setq BLKREF (vlax-ename->vla-object BLK))
- (not (= (vla-get-objectname BLKREF) "AcDbBlockReference"))
- )
- )
- )
- (foreach ENT (vlax-safearray->list
- (vlax-variant-value (vla-getattributes BLKREF))
- )
- (if (= (strcase (vla-get-tagstring ENT)) (strcase TAG))
- (setq VALUE ((eval (read (strcat "vla-get-" PROPERTY))) ENT))
- )
- )
- VALUE
- )
|