|Drafting → Wire to BSpline|
Thetool converts to , and vice-versa.
Convert a wire to a B-Spline, and a closed B-Spline to a closed wire
- Select a Draft Wire or a Draft BSpline. The tool is disabled if no object is selected.
- Press the button.
A new object will be created; the original object will not be modified.
Note: if a closed wire with sharp edges is used to create a spline, the new object may have self intersecting curve segments, and may not be visible in the 3D view. If this is the case, manually set DataMake Face to
false to see the new shape, or set DataClosed to
false to create an open shape.
There are no options for this tool. Either it works with the selected object or not.
There is no programming interface available for the WireToBSpline tool; however, creating a new object from the points of another is simple.
Points attribute of an object is a list with the points that comprise that object; this list can be passed to functions that build geometry. Each point is defined by its
FreeCAD.Vector, with units in millimeters.
import FreeCAD, Draft # Make a spline from the points of a wire p1 = FreeCAD.Vector(1000, 1000, 0) p2 = FreeCAD.Vector(2000, 1000, 0) p3 = FreeCAD.Vector(2500, -1000, 0) p4 = FreeCAD.Vector(3500, -500, 0) base_wire = Draft.makeWire([p1, p2, p3, p4]) points1 = base_wire.Points spline = Draft.makeBSpline(points1) # Make a wire from the points of a spline base_spline = Draft.makeBSpline([-p1, -1.3*p2, -1.2*p3, -2.1*p4]) points2 = base_spline.Points Wire = Draft.makeWire(points2)