There are 2 things in this blog post that I want to point out.
1) Share a LISP routine that rotates multiple objects around their individual base points…
2) The lisp routine shown in this post hasn’t been altered since 1991 and it still works in AutoCAD 2014. This may not seem like a big deal but with all of the various programming languages available to be used within AutoCAD, the power of using a LISP routine that hasn’t had to be changed or updated in over 20 years is pretty impressive.
The Routine allows you to rotate multiple objects such as blocks and text objects that have an “Insertion Point” to a user-specified angle. And instead o0f rotating everything around one base point, the object’s individual base point is used.
In the example below, there is a vertical column of blocks that are rotated clockwise by 90s. I don’t know why, but all that I know is that I want them right-side-up.
- Load the routine
- ROTMULT <enter> to start
- Select objects
- <enter> when finished selecting
- “Enter Rotation Angle:” enter a positive number to rotate the objects counter-clockwise (example 90) and a negative number to rotate the objects clockwise (example -90)
;* Rotate Multiple ;* Rotates many entities around their respective basepoints ;* allows selection by AUTOCAD selection sets or SSX. ;* Written by David Husch, January 1991 (defun c:rotmult () (prompt "Select Entities to Rotate, <ENTER> for SSX.") (setq ss (ssget)) (if (not ss) (setq ss (ssx))) (setq num (sslength ss)) (setq x 0) (if ss (if (setq ang (getreal "Enter Rotation Angle: ")) (repeat num (setq ename (ssname ss x)) (setq elist (entget ename)) (setq pnt (cdr(assoc 10 elist))) (command "Rotate" ename "" pnt ang) (setq x (1+ x)) ) ) ) )