Draft WireToBSpline: Difference between revisions
(Redaction) |
(Code more complete) |
||
Line 39: | Line 39: | ||
There is no programming interface available for the WireToBSpline tool; however, creating a new object from the points of another is simple. |
There is no programming interface available for the WireToBSpline tool; however, creating a new object from the points of another is simple. |
||
The {{incode|Points}} attribute of an object is a list with the points that |
The {{incode|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 in the list is defined by its {{incode|FreeCAD.Vector}}, with units in millimeters. |
||
<!--T:10--> |
<!--T:10--> |
||
Example: |
|||
If the active object is a wire: |
|||
</translate> |
</translate> |
||
{{Code|code= |
{{Code|code= |
||
import FreeCAD,Draft |
import FreeCAD, Draft |
||
points = FreeCAD.ActiveDocument.ActiveObject.Points |
|||
⚫ | |||
}} |
|||
<translate> |
|||
# Make a spline from the points of a wire |
|||
<!--T:11--> |
|||
p1 = FreeCAD.Vector(1000, 1000, 0) |
|||
* if the active object is a bspline |
|||
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]) |
|||
</translate> |
|||
{{Code|code= |
|||
points1 = base_wire.Points |
|||
import FreeCAD,Draft |
|||
⚫ | |||
points = FreeCAD.ActiveDocument.ActiveObject.Points |
|||
⚫ | |||
# 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 |
|||
⚫ | |||
}} |
}} |
Revision as of 03:08, 14 November 2018
Draft WireToBSpline |
Menu location |
---|
Drafting → Wire to BSpline |
Workbenches |
Draft, Arch |
Default shortcut |
None |
Introduced in version |
- |
See also |
Draft Wire, Draft BSpline |
Description
This tool converts Draft Wires to Draft BSplines, and vice-versa.
How to use
- 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 converted to 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: 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.
The 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 in the list is defined by its FreeCAD.Vector
, with units in millimeters.
Example:
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)