Draft Text: Difference between revisions

From FreeCAD Documentation
mNo edit summary
m (png to svg)
(48 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
<translate>
<translate>
<!--T:18-->
{{Docnav|[[Draft_Rectangle|Rectangle]]|[[Draft_Dimension|Dimension]]|[[Draft_Module|Draft]]|IconL=Draft_Rectangle.svg |IconC=Workbench_Draft.svg|IconR=Draft_Dimension.svg }}

<!--T:1-->
<!--T:1-->
{{GuiCommand
{{GuiCommand|Name=Draft Text|Workbenches=[[Draft Module|Draft]], [[Arch Module|Arch]]|MenuLocation=Draft → Text|Shortcut=T E}}
|Name=Draft Text
|MenuLocation=Draft → Text
|Workbenches=[[Draft Module|Draft]], [[Arch Module|Arch]]
|Shortcut={{KEY|T}} {{KEY|E}}
|SeeAlso=[[Draft Label|Draft Label]], [[Draft ShapeString|Draft ShapeString]]
|Version=0.7}}


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

The Text tool inserts a piece of text at a given point in the current document. It takes the [[Draft Linestyle|text size and color]] previously set on the Tasks tab.
<!--T:2-->
The {{Button|[[Image:Draft_Text.svg|16px]] [[Draft Text|Draft Text]]}} tool inserts a multi-line textbox at a given point. It uses the [[Draft Linestyle|Draft Linestyle]] set on the [[Draft Tray|Draft Tray]].

<!--T:11-->
'''Alternatively:''' To create a text label with a leader and an arrow use [[Draft Label|Draft Label]]. To create solid text or 3D letters use [[Draft ShapeString|Draft ShapeString]] with [[Part Extrude|Part Extrude]].


<!--T:3-->
<!--T:3-->
[[Image:Draft_Text_example.jpg|400px]]
[[Image:Draft_Text_example.png|400px]]
{{Caption|Single point required to position the textbox}}


==How to use== <!--T:4-->
<!--T:21-->
'''Warning:''' The texts created with [[Release notes 0.18 |version 0.18]] are not backward compatible, so backup your work if you try to open files created with 0.18 with older versions.
# Press the {{KEY|[[Image:Draft Text.png|16px]] [[Draft Text]]}} button, or press {{KEY|T}} then {{KEY|E}} keys

# Click a point on the 3D view, or type a [[Draft_Coordinates|coordinate]]
==Usage== <!--T:23-->
# Enter the desired text, pressing {{KEY|ENTER}} between each line

# Press {{KEY|ENTER}} twice to finish the operation.
<!--T:4-->
# Press the {{Button|[[Image:Draft_Text.svg|16px]] [[Draft Text|Draft Text]]}} button, or press {{KEY|T}} then {{KEY|E}} keys.
# Click a point on the 3D view, or type a [[Draft_Coordinates|coordinate]] and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] [[Draft_AddPoint|add point]]}} button.
# Enter the desired text, pressing {{KEY|Enter}} between each line.
# Press {{KEY|Enter}} twice to finish the operation.


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


<!--T:6-->
<!--T:6-->
* To enter coordinates manually, simply enter the numbers, then press {{KEY|Enter}} between each X, Y and Z component. You can press the {{Button|[[Image:Draft_AddPoint.svg|16px]] [[Draft_AddPoint|add point]]}} button when you have the desired values to insert the point.
* Pressing {{KEY|CTRL}} will [[Draft_Snap|snap]] your point to available snap locations.
* Hold {{KEY|Ctrl}} while placing the text to force [[Draft_Snap|snapping]] your point to the nearest snap location, independently of the distance.
* To enter coordinates manually, simply enter the numbers, then press {{KEY|ENTER}} between each X, Y and Z component.
* Press {{KEY|Enter}} or {{KEY|↓ Down arrow}} to enter a new line of text.
* Pressing {{KEY|ESC}} will cancel the operation.
* When editing the text, pressing {{KEY|ENTER}} or {{KEY|DOWN ARROW}} allow you to enter or edit a next line of text.
* Press {{KEY| Up arrow}} to edit the previous line of text.
* Pressing {{KEY|UP ARROW}} allows you to edit a previous line of text.
* Press {{KEY|Enter}} or {{KEY|↓ Down arrow}} twice to finish editing the text.
* Press {{KEY|Esc}} or the {{Button|Close}} button to abort the current command.
* Pressing {{KEY|ENTER}} '''twice''' (thus leaving the last line empty) adds the text to the document and closes the editor.


==Properties== <!--T:7-->
==Properties== <!--T:7-->

* {{PropertyData|Position}}: The base point of the text block
=== Data === <!--T:12-->
* {{PropertyData|Label Text}}: The contents of the text block
* {{PropertyData|Text}}: specifies the contents of the text block as a list of strings; each element on the list, separated by a comma, indicates a new line.
* {{PropertyView|Display Mode}}: Specifies if the text is aligned to the scene axes or always faces the camera
* {{PropertyData|Position}}: specifies the base point of the first line of the text block.
* {{PropertyView|Font Size}}: The size of the letters
* {{PropertyView|Justification}}: Specifies if the text is aligned to the left, right or center of the base point.
* {{PropertyData|Angle}}: specifies the rotation of the baseline of the first line of the text block.
* {{PropertyView|Line Spacing}}: Specifies the space between lines of text
* {{PropertyData|Axis}}: specifies the axis to use for the rotation.

* {{PropertyView|Rotation}}: Specifies a rotation to be applied to the text
=== View === <!--T:13-->
* {{PropertyView|Rotation Axis}}: Specifies the axis to use for the rotation
* {{PropertyView|Font Name}}: 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", or 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.
* {{PropertyView|Display 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.
* {{PropertyView|Font Name}}: 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.
* {{PropertyView|Font Size}}: specifies the size of the letters. If the text object is created in the tree view but no text is visible, increase the size of the text until it is visible.
* {{PropertyView|Justification}}: specifies if the text aligns to the left, right or at the center of the base point.
* {{PropertyView|Line Spacing}}: specifies the space between lines of text.


==Scripting== <!--T:8-->
==Scripting== <!--T:8-->
{{Emphasis|See also:}} [[Draft API|Draft API]] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].
The Text tool can by used in [[macros]] and from the python console by using the following function:

<!--T:14-->
The Text tool can be used in [[macros|macros]] and from the [[Python|Python]] console by using the following function:
</translate>
</translate>
{{Code|code=
{{Code|code=
Text = makeText(stringlist, point=Vector(0,0,0), screen=False)
makeText (string or list, [Vector], [screenmode])
}}
}}
<translate>
<translate>
<!--T:9-->
<!--T:9-->
* Creates a Text object, at the given point if a vector is provided, containing the string or the strings given in the list, one string by line.
* Creates a {{incode|Text}} object, at a {{incode|point}} defined by a {{incode|FreeCAD.Vector}}.
* {{incode|stringlist}} is a string, or a list of strings; if it's a list, each element is displayed in its own line.
* The current Draft color and text height and font specified in preferences are used.
* If screenmode is True, the text always faces the view direction, otherwise it lies on the XY plane.
* If {{incode|screen}} is {{incode|True}}, the text always faces the camera view direction, otherwise it aligns with the scene axes, and lies on the XY plane.

* Returns the newly created object.
<!--T:15-->
The placement of the {{incode|Text}} can be changed by overwriting its {{incode|Placement}} attribute, or by individually overwriting its {{incode|Placement.Base}} and {{incode|Placement.Rotation}} attributes.

<!--T:16-->
The view properties of {{incode|Text}} can be changed by overwriting its attributes; for example, overwrite {{incode|ViewObject.FontSize}} with the new size in millimeters.


<!--T:10-->
<!--T:10-->
Line 53: Line 86:
</translate>
</translate>
{{Code|code=
{{Code|code=
import FreeCAD,Draft
import FreeCAD, Draft
Draft.makeText("This is a sample text",FreeCAD.Vector(1,1,0))


p1 = FreeCAD.Vector(0, 0, 0)
t1 = "This is a sample text"

p2 = FreeCAD.Vector(1000, 1000, 0)
t2 = ["First line", "second line"]

Text1 = Draft.makeText(t1, point=p1)
Text2 = Draft.makeText(t2, point=p2)
Text1.ViewObject.FontSize = 200
Text2.ViewObject.FontSize = 200

p3 = FreeCAD.Vector(-1000, -500, 0)
t3 = ["Upside", "down"]

Text3 = Draft.makeText(t3, point=p3)
Text3.ViewObject.FontSize = 200

ZAxis = FreeCAD.Vector(0, 0, 1)
place3 = FreeCAD.Placement(p3, FreeCAD.Rotation(ZAxis, 175))
Text3.Placement = place3

Text4 = Draft.makeText(t3, point=p3)
Text4.ViewObject.FontSize = 200
Text4.Placement.Rotation = FreeCAD.Rotation(ZAxis, -30)
}}
}}
<translate>

<!--T:17-->
{{Docnav|[[Draft_Rectangle|Rectangle]]|[[Draft_Dimension|Dimension]]|[[Draft_Module|Draft]]|IconL=Draft_Rectangle.svg |IconC=Workbench_Draft.svg|IconR=Draft_Dimension.svg }}

</translate>
{{Draft Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}
{{clear}}
<languages/>

Revision as of 04:44, 22 February 2020

Draft Text

Menu location
Draft → Text
Workbenches
Draft, Arch
Default shortcut
T E
Introduced in version
0.7
See also
Draft Label, Draft ShapeString

Description

The Draft Text tool inserts a multi-line textbox at a given point. It uses the Draft Linestyle set on the Draft Tray.

Alternatively: To create a text label with a leader and an arrow use Draft Label. To create solid text or 3D letters use Draft ShapeString with Part Extrude.

Single point required to position the textbox

Warning: The texts created with version 0.18 are not backward compatible, so backup your work if you try to open files created with 0.18 with older versions.

Usage

  1. Press the Draft Text button, or press T then E keys.
  2. Click a point on the 3D view, or type a coordinate and press the add point button.
  3. Enter the desired text, pressing Enter between each line.
  4. Press Enter twice to finish the operation.

Options

  • To enter coordinates manually, simply enter the numbers, then press Enter between each X, Y and Z component. You can press the add point button when you have the desired values to insert the point.
  • Hold Ctrl while placing the text to force snapping your point to the nearest snap location, independently of the distance.
  • Press Enter or ↓ Down arrow to enter a new line of text.
  • Press ↑ Up arrow to edit the previous line of text.
  • Press Enter or ↓ Down arrow twice to finish editing the text.
  • Press Esc or the Close button to abort the current command.

Properties

Data

  • DataText: specifies the contents of the text block as a list of strings; each element on the list, separated by a comma, indicates a new line.
  • DataPosition: specifies the base point of the first line of the text block.
  • DataAngle: specifies the rotation of the baseline of the first line of the text block.
  • DataAxis: specifies the axis to use for the rotation.

View

  • 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.
  • ViewFont Name: 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.
  • ViewFont Size: specifies the size of the letters. If the text object is created in the tree view but no text is visible, increase the size of the text until it is visible.
  • ViewJustification: specifies if the text aligns to the left, right or at the center of the base point.
  • ViewLine Spacing: specifies the space between lines of text.

Scripting

See also: Draft API and FreeCAD Scripting Basics.

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

Text = makeText(stringlist, point=Vector(0,0,0), screen=False)
  • Creates a Text object, at a point defined by a FreeCAD.Vector.
  • stringlist is a string, or a list of strings; if it's a list, each element is displayed in its own line.
  • If screen is True, the text always faces the camera view direction, otherwise it aligns with the scene axes, and lies on the XY plane.

The placement of the Text can be changed by overwriting its Placement attribute, or by individually overwriting its Placement.Base and Placement.Rotation attributes.

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

Example:

import FreeCAD, Draft

p1 = FreeCAD.Vector(0, 0, 0)
t1 = "This is a sample text"

p2 = FreeCAD.Vector(1000, 1000, 0)
t2 = ["First line", "second line"]

Text1 = Draft.makeText(t1, point=p1)
Text2 = Draft.makeText(t2, point=p2)
Text1.ViewObject.FontSize = 200
Text2.ViewObject.FontSize = 200

p3 = FreeCAD.Vector(-1000, -500, 0)
t3 = ["Upside", "down"]

Text3 = Draft.makeText(t3, point=p3)
Text3.ViewObject.FontSize = 200

ZAxis = FreeCAD.Vector(0, 0, 1)
place3 = FreeCAD.Placement(p3, FreeCAD.Rotation(ZAxis, 175))
Text3.Placement = place3

Text4 = Draft.makeText(t3, point=p3)
Text4.ViewObject.FontSize = 200
Text4.Placement.Rotation = FreeCAD.Rotation(ZAxis, -30)