Draft WireToBSpline

From FreeCAD Documentation
Jump to navigation Jump to search
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎română • ‎svenska • ‎čeština • ‎русский
Arrow-left.svg Previous: Draft Downgrade.svg Downgrade

Draft WireToBSpline.svg Draft WireToBSpline

Menu location
Modification → Wire to B-spline
Draft, Arch
Default shortcut
Introduced in version
See also
Draft Wire, Draft BSpline


The Draft WireToBSpline.svg Draft WireToBSpline command converts Draft Wires to Draft BSplines and vice versa.

Draft Wire2BSpline example.jpg

Converting a Draft Wire to a Draft BSpline, and a closed Draft BSpline to a closed Draft Wire


  1. Select a Draft Wire or a Draft BSpline.
  2. There are several ways to invoke the command:
    • Press the Draft WireToBSpline.svg Draft WireToBSpline button.
    • Select the Modification → Draft WireToBSpline.svg Wire to B-spline option from the menu.
  3. A new object is created.


  • The command may result in a closed, self-intersecting Draft Wire or Draft BSpline with a face. Such an object will not display properly in the 3D view. Its DataMake Face property, or its DataClosed property, must be set to false.


See also: Autogenerated API documentation and FreeCAD Scripting Basics.

To convert a wire to a bspline, or vice versa, pass the Points property of the source object to the make_bspline method, or respectively the make_wire method, of the Draft module.


import FreeCAD as App
import Draft

doc = App.newDocument()

p1 = App.Vector(1000, 1000, 0)
p2 = App.Vector(2000, 1000, 0)
p3 = App.Vector(2500, -1000, 0)
p4 = App.Vector(3500, -500, 0)

base_wire = Draft.make_wire([p1, p2, p3, p4])
base_spline = Draft.make_bspline([-p1, -1.3*p2, -1.2*p3, -2.1*p4])

points1 = base_wire.Points
spline_from_wire = Draft.make_bspline(points1)

points2 = base_spline.Points
wire_from_spline = Draft.make_wire(points2)


Arrow-left.svg Previous: Draft Downgrade.svg Downgrade