Part Torus

From FreeCAD Documentation

Part Torus

Menu location
Part → Primitives → Torus
Default shortcut
Introduced in version
See also
Part Primitives


The Part Torus command creates a parametric torus solid, a doughnut shape. It is the result of sweeping a circular profile around a circular path. In the coordinate system defined by its DataPlacement property, the circular path of the torus lies on the XY plane with its center at the origin.

A Part Torus can be turned into a segment of a torus by changing its DataAngle3 property. By changing its DataAngle1 and/or DataAngle2 properties the swept profile can become a segment of a circle.


  1. There are several ways to invoke the command:
    • Press the Part Torus button.
    • Select the Part → Primitives → Torus option from the menu.
  2. The torus is created.
  3. Optionally change the dimensions and DataPlacement of the torus by doing one of the following:
    • Double-click the object in the Tree view:
      1. The Geometric Primitives task panel opens.
      2. Change one or more properties.
      3. The object is dynamically updated in the 3D view.
      4. Press the OK button.
    • Change the properties in the Property editor.
    • Change the DataPlacement with the Std TransformManip command.


Part Torus from the scripting example

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


  • A Part Torus can also be created with the Part Primitives command. With that command you can specify the dimensions and placement at creation time.


See also: Property editor.

A Part Torus 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.


  • DataRadius1 (Length): The radius of the circular path of the torus. The default is 10mm.
  • DataRadius2 (Length): The radius of the circular profile of the torus. The default is 2mm.
  • DataAngle1 (Angle): The start angle of the circular profile. Valid range: -180° <= value <= 180°. The default is -180°.
  • DataAngle2 (Angle): The end angle the circular profile. Valid range: -180° <= value <= 180°. The default is 180°. If the total angle of the circular profile is smaller than 360° the profile will have a pie-shape.
  • DataAngle3 (Angle): The angle of the circular path of the torus. Valid range: 0° < value <= 360°. The default is 360°. If it is smaller than 360° the resulting solid will be a segment of a torus.


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

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

torus = FreeCAD.ActiveDocument.addObject("Part::Torus", "myTorus")
  • Where "myTorus" is the name for the object.
  • The function returns the newly created object.


import FreeCAD as App

doc = App.activeDocument()

torus = doc.addObject("Part::Torus", "myTorus")
torus.Radius1 = 20
torus.Radius2 = 10
torus.Angle1 = -90
torus.Angle2 = 45
torus.Angle3 = 270
torus.Placement = App.Placement(App.Vector(1, 2, 3), App.Rotation(30, 45, 10))