Surface BlendCurve

From FreeCAD Documentation
Other languages:

Surface BlendCurve

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

Description

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 Blend Curve joining 2 edges with G3 continuity. Orange polygon represent the control points. Curvature comb (from Curves addon) is smooth at contact points.

Usage

  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

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.

Data

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.

View

Base

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

Scripting

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)

doc.recompute()

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

doc.recompute()