Surface BlendCurve

    From FreeCAD Documentation
    Other languages:

    Surface BlendCurve.svg Surface BlendCurve

    Menu location
    Surface → Blend Curve
    Default shortcut
    Introduced in version
    See also


    Surface BlendCurve.svg Surface Blend Curve creates a Bezier curve between two edges, with desired continuity.

    The base geometry can belong to curves created with the Draft Workbench or the Sketcher Workbench, but can also belong to solid objects such as those created with the Part Workbench.

    Surface BlendCurve G3 example.png Surface BlendCurve Comb.png

    Surface Blend Curve joining 2 edges with G3 continuity. Orange polygon represent the control points. Curvature comb (from Curves addon) is smooth at contact points.


    1. Select two edges in the 3D view
    2. There are several ways to invoke the command:
    3. Adjust the curve shape in the object Data properties


    A Surface Blend Curve is derived from the basic Part Feature (Part::Feature class, through the Part::Spline subclass), therefore it shares all the latter's properties.

    In addition to the properties described in Part Feature, the Surface Blend Curve has the following properties in the property editor.


    Blend Curve

    • DataStart Edge (LinkSub): First input edge.
    • DataStart Continuity (Integer): Geometric continuity value
    • DataStart Parameter (Float): Normalized parameter along edge; from 0.0(edge start) to 1.0(edge end).
    • DataStart Size (Float): Size of the tangent.
    • DataEnd Edge (LinkSub): Second input edge.
    • DataEnd Continuity (Integer): Geometric continuity value
    • DataEnd Parameter (Float): Normalized parameter along edge; from 0.0(edge start) to 1.0(edge end).
    • DataEnd Size (Float): Size of the tangent.



    • ViewControl Points (Bool): it defaults to false; if set to true, it will show an overlay with the control points of the curve.


    See also: FreeCAD Scripting Basics.

    The Blend Curve tool can be used in macros and from the Python console by adding the Surface::FeatureBlendCurve object.

    • The edges to be used to define the curve must be assigned as LinkSub to the StartEdge and EndEdge properties of the object.
    • All objects with edges need to be computed before they can be used as input for the properties of the Blend Curve object.
    import FreeCAD as App
    import Draft
    doc = App.newDocument()
    points1 = [App.Vector(-20, -20, 0), App.Vector(-20, -8, 0), App.Vector(-17, 7, 0), App.Vector(-18, 25, 0)]
    obj1 = Draft.make_bspline(points1)
    points2 = [App.Vector(60, 26, 0), App.Vector(37, 4, 0), App.Vector(33, -20, 0)]
    obj2 = Draft.make_bspline(points2)
    bcurve = doc.addObject("Surface::FeatureBlendCurve","BlendCurve")
    bcurve.StartEdge = (obj1, 'Edge1')
    bcurve.EndEdge = (obj2, 'Edge1')
    bcurve.EndParameter = 1.00
    bcurve.StartSize = -5.00
    bcurve.EndSize = -5.00