Macro Circular Text/en

Description
This macro writes a text, standing or flat, circumferential or helical in the manner of Trajan Column and creates a clock with Arabic numerals 1 2 3 ... or Roman I II III ... (inspired to Macro to Create Clock Face)



Utilisation
Principle: The options that are not useful for the selected function are dimmed so inaccessible.

A function can gray out options if they are not for him.

Launch the macro folder FcString for created characters and a file FcClock for created clocks.

All the characters are and remain independent. When creating extrusions nothing is deleted. If Compound is created with is copied out of the folder.

The options are shaded by default and are active in all functions if they are checked :
 * Extrude Char.
 * Placement.
 * SP. inclination.

Except for one Clock Service Placement box Z is activated and moves the text in the direction Z to place the text on the support surface.

Presentation
Overview



First section



 * TextEdit window that lets you copy the text to display (click on the allows to know the number of the input string that is displayed in the window title)
 * The to select a new font to use
 * Default ARIAL.TTF to change the path and the default font change the line No. 69

Second Section
Configuring characters in FCCircularText



First zone
Your choice :



Second area
This section allows you to configure the overall behavior of characters in all the choices available but with some variation. If the command is not used in the option chosen, it will be grayed out.


 * Radius of circle : Radius of the circle. (Default 10)
 * Size character  : Character height. (Default 2)
 * Begin angle     : Starting angle of the first character in the circle. (Default 0°)
 * End angle       : Angle end of the last character of the text. (Default 360°)
 * Correction angle : Character correction angle to make it tangent to the circle. (Default 10°)
 * Correction radius: Fixed the radius of the circle characters (optional). (Default 0.15)
 * Extrude Char    : Checkbox extrusion characters. (Inactive Default)
 * Placement       : Text placement in the 3D view. (Inactive Default)
 * Sp. inclination : Inclination of characters in three axes X, Y and Z (example to cover such a cone). (Inactive Default)
 * Sp. inclination : Inclination of characters in three axes X, Y and Z (example to cover such a cone). (Inactive Default)

Outdoor
Default mode. The text is written on the outside of the circumference of the circle.

Indoor
The text is written on the inner side of the circumference of the circle

Helix
The text is entered on the outer circumference of a helix.


 * The helix area is grayed out by default.


 * All characters configuration options are available.
 * Step of helix which corresponds to the pitch of the helix turns and displays 2 (character height) by default.
 * Char. per turn activates and displays 10 by default, which corresponds to 10 characters per helical turn.


 * If Step of helix (helix pitch) is zero, Spinboxes Base Helix and End Helix are activated.
 * Base Helix provides the basis for starting the helix (even Placement Z). If  'Placement Z'  is different from zero, the starting point is added to Z Placement
 * End Helix End of the helix pitch of the helix will be calculated relative to the height and the number of characters per helical turn.

Clock
The figures are part of a circle with Arabic numerals or Romans.


 * By default, the section is grayed.


 * When the selection is made, the following functions get dark and are usable:
 * Begin angle.
 * End angle.
 * Correction angle.
 * Correction radius.
 * The buttom or.
 * The area Clock is activated.


 * Radius of support : If a value is given, support will be created (default 0).
 * If Support number face is different from zero a support is created. (If Extrude support = zero then a face is created).
 * 1 = A circle is created (circle appears).
 * 2 = A rectangle is created (length = (Radius of media * 1.5) width = Radius of support) (Rectangle appears).
 * 3 = A triangle is created (circumscribed) (Triangle appears).
 * 4 = A square is created (Radius of support) (Square appears).
 * 5 = A polygon with the number of faces displayed (circumscribed) (Polygon appears).
 * Extrude support is activated and an extrusion dimension can be given.






 * If Support number face is equal to zero there is no support.
 * : The writing will be in Roman figures I II III IIII V VI VII VIII IX X XI XII
 * : The figures will be written axially.

Commands



 * : Leaves the macro.
 * : Reset all values and displays the number of characters displayed in the window.
 * : Launches the macro and creates a Compount object of all characters.
 * : Launches the macro

Launch the macro folder FcString for created characters and a file FcClock for created clocks.

Script
'''PS: false zip delete the ".zip" and copy the macro Macro_FCCircularText.FCMacro in your folder Macro of FreeCAD '''

Download the script here Macro FCCircularText.FCMacro.zip ver 0.8 10/05/2015

or to the forum Extrude from curved surface of cylinder

The button icone here .PNG and .SVG    Customize_ToolsBar

Example
(not fully developed)

Planned :

Writing on a path circular text of position object selected.

(PS : it is possible that an error is made between version 2 Please wait for the next or return to the previous version thank you)

Currently:

 * ver 0.8 10/05/2015 replace "String=texte[ii2]" to "String=unicode(texte[ii2])" line 1290. cause "TypeError: Property 'FontFile': type must be str or unicode, not QString"
 * ver 0.7 02/02/2015 suppression 2 str App.Console.PrintMessage(str(PolicePath)+"\n") to App.Console.PrintMessage((PolicePath)+"\n") that caused an error with the characters above 128 in the police path.
 * ver 0.6 23/11/2014 corrected "texte = unicode(self.textEdit.toPlainText)" now accept "'éèà@..."
 * ver 0.5 19/11/2014 Gui
 * ver 0.4 10/10/2014 add variable "rotation" in the loop (for i in range(0,rotation,(rotation/nombre)): # 360 a parametrer)
 * ver 0.4 27/08/2014 correction error of de radius (exterieur=0, debout=1)
 * ver 0.3 26/08/2014 add creation text of flat curve
 * ver 0.2 26/08/2014 add creation text of internal curve
 * ver 0.1

replace to
 * ver 0.8 10/05/2015 replace "String=texte[ii2]" to "String=unicode(texte[ii2])" line 1290. cause "TypeError: Property 'FontFile': type must be str or unicode, not QString"
 * ver 0.7 02/02/2015 suppression 2 str App.Console.PrintMessage(str(PolicePath)+"\n") to App.Console.PrintMessage((PolicePath)+"\n") that caused an error with the characters above 128 in the police path.
 * ver 0.6 23/11/2014 corrected "texte = unicode(self.textEdit.toPlainText)" now accept "'éèà@..."
 * ver 0.5 19/11/2014 Gui
 * ver 0.4 10/10/2014 add variable "rotation" in the loop (for i in range(0,rotation,(rotation/nombre)): # 360 a parametrer)
 * ver 0.4 27/08/2014 correction error of de radius (exterieur=0, debout=1)
 * ver 0.3 26/08/2014 add creation text of flat curve
 * ver 0.2 26/08/2014 add creation text of internal curve
 * ver 0.1

(2383)

Links
To comment on the Extrude from curved surface of cylinder