|Drafting → Shape from text|
|Introduced in version|
|Draft Text, Draft Label, Part Extrude|
The Draft ShapeString command creates a compound shape that represents a text string. This shape can be used to create 3D letters with the Part Extrude command.
Single point required to position the ShapeString
- There are several ways to invoke the command:
- The ShapeString task panel opens.
- Click a point in the 3D view, or type coordinates.
- Optionally press the button to reset the point to the origin.
- Enter a String.
- Specify the Height.
- To select a font do one of the following:
- Enter a file path in the Font file input box.
- Press the button and select a file.
- Press the button to finish the command.
- Press or the button to abort the command.
- Supported fonts include TrueType (.ttf), OpenType (.otf) and Type 1 (.pfb).
- The command is restricted to LTR (left-to-right) text. Therefore at the moment RTL (right-to-left + top-to-bottom) text isn't supported.
- Very small text heights may result in deformed character shapes due to loss of detail in scaling.
- Many fonts will generate problematic geometry. 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 wires used to define faces.
- Draft ShapeStrings can also be created with the Macro Fonts Win10 PYMP.
- To create Draft ShapeStrings arranged in a circular fashion use the Macro FCCircularText.
- Draft ShapeString tutorial: extrude a ShapeString, position it in 3D space, and create an engraving in another body.
- How to use ShapeStrings in PartDesign
- The default font file can be changed in the preferences: Edit → Preferences... → Draft → Texts and dimensions → Default ShapeString font file. See Draft Preferences.
See also: Property editor.
A Draft ShapeString object is derived from a Part Part2DObject and inherits all its properties. It also has the following additional properties:
- DataFont File (
File): specifies the path of the font file used to draw the text.
- DataSize (
Length): specifies the general height of the text.
- DataString (
String): specifies the text string to display. Unlike a Draft Text, a Draft ShapeString can only display a single text line.
- DataTracking (
Length): specifies the additional inter-character spacing of the text.
- ViewPattern (
Enumeration): specifies the Draft Pattern with which to fill the faces of the text. This property only works if ViewDisplay Mode is
- ViewPattern Size (
Float): specifies the size of the Draft Pattern.
To create a Draft ShapeString use the
make_shapestring method (introduced in version 0.19) of the Draft module. This method replaces the deprecated
shapestring = make_shapestring(String, FontFile, Size=100, Tracking=0)
- Creates a
shapestringcompound shape using the specified
Stringand the full path of a supported
Sizeis the height of the resulting text in millimeters.
Trackingis 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
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.make_shapestring("This is a sample text", font1, 200) S2 = Draft.make_shapestring("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.make_shapestring("Upside-down text", font3, 200, 10) S3.Placement.Base = App.Vector(0, -1000, 0) S3.Placement.Rotation = App.Rotation(zaxis, 180) doc.recompute()