Draft Wire: Difference between revisions

From FreeCAD Documentation
No edit summary
m (clarifying the location of buttons to finish operations)
Line 45: Line 45:
#* Select the {{MenuCommand|Drafting → [[Image:Draft_Wire.svg|16px]] Polyline}} option from the menu.
#* Select the {{MenuCommand|Drafting → [[Image:Draft_Wire.svg|16px]] Polyline}} option from the menu.
#* Use the keyboard shortcut: {{KEY|P}} then {{KEY|L}}.
#* Use the keyboard shortcut: {{KEY|P}} then {{KEY|L}}.
# Click the first point in the [[3D_view|3D view]], or type [[Draft_Coordinates|coordinates]] and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] Enter point}} button.
# Click the first point in the [[3D_view|3D view]], or type [[Draft_Coordinates|coordinates]] and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] Enter point}} button in the related Line task panel.
# Click additional points in the [[3D_view|3D view]], or type [[Draft_Coordinates|coordinates]] and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] Enter point}} button.
# Click additional points in the [[3D_view|3D view]], or type [[Draft_Coordinates|coordinates]] and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] Enter point}} button in the related Line task panel.
# Press {{KEY|Esc}} or the {{Button|Close}} button to finish the command.
# Press {{KEY|Esc}} or the {{Button|Close}} button in the related Line task panel to finish the command.


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

Revision as of 13:23, 26 March 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 Wire

Menu location
Drafting → Polyline
Workbenches
Draft, Arch
Default shortcut
P L
Introduced in version
0.7
See also
Draft Line, Draft BSpline

Description

The Draft Wire command creates a polyline (a sequence of several line segments). It uses the Draft Linestyle set on the Draft Tray.

The command can also be used to join Draft Lines and Draft Wires.

Wire defined by multiple points

Create

Usage

  1. There are several ways to invoke the command:
    • Press the Draft Wire button.
    • Select the Drafting → Polyline option from the menu.
    • Use the keyboard shortcut: P then L.
  2. Click the first point in the 3D view, or type coordinates and press the Enter point button in the related Line task panel.
  3. Click additional points in the 3D view, or type coordinates and press the Enter point button in the related Line task panel.
  4. Press Esc or the Close button in the related Line task panel to finish the command.

Options

  • Press A or the Finish button to finish the wire, leaving it open.
  • Press O or the Close button to close the wire, that is, a segment will be added from the last point to the first one to form a face. At least three points are required to form a face.
  • Press W or the Wipe button to remove the line segments already placed, but keep editing the wire from the last point.
  • Press U or the Set WP button to adjust the current working plane in the orientation of the last point.
  • Press X, Y or Z after a point to constrain the next point on the given axis.
  • To enter coordinates manually, simply enter the numbers, then press Enter between each X, Y and Z component. You can press the Enter point button when you have the desired values to insert the point.
  • Press R or click the checkbox to toggle relative mode. If relative mode is on, the coordinates of the next point are relative to the last one; if not, they are absolute, taken from the origin (0,0,0).
  • Press T or click the checkbox to toggle continue mode. If continue mode is on, the Wire command will restart after you finish the wire, allowing you to draw another one without pressing the command button again.
  • Press L or click the checkbox to toggle filled mode. If filled mode is on, a closed wire will create a filled face (DataMake Face true); if not, the closed wire will not make a face (DataMake Face false).
Note: the wire should not be filled if it intersects itself, as it won't create a proper face. If the wire is filled but no shape is visible, manually set DataMake Face to false to see the wire.
  • Hold Ctrl while drawing to force snapping your point to the nearest snap location, independently of the distance.
  • Hold Shift while drawing to constrain your next point horizontally or vertically in relation to the last one.
  • Press Ctrl+Z or press the Undo button to undo the last point.
  • Press Esc or the Close button to finish the command.

Join

Usage

  1. The end points of the Draft Lines and/or Draft Wires to be joined must be exactly coincident. If required first adjust points to ensure that this is the case.
  2. Select two or more Draft Lines and/or Draft Wires.
  3. There are several ways to invoke the command:
    • Press the Draft Wire button.
    • Select the Drafting → Polyline option from the menu.
    • Use the keyboard shortcut: P then L.

Notes

Properties

A Draft Wire is derived from a Part Part2DObject and inherits all its properties. In addition it has the following properties:

Data

Draft

  • DataArea (Area)
  • DataBase (Link)
  • DataChamfer Size (Length): specifies the size of the chamfers (straight segments) created on the corners of the wire.
  • DataClosed (Bool): specifies if the wire is closed or not. If the wire is initially open, this value is false; setting it to true will draw a line segment to close the wire. If the wire is initially closed, this value is true; setting it to false will remove the last line segment, and make the wire open.
  • DataEnd (VectorDistance): specifies the last point in the wire, not counting the initial point if the wire is closed.
  • DataFillet Radius (Length): specifies the radius of the fillets (arc segments) created on the corners of the wire.
  • DataLength (Length): (read-only) specifies the length of the entire wire.
  • DataMake Face (Bool): specifies if the wire makes a face or not. If it is true a face is created, otherwise only the edges are considered part of the object. This property only works if DataClosed is true and if the wire does not self-intersect.
  • DataPoints (VectorList)
  • DataStart (VectorDistance): specifies the first point in the wire.
  • DataSubdivisions (Integer)
  • DataTool (Link)

View

Draft

  • ViewArrow Size (Length): specifies the size of the symbol displayed at the end of the wire.
  • ViewArrow Type (Enumeration): specifies the type of symbol displayed at the end of the wire, which can be "Dot", "Circle", "Arrow", or "Tick".
  • ViewEnd Arrow (Bool): if it is true it will display a symbol at the last point of the wire, so it can be used as an annotation line.
  • ViewPattern (Enumeration): specifies a Draft Pattern with which to fill the face of the closed wire. This property only works if DataMake Face is true, and if ViewDisplay Mode is "Flat Lines".
  • ViewPattern Size (Float): specifies the size of the Draft Pattern.

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

To create a Draft Wire use the make_wire method (introduced in version 0.19) of the Draft module. This method replaces the deprecated makeWire method.

wire = make_wire(pointslist, closed=False, placement=None, face=None, support=None)
wire = make_wire(Part.Wire, closed=False, placement=None, face=None, support=None)
  • Creates a Wire object with the given list of points, pointslist.
    • Each point in the list is defined by its FreeCAD.Vector, with units in millimeters.
    • Alternatively, the input can be a Part.Wire, from which points are extracted.
  • If closed is True, or if the first and last points are identical, the wire is closed.
  • If placement is None the shape is created at the origin.
  • If face is True, and the wire is closed, the wire will make a face, that is, it will appear filled.

Example:

import FreeCAD as App
import Draft

doc = App.newDocument()

p1 = App.Vector(0, 0, 0)
p2 = App.Vector(1000, 1000, 0)
p3 = App.Vector(2000, 0, 0)

wire1 = Draft.make_wire([p1, p2, p3], closed=True)
wire2 = Draft.make_wire([p1, 2*p3, 1.3*p2], closed=True)
wire3 = Draft.make_wire([1.3*p3, p1, -1.7*p2], closed=True)

doc.recompute()