FreeCAD Logo FreeCAD 1.0
  • English Afrikaans Arabic Belarusian Catalan Czech German Greek Spanish Spanish Basque Finnish Filipino French Galician Croatian Hungarian Indonesian Italian Japanese Kabyle Korean Lithuanian Dutch Norwegian Bokmal Polish Portuguese Portuguese Romanian Russian Slovak Slovenian Serbian Swedish Turkish Ukrainian Valencian Vietnamese Chinese Chinese
  • Features
  • Download
  • Blog
  • Documentation
    Documentation index Getting started Users documentation The FreeCAD manual Workbenches documentation Python coding documentation C++ coding documentation Tutorials Frequently asked questions Privacy policy About FreeCAD
  • Contribute
    How to help Sponsor Report a bug Make a pull request Jobs and funding Contribution guidelines Developers handbook Translations
  • Community
    Code of conduct Forum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendar
  • ♥ Donate

Donate

$
SEPA Information
Please set up your SEPA bank transfer to:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Bank agency: BNP Paribas Fortis
Address: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!


GuiCommand: Name: Draft ShapeString MenuLocation: Drafting , Shape from text
Annotation , Shape from text Workbenches: Draft_Workbench, BIM_Workbench Shortcut: Version: 0.14 SeeAlso: Draft_Text, Draft_Label, Part_Extrude

Draft ShapeString

Description

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.

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


Single point required to position the ShapeString

Usage

For Windows users: please read the Font file selection on Windows paragraph first.

  1. There are several ways to invoke the command:
    • Press the Shape from text button.
    • Draft: Select the Drafting → Shape from text option from the menu.
    • BIM: Select the Annotation → Shape from text option from the menu.
  2. The ShapeString task panel opens.
  3. Click a point in the 3D view, or type coordinates.
  4. Optionally press the Reset Point button to reset the point to the origin.
  5. Enter a String.
  6. Specify the Height.
  7. 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.
  8. Press the OK button to finish the command.
  9. Optionally change the Justification of the ShapeString. See Properties.

Options

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

Relative font path

(v1.1)

It is possible to specify a relative path for the font file. For this the FreeCAD document must have been saved at least once.

Some examples:

  • ./SomeFont.ttf: The font file is in the same directory as the document.

  • ./MyDirectory/SomeFont.ttf: The font file is in the MyDirectory sub-directory of the document directory.

  • ../SomeFont.ttf: The font file is in the parent directory of the document directory.

Font file selection on Windows

On Windows access to the default font folder is restricted. This affects the font file selection for ShapeStrings. There are three cases in FreeCAD where a font file for ShapeStrings can be specified: in the ShapeString task panel, when changing the Font File property of a ShapeString, and when specifying the default font file in the Draft Preferences.

Pressing the ... button and then selecting a file from the default Windows font folder is not possible when using the native file dialog. There are a number of workarounds:

  • Make sure DontUseNativeFontDialog is set to {{True}}, which is the default value for this preference. This will only call a different, non-native, file dialog when pressing the ... button in the ShapeString task panel. With this file dialog the default Windows font folder can be accessed.
  • Change DontUseNativeDialog to {{True}}. This instructs FreeCAD to always use the non-native file dialog.
  • Specify the font file in the input box. You can of course type the full path or copy-paste the path from the Windows File Explorer. But there is also another way to enter the path. If you enter {{Value|C:}} a dropdown list will appear. Select {{Value|Windows}} from that list and add {{Value|\F}}. Select {{Value|Fonts}} from the new dropdown list. Finally add {{Value|}} and the first letter(s) of the font file, and then select it from the dropdown list.
  • Create a custom folder for your font files.

See the Preferences paragraph below for the location of the mentioned preferences.

Notes

  • A Draft ShapeString can be edited by double-clicking it in the Tree view.
  • Supported fonts include TrueType (.ttf), OpenType (.otf) and Type 1 (.pfb).
  • The command is restricted to left-to-right text. Right-to-left and top-to-bottom text are not supported.
  • Very small text heights may result in deformed character shapes due to loss of detail in scaling.
  • Fonts can generate problematic geometry. This is because font contours are allowed to overlap and have small gaps. 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.

Tutorials

  • Draft ShapeString tutorial: extrude a ShapeString, position it in 3D space, and create an engraving in another body.
  • How to use ShapeStrings in PartDesign

Preferences

See also: Preferences Editor, Draft Preferences and Std DlgParameter.

  • The default font file can be changed in the preferences: Edit → Preferences... → Draft → Texts and dimensions → Default ShapeString font file.
  • For Windows users:
    • Set Tools → Edit parameters... → BaseApp → Preferences → Dialog → DontUseNativeFontDialog to {{True}} to use the non-native file dialog when selecting a font file from the ShapeString task panel.
    • Alternatively, set Tools → Edit parameters... → BaseApp → Preferences → Dialog → DontUseNativeDialog to {{True}} to always use the non-native file dialog.

Properties

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:

Data

{{TitleProperty|Draft}}

  • Font File|File: Font file name.

  • Fuse|Bool: Fuse faces if faces overlap, usually not required (can be very slow). Ignored if Make Face is False. (v1.0)

  • Justification|Enumeration: Horizontal and vertical alignment. Options: {{value|Top-Left}}, {{value|Top-Center}}, {{value|Top-Right}}, {{value|Middle-Left}}, {{value|Middle-Center}}, {{value|Middle-Right}}, {{value|Bottom-Left}}, {{value|Bottom-Center}}, {{value|Bottom-Right}}. (v1.0)

  • Justification Reference|Enumeration: Height reference used for justification. Options: {{value|Cap Height}}, {{value|Shape Height}}. The shape height depends on the characters in String. (v1.0)

  • Keep Left Margin|Bool: Keep left margin and leading white space when justification is left. (v1.0)

  • Make Face|Bool: Fill letters with faces.

  • Oblique Angle|Angle: Oblique (slant) angle. Must be in the -80° to +80° range. (v1.0)

  • Scale To Size|Bool: Scale to ensure cap height is equal to size. If set to False, depending on the font, cap height will not match Size exactly. (v1.0)

  • Size|Length: Height of text.

  • String|String: Text string. A ShapeString can only display a single text line.

  • Tracking|Distance: Inter-character spacing. (v1.0) : The property type has been updated.

*The height of the red rectangle (solid line) is equal to the cap height.
The height of the green rectangle (dashed line) is equal to the shape height.
The corners, the midpoints of the edges, and the center of the rectangles
match the 9 justification options: Top-Left to Bottom-Right.*

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

To create a Draft ShapeString use the make_shapestring method ((v0.19) ) of the Draft module. This method replaces the deprecated makeShapeString method.

shapestring = make_shapestring(String, FontFile, Size=100, Tracking=0)
  • Creates a shapestring compound shape using the specified String and the full path of a supported FontFile.

  • Sizeis the height of the resulting text in millimeters.

  • Trackingis the 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.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()

⏵ documentation index > Draft > Draft ShapeString

This page is retrieved from https://github.com/FreeCAD/FreeCAD-documentation/blob/main/wiki/Draft_ShapeString.md

Get in touch!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© The FreeCAD Team. Homepage image credits (top to bottom): ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

This project is supported by: , KiCad Services Corp. and other sponsors

GitHubImprove this page on GitHub