Part Circle

From FreeCAD Documentation

Part Circle

Menu location
Part → Create primitives → Circle
Part, OpenSCAD
Default shortcut
Introduced in version
See also
Part Primitives


A Part Circle is a parametric shape that can be created with the Part Primitives command. In the coordinate system defined by its DataPlacement property, the circle lies on the XY plane with its center at the origin.

A Part Circle is in fact a closed counterclockwise circular arc, it can be turned into an arc by changing its DataAngle1 and/or DataAngle2 properties.


See Part Primitives.

A Part Circle can alternatively be created by selecting three points:

  1. In the task panel of the Part Primitives command select the Circle option from the dropdown list.
  2. Press the From three points button.
  3. Select three vertices in the 3D view. There is no need to hold down the Ctrl key.
  4. A circle is created.
  5. The selected vertices are only used at creation time to calculate the DataRadius and DataPlacement of the circle.


Part Circle from the scripting example

A Part Circle object created with the scripting example below is shown here.


See also: Property editor.

A Part Circle object is derived from a Part Feature object and inherits all its properties. It also has the following additional properties:



The object has the same attachment properties as a Part Part2DObject.


  • DataRadius (Length): The radius of the circle or circular arc. The default is 2mm.
  • DataAngle1 (Angle): The start angle of the circular arc. Valid range: 0° < value <= 360°. The default is .
  • DataAngle2 (Angle): The end angle of the circular arc. Valid range: 0° < value <= 360°. The default is 360°. If DataAngle1 and DataAngle2 are equal, or if one angle is and the other 360°, a full circle is created.


See also: Autogenerated API documentation, Part scripting and FreeCAD Scripting Basics.

A Part Circle can be created with the addObject() method of the document:

circle = FreeCAD.ActiveDocument.addObject("Part::Circle", "myCircle")
  • Where "myCircle" is the name for the object.
  • The function returns the newly created object.


import FreeCAD as App

doc = App.activeDocument()

circle = doc.addObject("Part::Circle", "myCircle")
circle.Radius = 10
circle.Angle1 = 45
circle.Angle2 = 225
circle.Placement = App.Placement(App.Vector(1, 2, 3), App.Rotation(30, 45, 10))