Here is an updated version of the Rotate Each Object Script. It has been modified to work around a bug that was found in the Scale Each Object script. Procedure RotateEachObject; {Rotates each selected object in the active layer} {Symbols and PIOs are rotated around the insertion point} {Other Objects are rotated around their center point} {? 2007,2008,2010 Coviana, Inc - Pat Stanford pat@coviana.com} {Licensed unde the GNU Lesser General Public License} Var H1,H2:Handle; N1,N2:Integer; A1:Dynarray[ ] of handle; R1,X1,Y1 :Real; Begin N1:=Count(Sel); If N1>0 then Begin Allocate A1[1..N1]; N2:=1; While N2<=N1 do Begin A1[N2]:=FSActLayer; SetDSelect(FSActLayer); N2:=N2+1; End; R1:=RealDialog('Enter the amount to rotate each object by','90.0'); N2:=1; While N2<=N1 do Begin If ((GetType(A1[N2]) = 15) or (GetType(A1[N2])=86)) then GetSymLoc(A1[N2],X1,Y1) else HCenter(A1[N2],X1,Y1); HRotate(A1[N2],X1,Y1,R1); N2:=N2+1; End; End else Begin N1:=0; AlrtDialog('At least one object must be selected'); End; End; Run(RotateEachObject);
    • Like
    1