Draft WireToBSpline: Difference between revisions

From FreeCAD Documentation
No edit summary
mNo edit summary
Line 55: Line 55:


<!--T:9-->
<!--T:9-->
To convert a wire to a bspline, or vice-versa, pass the {{incode|Points}} property of the source object to the {{incode|make_bspline}} method, or respectively the {{incode|make_wire}} method, of the Draft module.
To convert a wire to a bspline, or vice-versa, pass the {{incode|Points}} property of the source object to the {{incode|[[Draft BSpline#Scripting|make_bspline]]}} method, or respectively the {{incode|[[Draft_Wire#Scripting|make_wire]]}} method, of the Draft module.


<!--T:10-->
<!--T:10-->

Revision as of 14:56, 25 May 2021

This documentation is a work in progress. Please don't mark it as translatable since it will change in the next hours and days.

Draft WireToBSpline

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

Description

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

Usage

  1. Select a Draft Wire or a Draft BSpline. The tool is disabled if no object is selected.
  2. 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.

Options

There are no options for this tool. Either it works with the selected object or not.

Scripting

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.

Example:

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)

doc.recompute()