Draft Label

From FreeCAD Documentation
Jump to: navigation, search
This page contains changes which are not marked for translation.

Other languages:
English • ‎español • ‎français • ‎italiano • ‎română

Draft Label.png Draft Label

Menu location
Draft → Label
Workbenches
Draft, Arch
Default shortcut
D L
Introduced in version
0.17
See also
Draft Text, Draft ShapeString


Description

The Label tool inserts a multi-line textbox with a 2-segment leader line and an arrow. If an object or a sub-element (face, edge or vertex) is selected when starting the command, the Label can be made to display a certain attribute of the selected element, including position, length, area, volume, or material.

To insert a simpler text element without an arrow use Draft Text. To create solid text shapes use Draft ShapeString with Part Extrude.

Draft Label example.jpg

How to use

  1. Press the Draft Label.png Draft Label button, or press D then L keys.
  2. Click a first point on the 3D view, or type a coordinate and press the Draft AddPoint.svg add point button. This point indicates the target (arrow head). This can be anywhere, it doesn't need to be an element.
  3. Click a second point on the 3D view, or type a coordinate and press the Draft AddPoint.svg add point button. This point indicates the start of a horizontal or vertical leader.
  4. Click a third point on the 3D view, or type a coordinate and press the Draft AddPoint.svg add point button. This point indicates the base point of the text.

Note: the direction of the horizontal straight segment, to the right or to the left, will automatically align the text to the opposite direction. If the leader goes vertically up, the text is aligned to the left; if it goes vertically down, it is aligned to the right.

Note 2: by pre-selecting an object, or a sub-element (vertex, edge or face), before pressing the tool button, the label will become parametric, that is, it will remember which object it is bound to, and it will be able to display a particular attribute of that object. If the attributes of the object change later on, the label will adjust the displayed information.

Options

  • Click on Label type to select the type of information to display, including "Custom", "Name", "Label", "Position", "Length", "Area", "Volume", "Tag", and "Material".
  • To enter coordinates manually, simply enter the numbers, then press Enter between each X, Y and Z component. You can press the Draft AddPoint.svg add point button when you have the desired values to insert the point.
  • Hold Ctrl while placing the label to force snapping your point to the nearest snap location, independently of the distance.
  • Press Esc or the Close button to abort the current command.

Properties

Data

  • DATALabel Type: specifies the type of information shown by this label (see below).
  • DATACustom Text: specifies the text block to display when DATALabel Type is set to "Custom", or the label is not parametric. The text is given as a list of strings; each element on the list, separated by a comma, indicates a new line of text.
  • DATAText: (read-only) indicates the actual text displayed by the label, depending on the DATALabel Type.
  • DATATarget Point: specifies the position of the tip of the leader.
  • DATAStraight Direction: specifies the direction of the straight segment of the leader, either horizontal or vertical.
  • DATAStraight Distance: specifies the length of the straight segment of the leader, starting from the base point of the text. If the distance is positive, the leader starts from the right side of the text, and the text aligns to the right; otherwise, the leader starts from the left side of the text, and the text aligns to the left.
  • DATAPosition: specifies the base point of the first line of the text block; it also influences how the leader is drawn.
  • DATAAngle: specifies the rotation of the baseline of the first line of the text block; it also influences how the leader is drawn, as it will no longer be horizontal or vertical.
  • DATAAxis: specifies the axis to use for the rotation.

Label types

  • Custom: displays the contents of DATACustom Text.
  • Name: displays the internal name of the target object; the internal name is assigned to the object at its creation time, and remains fixed throughout the existence of the object.
  • Label: displays the label of the target object; the label of the object can be changed by the user at any time.
  • Position: displays the coordinates of the base point of the target object, of the target vertex, or of the center of mass of the target sub-element, if applicable.
  • Length: displays the length of the target sub-element, if applicable.
  • Area: displays the area of the target sub-element, if applicable.
  • Volume: displays the volume of the target object, if applicable.
  • Tag: displays the Tag attribute of the target object, if the object has such property, for example, objects created with the Arch Workbench.
  • Material: displays the label of the material of the target object, if the target object has such property.

View

  • VIEWText Font: specifies the font to use to draw the text. It can be a font name, such as "Arial", a default style such as "sans", "serif" or "mono", a family such as "Arial,Helvetica,sans" or a name with a style such as "Arial:Bold". If the given font is not found on the system, a generic one is used instead.
  • VIEWText Size: specifies the size of the text. If the label object is created in the tree view but no text is visible in the 3D view, increase the size of the text until it is visible.
  • VIEWText Alignment: specifies the vertical alignment of the baseline of the text with respect to the leader. It can be top, middle or bottom.
  • VIEWText Color: specifies the color of the text in an RGB tuple (R, G, B).
  • VIEWLine Width: specifies the width of the leader.
  • VIEWLine Color: specifies the color of the leader.
  • VIEWArrow Size: specifies the size of the symbol displayed at the tip of the leader.
  • VIEWArrow Type: specifies the type of symbol displayed at the tip of the leader, which can be dot, circle, arrow, or tick.
  • VIEWFrame: if it is "Rectangle" it will draw a frame around the text.
  • VIEWLine: if it is True the leader line will be displayed; otherwise only the text and the symbol at the tip will be displayed.
  • VIEWDisplay Mode: if it is "3D text" the text will be aligned to the scene axes, initially lying on the XY plane; if it is "2D text" the text will always face the camera.

Scripting

See also: Draft API and FreeCAD Scripting Basics.

The Label tool can be used in macros and from the Python console by using the following function:

Label = makeLabel(targetpoint=None, target=None, direction=None, distance=None, labeltype=None, placement=None) 
  • Creates a Label object, with the leader pointing to targetpoint, and linking to the target object which must be a DocumentObject (Editor: or a SelectionObject? This is unclear).
  • direction is either "Horizontal", "Vertical", or "Custom".
  • distance is the distance from the base point of the text to the leader.
  • labeltype is one of "Custom", "Name", "Label", "Position", "Length", "Area", "Volume", "Tag", or "Material".
  • If a placement is given, it is used for the base point of the text; otherwise the text is created at the origin.

Change the custom text by overwriting the CustomText attribute. A list of strings can be used; each element will be displayed in its own line.

The view properties of Label can be changed by overwriting its attributes; for example, overwrite ViewObject.TextSize with the new size in millimeters.

Example:

import FreeCAD, Draft

Rectangle = Draft.makeRectangle(4000, 1000)

p1 = FreeCAD.Vector(-200, 1000, 0)
place1 = FreeCAD.Placement(FreeCAD.Vector(-1000, 1300, 0), FreeCAD.Rotation())

Label1 = Draft.makeLabel(p1, Rectangle, "Horizontal", 500, "Label", place1)
Label1.ViewObject.TextSize = 200

p2 = FreeCAD.Vector(-200, 0, 0)
place2 = FreeCAD.Placement(FreeCAD.Vector(-1000, -300, 0), FreeCAD.Rotation())

Label2 = Draft.makeLabel(p2, Rectangle, "Horizontal", 500, "Custom", place2)
Label2.CustomText = ["Beware of the", "sharp edges"]
Label2.ViewObject.TextSize = 200
FreeCAD.ActiveDocument.recompute()

p3 = FreeCAD.Vector(1000, 1200, 0)
place3 = FreeCAD.Placement(FreeCAD.Vector(2000, 1800, 0), FreeCAD.Rotation())

Label3 = Draft.makeLabel(p3, Rectangle, "Horizontal", -500, "Area", place3)
Label3.ViewObject.TextSize = 200
FreeCAD.ActiveDocument.recompute()