This program will flip block nested attributes between a greater and less than range
Code:
(DEFUN C:EAR5 ()
(PROMPT "\n*EDIT ATTRIBUTE ROTATION 5 (FLIP)* ")
(PROMPT "\nSelect blocks with attributes to edit ")
(SETQ BS (SSGET '((-4 . "<AND") (0 . "INSERT") (66 . 1) (-4 . "AND>")) ))
(SETQ BSL (SSLENGTH BS))
(SETQ CT (- BSL 1))
(SETQ NEARGA (GETANGLE "\nEnter greater than angle: "))
(SETQ NEARLA (GETANGLE "\nEnter less than angle: "))
(SETQ LP 1)
(WHILE LP
(SETQ NE (SSNAME BS CT))
(SETQ CT2 0)
(SETQ LP2 1)
(WHILE LP2
(SETQ NE (ENTNEXT NE))
(SETQ NEL (ENTGET NE))
(SETQ NEAET (CDR (ASSOC 0 NEL)))
(SETQ NEA (ASSOC 50 NEL))
(SETQ NEAV (CDR NEA))
(SETQ NNEAV NIL)
(IF (> NEAV (* 2 PI)) (SETQ NEAV (- NEAV (/ NEAV (* 2 PI)))))
(IF (AND (> NEAV NEARGA ) (< NEAV NEARLA)) (SETQ NNEAV (+ NEAV PI)))
(IF (/= NNEAV NIL)
(PROGN
(SETQ NOFNU (CONS 50 NNEAV))
(IF (= NEAET "ATTRIB")
(PROGN
(IF (/= NEA NIL)
(PROGN
(SETQ OFNU NEA)
(SETQ NNEL (SUBST NOFNU OFNU NEL))
(ENTMOD NNEL)
(ENTUPD NE)
));END PROGN/IF NEA
));END PROGN/IF NEAET
));END PROGN/IF NNEAV
(IF (= NEAET "SEQEND") (SETQ LP2 NIL))
);END WHILE LP2
(SETQ CT (- CT 1))
(IF (< CT 0) (SETQ LP NIL))
);END WHILE LP
(PRINC)
);END EAR5