The Draft WireToBSpline tool converts Draft Wires to Draft BSplines, 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 Draft WireToBSpline 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.
See also: Draft API and FreeCAD Scripting Basics.
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)
- Basics: Coordinates, Constraining, Snapping (Near, Extension, Parallel, Grid, Endpoint, Midpoint, Perpendicular, Angle, Center, Ortho, Intersection, Special, Dimensions, Working plane)
- Drawing: Line, Wire, Circle, Arc, Ellipse, Polygon, Rectangle, Text, Dimension, BSpline, Point, ShapeString, Facebinder, Bezier Curve, Label
- Modifying: Move, Rotate, Offset, Trimex, Upgrade, Downgrade, Scale, Edit, Wire to BSpline, Add point, Delete point, Shape 2D View, Draft to Sketch, Array, Path Array, Point Array, Clone, Drawing, Mirror, Stretch
- Utilities: Set working plane, Finish line, Close line, Undo line, Toggle construction mode, Toggle continue mode, Apply style, Toggle display mode, Add to group, Select group contents, Toggle snap, Toggle grid, Show snap bar, Heal, Flip Dimension, VisGroup, Slope, AutoGroup, Set Working Plane Proxy, Add to Construction group
- Additional: Preferences, Import-Export Preferences (DXF/DWG, SVG, OCA, DAT); Draft API
- Installation: Unix, Windows, Mac; Getting started
- Basics: About FreeCAD, Workbenches, Preferences, Document structure, Interface Customization, Properties, Mouse Model; Tutorials
- Workbenches: Arch, Draft, FEM, Image, Inspection, Mesh, OpenSCAD, Part, PartDesign, Path, Plot, Points, Raytracing, Reverse Engineering, Robot, Ship, Sketcher, Spreadsheet, Start, Surface workbench, TechDraw, Test Framework, Web
- Scripting: Introduction to Python, FreeCAD scripting tutorial, FreeCAD Scripting Basics, How to install macros, Gui Command, Units Modules: Builtin modules, Workbench creation, Installing more workbenches Meshes: Mesh Scripting, Mesh Module Parts: The Part Module, Topological data scripting, PythonOCC, Mesh to Part Coin scenegraph: The Coin/Inventor scenegraph, Pivy Qt interface: PySide, Using the FreeCAD GUI, Dialog creation Parametric objects: Scripted objects Other: Code snippets, Line drawing function, Embedding FreeCAD, FreeCAD vector math library, Power users hub, Python, Macros, FreeCAD Scripting Basics, Topological data scripting