Draft WireToBSpline: Difference between revisions
No edit summary |
(In the context of scripting "module" is correct.) |
||
(61 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
⚫ | |||
<translate> |
<translate> |
||
⚫ | |||
{{Docnav |
|||
|[[Draft_Downgrade|Downgrade]] |
|||
|[[Draft_Draft2Sketch|Draft2Sketch]] |
|||
|[[Draft_Workbench|Draft]] |
|||
|IconL=Draft_Downgrade.svg |
|||
|IconR=Draft_Draft2Sketch.svg |
|||
|IconC=Workbench_Draft.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=Modification → Wire to B-spline |
|||
|Workbenches=[[Draft_Workbench|Draft]], [[Arch_Workbench|Arch]] |
|||
|SeeAlso=[[Draft_Wire|Draft Wire]], [[Draft_BSpline|Draft BSpline]] |
|||
}} |
|||
==Description== <!--T:2--> |
==Description== <!--T:2--> |
||
<!--T:3--> |
<!--T:3--> |
||
The [[Image:Draft_WireToBSpline.svg|24px]] '''Draft WireToBSpline''' command converts [[Draft_Wire|Draft Wires]] to [[Draft_BSpline|Draft BSplines]] and vice versa. |
|||
</translate> |
</translate> |
||
[[Image: |
[[Image:Draft_Wire2BSpline_example.jpg|400px]] |
||
<translate> |
<translate> |
||
<!--T:12--> |
|||
{{Caption|Converting a wire to a B-spline, and a closed B-spline to a closed wire}} |
|||
== |
==Usage== <!--T:4--> |
||
<!--T:5--> |
<!--T:5--> |
||
# Select a [[Draft Wire |
# Select a [[Draft_Wire|Draft Wire]] or a [[Draft_BSpline|Draft BSpline]]. |
||
# There are several ways to invoke the command: |
|||
# Press the {{ |
#* Press the {{Button|[[Image:Draft_WireToBSpline.svg|16px]] [[Draft_WireToBSpline|Wire to B-spline]]}} button. |
||
#* Select the {{MenuCommand|Modification → [[Image:Draft_WireToBSpline.svg|16px]] Wire to B-spline}} option from the menu. |
|||
# A new object is created. |
|||
== |
==Notes== <!--T:21--> |
||
<!--T: |
<!--T:22--> |
||
* The command may result in a closed, self-intersecting [[Draft_Wire|Draft Wire]] or [[Draft_BSpline|Draft BSpline]] with a face. Such an object will not display properly in the [[3D_view|3D view]]. Its {{PropertyData|Make Face}} property, or its {{PropertyData|Closed}} property, must be set to {{FALSE}}. |
|||
* The original object will not be deleted after the operation, you must delete it manually if you wish so. |
|||
==Scripting== <!--T: |
==Scripting== <!--T:20--> |
||
<!--T:8--> |
|||
See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]]. |
|||
<!--T:9--> |
<!--T:9--> |
||
To convert a wire to a B-spline, 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. |
|||
Not available, but creating a new object with the points from another one is easy, for example: |
|||
<!--T:10--> |
<!--T:10--> |
||
Example: |
|||
* If the active object is a wire: |
|||
</translate> |
</translate> |
||
{{Code|code= |
|||
<syntaxhighlight> |
|||
import FreeCAD as App |
|||
⚫ | |||
points = FreeCAD.ActiveDocument.ActiveObject.Points |
|||
Draft.makeBSpline(points) |
|||
doc = App.newDocument() |
|||
</syntaxhighlight> |
|||
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() |
|||
}} |
|||
<translate> |
<translate> |
||
⚫ | |||
<!--T:16--> |
|||
* if the active object is a bspline |
|||
{{Docnav |
|||
|[[Draft_Downgrade|Downgrade]] |
|||
|[[Draft_Draft2Sketch|Draft2Sketch]] |
|||
|[[Draft_Workbench|Draft]] |
|||
|IconL=Draft_Downgrade.svg |
|||
|IconR=Draft_Draft2Sketch.svg |
|||
|IconC=Workbench_Draft.svg |
|||
}} |
|||
</translate> |
</translate> |
||
{{Draft Tools navi{{#translation:}}}} |
|||
<syntaxhighlight> |
|||
{{Userdocnavi{{#translation:}}}} |
|||
⚫ | |||
points = FreeCAD.ActiveDocument.ActiveObject.Points |
|||
Draft.makeWire(points) |
|||
</syntaxhighlight> |
|||
⚫ |
Latest revision as of 07:41, 10 April 2024
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 command converts Draft Wires to Draft BSplines and vice versa.
Converting a wire to a B-spline, and a closed B-spline to a closed wire
Usage
- Select a Draft Wire or a Draft BSpline.
- There are several ways to invoke the command:
- Press the Wire to B-spline button.
- Select the Modification → Wire to B-spline option from the menu.
- A new object is created.
Notes
- The command may result in a closed, self-intersecting Draft Wire or Draft BSpline with a face. Such an object will not display properly in the 3D view. Its DataMake Face property, or its DataClosed property, must be set to
false
.
Scripting
See also: Autogenerated API documentation and FreeCAD Scripting Basics.
To convert a wire to a B-spline, 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()
Draft
- Drafting: Line, Polyline, Fillet, Arc, Arc by 3 points, Circle, Ellipse, Rectangle, Polygon, B-spline, Cubic Bézier curve, Bézier curve, Point, Facebinder, ShapeString, Hatch
- Annotation: Text, Dimension, Label, Annotation styles, Annotation scale
- Modification: Move, Rotate, Scale, Mirror, Offset, Trimex, Stretch, Clone, Array, Polar array, Circular array, Path array, Path link array, Point array, Point link array, Edit, Subelement highlight, Join, Split, Upgrade, Downgrade, Wire to B-spline, Draft to sketch, Set slope, Flip dimension, Shape 2D view
- Draft Tray: Select plane, Set style, Toggle construction mode, AutoGroup
- Snapping: Snap lock, Snap endpoint, Snap midpoint, Snap center, Snap angle, Snap intersection, Snap perpendicular, Snap extension, Snap parallel, Snap special, Snap near, Snap ortho, Snap grid, Snap working plane, Snap dimensions, Toggle grid
- Miscellaneous: Apply current style, Layer, Manage layers, Add a new named group, Move to group, Select group, Add to construction group, Toggle normal/wireframe display, Create working plane proxy, Heal, Show snap toolbar
- Additional: Constraining, Pattern, Preferences, Import Export Preferences, DXF/DWG, SVG, OCA, DAT
- Context menu:
- Layer container: Merge layer duplicates, Add new layer
- Layer: Activate this layer, Select layer contents
- Text: Open hyperlinks
- Wire: Flatten
- Working plane proxy: Write camera position, Write objects state
User documentation
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub