Draft ShapeString: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
Line 20: Line 20:
|Shortcut={{KEY|S}} {{KEY|S}}
|Shortcut={{KEY|S}} {{KEY|S}}
|Version=0.14
|Version=0.14
|SeeAlso=[[Draft_Text|Draft Text]], [[Part_Extrude|Part Extrude]], [[Macro_Fonts_Win10_PYMP|Macro Fonts Win10 PYMP]]
|SeeAlso=[[Draft_Text|Draft Text]], [[Draft_Label|Draft Label]], [[Part_Extrude|Part Extrude]]
}}
}}


Line 26: Line 26:


<!--T:2-->
<!--T:2-->
The {{Button|[[Image:Draft_ShapeString.svg|16px]] [[Draft_ShapeString|Draft ShapeString]]}} tool inserts a compound shape that represents a text string. Text height, tracking and font can be specified.
The [[Image:Draft_ShapeString.svg|24px]] [[Draft_ShapeString|Draft ShapeString]] command inserts a compound shape that represents a text string. This shape can be used to create 3D letters with the [[Part_Extrude|Part Extrude]] command.
The resulting shape can be used with the [[Image:Part_Extrude.svg|24px]] [[Part_Extrude|Part Extrude]] tool to create 3D letters.


<!--T:19-->
<!--T:19-->
'''Alternatively''': To insert a simpler text element without a closed shape use [[Image:Draft_Text.svg|24px]] [[Draft_Text|Draft Text]]. To create a text label with a lead and an arrow use [[Image:Draft_Label.svg|24px]] [[Draft_Label|Draft Label]].
The Draft ShapeString command is not intended for standard text annotations. The [[Draft_Text|Draft Text]] command or the [[Draft_Label|Draft Label]] command can be used for that purpose.


</translate>
</translate>
Line 36: Line 35:
<translate>
<translate>
<!--T:14-->
<!--T:14-->
{{Caption|Single point required to position the Shapestring}}
{{Caption|Single point required to position the ShapeString}}


==Usage== <!--T:3-->
==Usage== <!--T:3-->
Line 51: Line 50:


<!--T:6-->
<!--T:6-->
* Press {{KEY|Esc}} or the {{Button|Close}} button to abort the current command.
* Press {{KEY|Esc}} or the {{Button|Close}} button to abort the command.


==Preferences==
==Preferences==
Line 65: Line 64:
* Many fonts will generate problematic geometric. This is because font contours are allowed to overlap, have small gaps and have varying directions within a glyph. These conditions are considered errors in the Wires used to define Faces. Options are to correct the font definition with a tool like FontForge or to use another font.
* Many fonts will generate problematic geometric. This is because font contours are allowed to overlap, have small gaps and have varying directions within a glyph. These conditions are considered errors in the Wires used to define Faces. Options are to correct the font definition with a tool like FontForge or to use another font.
* To create text arranged in a circular fashion use the {{Button|[[File:FCCircularTextButtom.png|24px]] [[Macro_FCCircularText|Circular Text]]}} macro.
* To create text arranged in a circular fashion use the {{Button|[[File:FCCircularTextButtom.png|24px]] [[Macro_FCCircularText|Circular Text]]}} macro.
* [[Macro_Fonts_Win10_PYMP|Macro Fonts Win10 PYMP]]


==Tutorials== <!--T:18-->
==Tutorials== <!--T:18-->

Revision as of 17:05, 17 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 ShapeString

Menu location
Drafting → Shape from text
Workbenches
Draft, Arch
Default shortcut
S S
Introduced in version
0.14
See also
Draft Text, Draft Label, Part Extrude

Description

The Draft ShapeString command inserts a compound shape that represents a text string. This shape can be used to create 3D letters with the Part Extrude command.

The Draft ShapeString command is not intended for standard text annotations. The Draft Text command or the Draft Label command can be used for that purpose.

Single point required to position the ShapeString

Usage

  1. There are several ways to invoke the command:
    • Press the Draft ShapeString button.
    • Select the Drafting → Shape from text option from the menu.
    • Use the keyboard shortcut: S then S.
  2. A dialog will appear where you can specify your parameters.
  3. Press OK to create the ShapeString.

Options

  • Press Esc or the Close button to abort the command.

Preferences

  • The default font file can be changed in the preferences: Edit → Preferences... → Draft → Texts and dimensions → Default ShapeString font file. See Draft Preferences.

Notes

  • Supported fonts include TrueType (.ttf), OpenType (.otf), and Type 1 (.pfb).
  • The current version is limited to left-to-right writing.
  • Very small text heights may result in deformed character shapes due to loss of detail in scaling.
  • Many fonts will generate problematic geometric. This is because font contours are allowed to overlap, have small gaps and have varying directions within a glyph. These conditions are considered errors in the Wires used to define Faces. Options are to correct the font definition with a tool like FontForge or to use another font.
  • To create text arranged in a circular fashion use the Circular Text macro.
  • Macro Fonts Win10 PYMP

Tutorials

Properties

  • DataPosition: specifies the position of the base point of the compound shape.
  • DataAngle: specifies the rotation of the baseline of the shape.
  • DataAxis: specifies the axis to use for the rotation.
  • DataString: specifies the text string to display; unlike the Draft Text tool, the Draft ShapeString can only display a single line.
  • DataSize: specifies the general height of the letters.
  • DataTracking: specifies the additional inter-character spacing in the string.
  • DataFont File: specifies the full path of the font file used to draw the string.

Scripting

See also: Draft API and FreeCAD Scripting Basics.

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

ShapeString = makeShapeString(String, FontFile, Size=100, Tracking=0)
  • Creates a ShapeString compound shape using the specified String and the full path of a supported FontFile.
  • Size is the height of the resulting text in millimeters.
  • Tracking is the additional inter-character spacing in millimeters.

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

Example:

import FreeCAD as App
import Draft

doc = App.newDocument()

font1 = "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf"
font2 = "/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf"
font3 = "/usr/share/fonts/truetype/freefont/FreeSerifItalic.ttf"

S1 = Draft.makeShapeString("This is a sample text", font1, 200)

S2 = Draft.makeShapeString("Inclined text", font2, 200, 10)

ZAxis = App.Vector(0, 0, 1)
p2 = App.Vector(-1000, 500, 0)
place2 = App.Placement(p2, App.Rotation(ZAxis, 45))
S2.Placement = place2

S3 = Draft.makeShapeString("Upside-down text", font3, 200, 10)
S3.Placement.Base = App.Vector(0, -1000, 0)
S3.Placement.Rotation = App.Rotation(ZAxis, 180)

doc.recompute()