(DEFUN GET-ATT (tag blk / val enx) (SETQ blk (SSNAME (SSGET "x" (LIST '(0 . "INSERT") (CONS 2 blk) (CONS 410 (GETVAR 'ctab)))) 0)) (WHILE (AND (NULL val) (= "ATTRIB" (CDR (ASSOC 0 (SETQ enx (ENTGET (SETQ blk (ENTNEXT blk))))))) ) (IF (= (STRCASE tag) (STRCASE (CDR (ASSOC 2 enx)))) (SETQ val (CDR (ASSOC 1 enx))) ) ) ) (DEFUN PUT-ATT (blk tag val / end enx) (SETQ blk (SSNAME (SSGET "x" (LIST '(0 . "INSERT") (CONS 2 blk) (CONS 410 (GETVAR 'ctab)))) 0)) (WHILE (AND (NULL end) (= "ATTRIB" (CDR (ASSOC 0 (SETQ enx (ENTGET (SETQ blk (ENTNEXT blk)))))))) (IF (= (STRCASE tag) (STRCASE (CDR (ASSOC 2 enx)))) (IF (ENTMOD (SUBST (CONS 1 val) (ASSOC 1 enx) enx)) (PROGN (ENTUPD blk) (SETQ end val)) ) ) ) ) (DEFUN COPY-ATT (BLOCKNAME FROMatt TOatt / VALUE) (SETQ VALUE (GET-ATT FROMatt BLOCKNAME)) (PUT-ATT BLOCKNAME TOatt VALUE) ) (DEFUN C:COPYCAT (/ BLOCKNAME FROMatt TOatt) (SETQ BLOCKNAME (GETSTRING "\n\t=> Block name? ") FROMatt (GETSTRING "\n\t=> FROM attribute tag? ") TOatt (GETSTRING "\n\t=> TO attribute tag? ") ) (IF (TBLSEARCH "BLOCK" BLOCKNAME) (COPY-ATT BLOCKNAME FROMatt TOatt) (PRINC "\n BLOCK NOT FOUND")) )