Draft WireToBSpline: Difference between revisions

From FreeCAD Documentation
m ({{Code|code=)
m ((Vertical Docnav)[[ | ]])
(25 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<translate>
<translate>
<!--T:17-->
{{Docnav
|[[Draft_SubelementHighlight|Subelement highlight]]
|[[Draft_AddPoint|Add point]]|[[Draft_Module|Draft]]
|IconL=Draft_SubelementHighlight.svg
|IconC=Workbench_Draft.svg
|IconR=Draft_AddPoint.svg
}}

<!--T:1-->
<!--T:1-->
{{GuiCommand
{{GuiCommand|Name=Draft WireToBSpline|Workbenches=[[Draft Module|Draft]], [[Arch Module|Arch]]|MenuLocation=Drafting -> Wire to BSpline}}
|Name=Draft WireToBSpline
|MenuLocation=Drafting → Wire to BSpline
|Workbenches=[[Draft Module|Draft]], [[Arch Module|Arch]]
|SeeAlso=[[Draft Wire|Draft Wire]], [[Draft BSpline|Draft BSpline]]
}}


==Description== <!--T:2-->
==Description== <!--T:2-->


<!--T:3-->
<!--T:3-->
This tool converts [[Draft Wire|Wires]] to [[Draft BSpline|BSplines]], and vice-versa.
This tool converts [[Draft Wire|Draft Wires]] to [[Draft BSpline|Draft BSplines]], and vice-versa.


</translate>
</translate>
[[Image:Draft Wire2BSpline example.jpg|400px]]
[[Image:Draft Wire2BSpline example.jpg|400px]]
<translate>
<translate>
<!--T:12-->
{{Caption|Convertir a wire to a B-Spline, and a closed B-Spline to a closed wire}}


==How to use== <!--T:4-->
==How to use== <!--T:4-->


<!--T:5-->
<!--T:5-->
# Select a [[Draft Wire|wire]] or a [[Draft BSpline|BSpline]]
# Select a [[Draft Wire|Draft Wire]] or a [[Draft BSpline|Draft BSpline]]. The tool is disabled if no object is selected.
# Press the {{KEY|[[Image:Draft WireToBSpline.png|16px]] [[Draft WireToBSpline]]}} button
# Press the {{Button|[[Image:Draft WireToBSpline.svg|16px]] [[Draft WireToBSpline|Draft WireToBSpline]]}} button.

<!--T:13-->
A new object will be created; the original object will not be modified.

<!--T:14-->
{{Emphasis|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 {{PropertyData|Make Face}} to {{FALSE}} to see the new shape, or set {{PropertyData|Closed}} to {{FALSE}} to create an open shape.


==Options== <!--T:6-->
==Options== <!--T:6-->


<!--T:7-->
<!--T:7-->
There are no options for this tool. Either it works with the selected object or not.
* The original object will not be deleted after the operation, you must delete it manually if you wish so.


==Scripting== <!--T:8-->
==Scripting== <!--T:8-->
{{Emphasis|See also:}} [[Draft API|Draft API]] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].


<!--T:9-->
<!--T:9-->
Not available, but creating a new object with the points from another one is easy, for example:
There is no programming interface available for the WireToBSpline tool; however, creating a new object from the points of another is simple.


<!--T:10-->
<!--T:15-->
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 is defined by its {{incode|FreeCAD.Vector}}, with units in millimeters.
* If the active object is a wire:


<!--T:10-->
Example:
</translate>
</translate>
{{Code|code=
{{Code|code=
import FreeCAD,Draft
import FreeCAD, Draft

points = FreeCAD.ActiveDocument.ActiveObject.Points
# Make a spline from the points of a wire
Draft.makeBSpline(points)
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)
}}
}}
<translate>
<translate>


<!--T:11-->
<!--T:16-->
{{Docnav
* if the active object is a bspline
|[[Draft_SubelementHighlight|Subelement highlight]]

|[[Draft_AddPoint|Add point]]
</translate>
|[[Draft_Module|Draft]]
{{Code|code=
|IconL=Draft_SubelementHighlight.svg
import FreeCAD,Draft
|IconC=Workbench_Draft.svg
points = FreeCAD.ActiveDocument.ActiveObject.Points
|IconR=Draft_AddPoint.svg
Draft.makeWire(points)
}}
}}


<!--T:18-->
<languages/>
{{Draft Tools navi}}

<!--T:19-->
{{Userdocnavi}}
</translate>
{{clear}}

Revision as of 09:37, 29 November 2019

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.

Convertir a wire to a B-Spline, and a closed B-Spline to a closed wire

How to use

  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: 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 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)