# Draft Polygon

Menu location |
---|

Draft → Polygon |

Workbenches |

Draft, Arch |

Default shortcut |

P G |

Introduced in version |

0.7 |

See also |

Draft Circle, Draft Pattern |

## Description

The Polygon tool creates a regular polygon inscribed in a circumference by picking two points, the center and the radius. It uses the Draft Linestyle set on the Draft Tray.

Regular polygon defined by the center point and the radius

## Usage

- Press the Draft Polygon button, or press P then G keys.
- Adjust the desired number of sides in the options dialog.
- Click a first point on the 3D view, or type a coordinate and press the add point button.
- Click another point on the 3D view, or type a radius value to define the polygon radius.

The polygon can be edited by double clicking on the element in the tree view, or by pressing the Draft Edit button. Then you can move the center and radius points to a new position.

The polygon is created inscribed in a circle of the specified radius; it can be switched to circumscribed after creation by changing its draw mode property.

The number of sides of the polygon can also be changed after creation by changing its faces number property.

## Options

- To enter coordinates manually, simply enter the numbers, then press Enter between each X, Y and Z component. You can press the add point button when you have the desired values to insert the point.
- Press T or click the checkbox to toggle
*continue*mode. If continue mode is on, the Polygon tool will restart after you finish it, allowing you to draw another one without pressing the tool button again. - Press L or click the checkbox to toggle
*filled*mode. If filled mode is on, the polygon will create a filled face (Data**Make Face**`true`

); if not, the polygon will not make a face (Data**Make Face**`false`

). - Hold Ctrl while drawing to force snapping your point to the nearest snap location, independently of the distance.
- Hold Shift while drawing to constrain your second point horizontally or vertically in relation to the first one.
- Press Esc or the Close button to abort the current command.

## Properties

### Data

- Data
**Radius**: specifies the radius of the circle that defines the polygon. - Data
**Draw Mode**: specifies if the polygon is inscribed in a circle, or circumscribed around a circle. - Data
**Faces Number**: specifies the number of sides of the polygon. - Data
**Chamfer Size**: specifies the size of the chamfers (straight segments) created on the corners of the polygon. - Data
**Fillet Radius**: specifies the radius of the fillets (arc segments) created on the corners of the polygon. - Data
**Make Face**: specifies if the shape makes a face or not. If it is`true`

a face is created, otherwise only the perimeter is considered part of the object.

### View

- View
**Pattern**: specifies a Draft Pattern with which to fill the face of the polygon. This property only works if Data**Make Face**is`true`

, and if View**Display Mode**is "Flat Lines". - View
**Pattern Size**: specifies the size of the Draft Pattern.

## Scripting

*See also:* Draft API and FreeCAD Scripting Basics.

The Polygon tool can be used in macros and from the Python console by using the following function:

```
Polygon = makePolygon(nfaces, radius=1, inscribed=True, placement=None, face=None, support=None)
```

- Creates a
`Polygon`

object with the given number of faces (`nfaces`

), and based on a circle of`radius`

in millimeters. - If
`inscribed`

is`True`

, the polygon is inscribed in the circle, otherwise it will be circumscribed.- One of the vertices of the polygon will lie on the X axis if no other placement is given.

- If a
`placement`

is given, it is used; otherwise the shape is created at the origin. - If
`face`

is`True`

, the shape will make a face, that is, it will appear filled.

Example:

```
import FreeCAD, Draft
Polygon1 = Draft.makePolygon(4, radius=500)
Polygon2 = Draft.makePolygon(5, radius=750)
ZAxis = FreeCAD.Vector(0, 0, 1)
p3 = FreeCAD.Vector(1000, 1000, 0)
place3 = FreeCAD.Placement(p3, FreeCAD.Rotation(ZAxis, 90))
Polygon3 = Draft.makePolygon(6, radius=1450, placement=place3)
```