|Draft → Label|
|Introduced in version|
|Draft Text, Draft ShapeString|
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.
Various labels with different orientations, tip symbols, and information
How to use
- Press the button, or press then keys.
- Click a first point on the 3D view, or type a coordinate and press the button. This point indicates the target (arrow head). This can be anywhere, it doesn't need to be an element.
- Click a second point on the 3D view, or type a coordinate and press the button. This point indicates the start of a horizontal or vertical leader.
- Click a third point on the 3D view, or type a coordinate and press the 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.
- Click on 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 between each X, Y and Z component. You can press the button when you have the desired values to insert the point.
- Hold snapping your point to the nearest snap location, independently of the distance. while placing the label to force
- Press or the button to abort the current command.
- 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.
- 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
Tagattribute 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.
- 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 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.
Label = makeLabel(targetpoint=None, target=None, direction=None, distance=None, labeltype=None, placement=None)
- Creates a
Labelobject, with the leader pointing to
targetpoint, and linking to the
targetobject which must be a
DocumentObject(Editor: or a SelectionObject? This is unclear).
directionis either "Horizontal", "Vertical", or "Custom".
distanceis the distance from the base point of the text to the leader.
labeltypeis one of "Custom", "Name", "Label", "Position", "Length", "Area", "Volume", "Tag", or "Material".
- If a
placementis 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.
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()