; CHATPROP.LSP Changes attribute color and/or obliquing angle ; in Softdesk point blocks. Written by Skyler Mills April 1997. (defun C:CHATPROP ( / ATT ATTLIST ATTLIST1 ATTLIST2 ATTNAME BLKNAME COLORLIST INDEX NEWCOLOR OBLDEG OBLRAD OLD62 OLDOBL SELSET) (command "undo" "group") (prompt "\nChanges Softdesk point block attribute properties...") (setq ATT (strcase (getstring "\nEnter attribute name to change: "))) (setq NEWCOLOR (getint "\nEnter new color number: ")) (setq OBLDEG (getreal "\nEnter new obliquing angle in degrees <15.0>: ")) (if (= OBLDEG nil) (setq OBLRAD 0.261799387) (setq OBLRAD (* pi (/ OBLDEG 180.0))) ) (prompt "\nSelect Softdesk point blocks to change:") (if (setq SELSET (ssget '( (-4 . "") ))) (progn (setq COLORLIST (list (cons 62 NEWCOLOR))) (setq INDEX 0) (repeat (sslength SELSET) (setq BLKNAME (ssname SELSET INDEX)) (setq ATTNAME (entnext BLKNAME)) (setq ATTLIST (entget ATTNAME)) (while (/= (cdr (assoc 2 ATTLIST)) ATT) (setq ATTNAME (entnext ATTNAME)) (setq ATTLIST (entget ATTNAME)) (if (= (cdr (assoc 0 ATTLIST)) "SEQEND") (progn (alert (strcat ATT " is not a valid attribute name; exiting program...")) (exit) ) ;progn ) ;if ) (if (setq OLD62 (assoc 62 ATTLIST)) (progn (setq ATTLIST1 (subst (cons 62 NEWCOLOR) OLD62 ATTLIST)) (entmod ATTLIST1) (setq OLDOBL (assoc 51 ATTLIST)) (setq ATTLIST2 (subst (cons 51 OBLRAD) OLDOBL ATTLIST1)) (entmod ATTLIST2) ) (progn (setq ATTLIST1 (append COLORLIST ATTLIST)) (entmod ATTLIST1) (setq OLDOBL (assoc 51 ATTLIST)) (setq ATTLIST2 (subst (cons 51 OBLRAD) OLDOBL ATTLIST1)) (entmod ATTLIST2) ) ) ;if (entupd BLKNAME) (setq INDEX (1+ INDEX)) ) ;repeat ) ;progn (princ "\nNo Softdesk point blocks selected; try again...") ) ;if (command "undo" "end") (princ) ) ;defun