(defun C:MOVER ( / SS1 P1 IN INP YN ELAST) (prompt "\nSelect Entities ") (setq SS1 nil SS1 (ssget) P1 (getpoint "\nReference Point:") IN 1 YN 1) (while YN (while (/= IN 2) (prompt "\nCopy/Move/Rotate/Scale/mrror/ref
t/Quit ") (setq INP (grread) IN (car INP)) (if (= IN 2) (setq YN (strcase (chr (cadr INP)))))) (cond ((= YN "C") (setq ELAST (entlast)) (command "COPY" SS1 "" P1 pause) (setq P1 (getvar "LASTPOINT") SS1 nil SS1 (ssadd)) (while (entnext ELAST) (ssadd (entnext ELAST) SS1) (setq ELAST (entnext ELAST)))) ((= YN "M") (command "MOVE" SS1 "" P1 pause) (setq P1 (getvar "LASTPOINT"))) ((= YN "R") (command "ROTATE" SS1 "" P1 pause)) ((= YN "P") (setq P1 (getpoint "\nNew Reference Point"))) ((= YN "S") (command "SCALE" SS1 "" P1 pause)) ((= YN "I") (setq ELAST (entlast)) (command "MIRROR" SS1 "" pause pause pause) (setq P1 (getpoint "\nSet New Reference Point ") SS1 nil SS1 (ssadd)) (while (entnext ELAST) (ssadd (entnext ELAST) SS1) (setq ELAST (entnext ELAST)))) ((= YN "Q") (setq YN nil SS1 nil) (gc))) (setq IN 1)) (princ))