Part RegularPolygon

    From FreeCAD Documentation

    Part RegularPolygon.svg Part RegularPolygon

    Menu location
    Part → Create primitives → Regular polygon
    Workbenches
    Part, OpenSCAD
    Default shortcut
    None
    Introduced in version
    0.14
    See also
    Part Primitives

    Description

    A Part RegularPolygon.svg Part RegularPolygon is a parametric shape that can be created with the Part Primitives.svg Part Primitives command. In the coordinate system defined by its DataPlacement property, the polygon lies on the XY plane with its center at the origin and one of its vertices on the X axis.

    Part RegularPolygon Example.png

    Usage

    See Part Primitives.

    Example

    Part RegularPolygon from the scripting example

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

    Properties

    See also: Property editor.

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

    Data

    Attachment

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

    Regular Polygon

    • DataPolygon (IntegerConstraint): The number of sides of the polygon. The default is 6.
    • DataCircumradius (Length): The radius of the circle that circumscribes the polygon, the distance from the center of the polygon to one of its vertices. The default is 2mm.

    Scripting

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

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

    poly = FreeCAD.ActiveDocument.addObject("Part::RegularPolygon", "myPolygon")
    
    • Where "myPolygon" is the name for the object.
    • The function returns the newly created object.

    Example:

    import FreeCAD as App
    
    doc = App.activeDocument()
    
    poly = doc.addObject("Part::RegularPolygon", "myPolygon")
    poly.Polygon = 5
    poly.Circumradius = 8
    poly.Placement = App.Placement(App.Vector(1, 2, 3), App.Rotation(60, 30, 15))
    
    doc.recompute()