Part Tube

From FreeCAD Documentation

Part Tube

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


The Part Tube command creates a parametric tube solid. In the coordinate system defined by its DataPlacement property, the bottom face of the tube lies on the XY plane with its center at the origin.



  1. There are several ways to invoke the command:
    • Press the Part Tube button.
    • Select the Part → Primitives → Create tube option from the menu.
  2. The Tube task panel opens and a preview of the tube is displayed in the 3D view.
  3. Specify the dimensions.
  4. The preview is dynamically updated.
  5. Press the OK button.
  6. The tube is created.
  7. Optionally change the DataPlacement of the tube in the Property editor, or with the Std TransformManip command.


  1. Double-click the tube in the Tree view
  2. The Tube task panel opens.
  3. Change one or more dimensions.
  4. The tube is dynamically updated in the 3D view.
  5. Press the OK button.


Part Tube from the scripting example

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


See also: Property editor.

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


  • DataHeight (Length): The height of the tube. The default is 10mm.
  • DataInner Radius (Length): The inner radius of the tube. Must be smaller than DataOuter Radius. Can be 0. The default is 2mm.
  • DataOuter Radius (Length): The outer radius of the tube. Must be larger than DataInner Radius. The default is 5mm.


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

A Part Tube can be created with the addTube() method (introduced in version 0.20) of the Shapes module:

tube = Shapes.addTube(FreeCAD.ActiveDocument, "myTube")
  • Where "myTube" is the name for the object.
  • The function returns the newly created object.


import FreeCAD as App
from BasicShapes import Shapes

doc = App.activeDocument()

tube = Shapes.addTube(FreeCAD.ActiveDocument, "myTube")
tube.Height = 20
tube.InnerRadius = 2
tube.OuterRadius = 3
tube.Placement = App.Placement(App.Vector(2, 4, 5), App.Rotation(60, 60, 30))