(defun c:swap (/ sv mss1 mss1p1 mss1p2 mss2 mss2p1 mss2p2) (prompt "\nFirst group to move") (setq mss1 (ssget)) (setq mss1p1 (getpoint "\nMove Group 1 From: ")) (setq mss1p2 (getpoint "\nMove Group 1 To: ")) (prompt "\nSecond group to move") (setq mss2 (ssget)) (setq mss2p1 (getpoint "\nMove Group 2 From: ")) (setq mss2p2 (getpoint "\nMove Group 2 To: ")) (snapset "off") (command "move" mss1 "" mss1p1 mss1p2 "move" mss2 "" mss2p1 mss2p2) (snapset "on")) (defun snapset (state) (if (= state "off") (progn (setq sv (getvar "osmode")) (setvar "osmode" 22655))) (if (= state "on") (setvar "osmode" sv)))