Draft Rotate

Description
This tool rotates or copies the selected objects by a given angle around a point on the current work plane. If no object is selected, you will be invited to select one.



How to use

 * 1) Select objects you wish to rotate or copy
 * 2) Press the  button, or press  then  keys
 * 3) Click a center point on the 3D view, or type a coordinate
 * 4) Click a second point on the 3D view, or give a reference angle
 * 5) Click a third point on the 3D view, or give a rotation angle

Options

 * Press, or  after a point to constrain the next point on the given axis.
 * To enter coordinates manually, simply enter the numbers, then press between each X, Y and Z component.
 * Press or click the checkbox to check/uncheck the  button. If continue mode is on, the Rotate tool will restart after you finish or close it, allowing you to rotate or copy the objects another time without pressing the Rotate button again.
 * Pressing or  or clicking the  button will make a copy of the objects, instead of rotating them. If you keep  pressed after clicking the third point, you will be able to place more copies, until you release the  key.
 * Press while drawing to force snapping your point to the nearest snap location, independently of the distance.
 * Press while drawing to constrain your next point horizontally or vertically in relation to the rotation center.
 * Press or the  button to abort the current command.

Scripting
The Rotate tool can by used in macros and from the python console by using the following function:

rotate (FreeCAD.Object or list, angle, [center], [axis] ,[copymode]) : Rotates the given object or the objects contained in the given list with the given angle around the given center if provided, using axis as a rotation axis. If axis is omitted, the rotation will be around the vertical Z axis. If copymode is True, the actual objects are not moved, but copies are created instead. Returns the objects (or their copies is copymode was True).

Example:

import FreeCAD,Draft Draft.rotate(FreeCAD.ActiveDocument.ActiveObject,45,copy=False)