Macro FCCircularText/it

Testo Circolare

Descrizione
Questa macro utilizza lo strumento Draft ShapeString per creare una riga di testo posizionata con diversi orientamenti circolari, inclusi circonferenza ed elica (alla maniera di una colonna Traiana). Può anche essere usata per creare un quadrante di orologio con numeri arabi 1, 2, 3, ecc., o numeri romani I, II, III, ecc.

Versione macro: 0.23b
Ultima modifica: 2026/09/13
Versione FreeCAD: 0.19 è più
Download: ToolBar Icon
Autore: Mario52
Autore
Mario52
Download
ToolBar Icon
Link
Versione macro
0.23b
Data ultima modifica
2026/09/13
Versioni di FreeCAD
0.19 è più
Scorciatoia
Nessuna
Vedere anche
Nessuno

Descrizione

Questa macro utilizza lo strumento Draft Forma da testo per creare una riga di testo posizionata con diversi orientamenti circolari, inclusi circonferenza ed elica alla maniera di una Colonna di Traiano. Può anche essere usata per creare un quadrante di orologio con numeri arabi 1, 2, 3, ecc., o numeri romani I, II, III, ecc. Quest'ultimo utilizzo è stato ispirato dalla discussione del Forum Macro per creare il quadrante dell'orologio del membro della comunità FC, cblt2l.

Temporary code for external macro link. Do not use this code. This code is used exclusively by Addon Manager. Link for optional manual installation: Macro


# This code is copied instead of the original macro code
# to guide the user to the online download page.
# Use it if the code of the macro is larger than 64 KB and cannot be included in the wiki
# or if the RAW code URL is somewhere else in the wiki.

from PySide import QtGui, QtCore

diag = QtGui.QMessageBox(QtGui.QMessageBox.Information,
    "Information",
    "This macro must be downloaded from this link\n"
    "\n"
    "https://gist.githubusercontent.com/mario52a/a25e802498bae6959335/raw/39bfcbdad0771e7709effa87f7155b8bbbb0e151/Macro_FCCircularText.FCMacro" + "\n"
    "\n"
    "Quit this window to access the download page")

diag.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
diag.setWindowModality(QtCore.Qt.ApplicationModal)
diag.exec_()

import webbrowser 
webbrowser.open("https://gist.githubusercontent.com/mario52a/a25e802498bae6959335/raw/39bfcbdad0771e7709effa87f7155b8bbbb0e151/Macro_FCCircularText.FCMacro")

texte 360 degrees

Esempio di macro che mostra il testo con un orientamento a 360 gradi

Utilizzo

Usare la macro FcString per creare delle stringhe e il file FcClock per creare degli orologi.

Tutti i caratteri sono e rimangono indipendenti. Quando si creano le estrusioni non viene eliminato nulla. Se viene creato un Compound (oggetto Composto) con Run Comp esso viene copiato in una nuova cartella.

Di default le opzioni sono disattivate e si attivano quando si seleziona una delle funzioni:

Fatta eccezione per la casella di Placement Z per Clock che è attiva e che sposta il testo lungo l'asse Z per consentire di posizionare il testo sulla superficie di appoggio.

Nota

Le opzioni che sono facoltative per la funzione selezionata sono inattive e quindi non utilizzabili.

Interfaccia

Panoramica

GUI

Prima sezione

  • La finestra di modifica del testo, che consente di inserire il testo da visualizzare (cliccando su Reset, nella finestra del titolo si può vedere quanti caratteri contiene la stringa di input)
  • Il pulsante Reverse serve per invertire il testo (ex: FreeCAD.the.best. → .tseb.eht.DACeerF)
  • Il pulsante Inverse serve per invertire il testo word by word (ex: FreeCAD.the.best. → .best.the.FreeCAD)
  • Word se selezionata, questa opzione considera il testo come parola, il testo viene tagliato nello spazio e il testo viene scritto parola per parola (invece che carattere per carattere come nell'uso normale)
  • Il pulsante Help visualizza la pagina wiki nel browser FreeCAD
  • LineEdit : mostra il percorso e il nome del file del font
  • Other per cercare altri font in altre cartelle
  • ComboView per il font scelto
  • Origin ritorna alla cartella di origine dei font del sistema es.: "C:/Windows/Fonts/"
    • ARIAL.TTF è il font di default

Opzioni disponibili

Dopo il primo utilizzo, è possibile modificare i parametri, vedere:

User parameter:BaseApp/Preferences/Macros/FCMmacros/FCCircularText

switchModeTextList

switchFontComBox

setSystemFonts

seTtextAlignement

setFontByDefault

switchResetFALSE

Esempio

  1. switchModeTextList= false
  2. switchFontComBox = false
  3. setSystemFonts = false
  4. seTtextAlignement = 0

  1. switchModeTextList= true
  2. switchFontComBox = false
  3. setSystemFonts = false
  4. seTtextAlignement = 0

  1. switchModeTextList= true
  2. switchFontComBox = false
  3. setSystemFonts = false
  4. seTtextAlignement = 1 (0=Left, 1=Centered, 2=Right)

  1. switchModeTextList= true
  2. switchFontComBox = true
  3. setSystemFonts = false
  4. seTtextAlignement = 1

Seconda sezione

Configurare i caratteri in FCCircularText

Prima zona

Scegliere:

Seconda zona

Questa sezione permette di configurare il comportamento complessivo dei caratteri in tutte le scelte disponibili, ma con qualche variazione. Se il comando non viene utilizzato nell'opzione scelta, sarà visualizzato in grigio.

  • 10.0 mm Radius of circle : Raggio del cerchio. (Default 10)
  • 2.0 mm Size character  : Altezza del carattere. (Default 2)
  • 0 deg Begin angle  : Angolo iniziale del primo carattere nel cerchio. (Predefinito 0°)
  • 360 deg End angle  : Angolo finale dell'ultimo carattere del testo. (Predefinito 360)
  • 10.0 deg Correction angle : Angolo di correzione per rendere il carattere tangente al cerchio. (Default 10°)
  • 0.15 mm Correction radius: Corregge il raggio del cerchio dei caratteri (optional). (Default 0.15)
  • Bottom-Center Justification : Justificatione dei caratteri
  • -0,30 mm (Tracking) Tracking : Tracking entra 2 caratteri solo disponibile con il modo Word attivato
  • Extrude Char : Estrusione dei caratteri. (di default è disattivato)
  • Placement : Posizione del testo nella vista 3D. (di default è disattivato)
  • Sp. inclination : Inclinazione del testo rispetto agli assi X, Y e Z (ad esempio per scrivere su un cono). (di default è disattivato)
Outdoor

Modo di default. Il testo viene scritto all'esterno della circonferenza del cerchio.

Indoor

Il testo viene scritto all'interno della circonferenza del cerchio

Helix

Il testo viene inserito all'esterno di un'elica.

Clock

Le figure sono parte di un cerchio con numeri arabi o romani.

Path section

La sezione del titolo cambia e visualizza la lunghezza della linea selezionata.

Se si seleziona una polilinea, un arco, un cerchio, una linea o un bordo, la sezione Path è colorata in verde e il comando non utilizzato è colorato in rosso

  1. Orthogonal il carattere è ortogonale alla vista
  2. Tangent il carattere è tangente al percorso del punto sul filo

l'ultimo pulsante di scelta utilizzato viene salvato nei parametri di FreeCAD

Options section

Color of shape colore disponibile


  • 0,0000 (Integer) : Generator. For validate the first number, click the Return button or
    • for begin on click to 0 go to the preference option:
    • Tools → Edit parameters
    • User parameter:BaseApp/Preferences/Macros/FCMmacros/FCCircularText
    • change the parameter setDS_Generateur_Begin to -1"
  • 1,0000 (Step) : Step of the generator
  • Characters separation (1): Characters to insert between each click increment or decrease generator, the number of character(s) is displayed
  • Clear generator: Clear the generator return to 0


  • Text: Result of the generator, all entry are concatenated only the pi erase the result without concatenation
    • You can concatenate after the pi entry
  • 1 (Repetition) : the result is repeated X times
  • Ok: Validate the generator result
  • Clear lineEdit: Clear the lineEdit result

Sezione comandi


  • Free: Modo libero.
  • Reset: Il ripristino viene eseguito per ogni caratteri; se questa opzione è selezionata, non viene eseguito alcun ripristino.

Se il risultato presenta errori o non è quello previsto (ovvero è corrotto): deseleziona la casella di controllo, fai clic sul pulsante Reset oppure chiudi e riavvia la macro FCCircularText.

  • Del: Elimina l'ultimo lavoro eseguito


  • Run : Esegue la macro.
  • Run + Comp : Lancia la macro e crea un oggetto Composto da tutti i caratteri.
  • Reset : Ripristina tutti i valori e mostra il numero di caratteri visualizzati nella finestra.
  • Exit : Esce dalla macro.

Parametri disponibili

Alcuni parametri sono disponibili nei parametri di FreeCAD, vedere: Menu → Strumenti → Modifica parametri

Usare la macro FcString per creare dei caratteri e il file FcClock per creare degli orologi.

Script

L'icona per il pulsante:

- in .PNG

- in .SVG

Per maggiori informazioni vedere Personalizzare la barra degli strumenti

Script

Macro_Circular_Text.FCMacro

o tele carica lo script :

- on github Macro_FCCircularText.FCMacro

- o dal forum Extrude from curved surface of cylinder

Esempi













Esempi su ellisse






Modalità rilievo:





Example section path



Example utilization Generator



Limitazioni

Note È possibile che si verifichi un errore tra le versioni. Segnalare il problema sul forum e attendere la correzione aggiornata o eseguire il rollback a una versione precedente della macro. Grazie.)

È possibile che due caratteri si sovrappongano. In tal caso, c'è una soluzione alternativa: utilizzare la Macro Rotate-To-Point.


(non totalmente sviluppato)

In progetto:

Scrittura di testo circolare su un percorso dell'oggetto di posizione selezionato.

Registro delle modifiche:

ver 0.24d 2026/10/11 : correction 0.24b: 4653, 4594, 4821 by Direction thanks

ver 24c 2026/10/03 : return to (code) instead the FreeCAD command Gui.Selection.clearSelection(), give error if one object is selected

# deselectionner tous les objets
try:
    for obj in FreeCAD.ActiveDocument.Objects:         # deselectionne tout
        FreeCADGui.Selection.removeSelection(obj)
except Exception:
    None
  • ver 0.24b 2026/09/29 : add create and reverse wire (create one bspline and reverse the Points), modify convert_Int_To_RGB case INT = 0
  • ver 0.24 2026/09/25 : add Generator of characters option

see Curved text on a flat surface?

sel = Gui.Selection.getCompleteSelection()
#delete objects
#restore previous selection
Gui.Selection.clearSelection()
for s in sel:
    Gui.Selection.addSelection(s.Object,s.SubElementNames)

ver 16d 2020/09/15 : vedere MasterCATZ commented Sep 14, 2020 message

Eliminata la sezione test FC 0.18:

#### Test FreeCAD.Version simple ############################################################################################################
if int(FreeCAD.Version()[1]) < 18:      # Version de FreeCAD
    FreeCAD.Console.PrintMessage("This version " + __Title__ + " rmu  work with the FreeCAD 0.18 or higher." + "\n\n")
    FreeCAD.Console.PrintMessage("For the precedent version see the page " + "\n\n")
    FreeCAD.Console.PrintMessage("https://gist.githubusercontent.com/mario52a/a25e802498bae6959335/raw/db47f78f2b20a35137ac213b8d1a62d30f525dcb/Macro_FCCircularText.FCMacro" + "\n\n")
#### Test FreeCAD.Version simple ############################################################################################################
OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.20655 (Git)
Build type: Release
Branch: master
Hash: e8e67e8c5ebbc9f9ed9ea67aba5b891969595ece
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
       carDegrees = b' \xc2\xb0'.decode("utf-8")    #thanks wmayer	https://forum.freecad.org/viewtopic.php?f=13&t=36380&p=308476#p308357
       self.DS_InclinaisonX.setSuffix(carDegrees)
       self.DS_InclinaisonY.setSuffix(carDegrees)
       self.DS_InclinaisonZ.setSuffix(carDegrees)
latest testing:

#OS: Windows 10
#Word size of OS: 64-bit
#Word size of FreeCAD: 64-bit
#Version: 0.19.16523 (Git)
#Build type: Release
#Branch: master
#Hash: 9b3ec233c8b21e0df66fada487cd10f471d60cac
#Python version: 3.6.6
#Qt version: 5.6.2
#Coin version: 4.0.0a
#OCC version: 7.3.0

Sostituita la riga

for angleTr in range(debut,rotation,((rotation-debut)/nombre)):

in

for angleTrFloat in range((debut*10000),(rotation*10000),int((round(((float(rotation)-float(debut))/float(nombre)),4)*10000)) ):    # pour 4 decimales
                angleTr = (float(angleTrFloat)/10000)
supp.MakeFace = True
            App.activeDocument().recompute()

replace

self.DS_InclinaisonX.setSuffix(" X°")
        self.DS_InclinaisonY.setSuffix(" Y°")
        self.DS_InclinaisonZ.setSuffix(" Z°")

to

self.DS_InclinaisonX.setSuffix(unicode(" X°"))
        self.DS_InclinaisonY.setSuffix(unicode(" Y°"))
        self.DS_InclinaisonZ.setSuffix(unicode(" Z°"))
# ver 0.8 10/05/2015 /_ # test con il sistema operativo:
##################################################################################################
# OS: Ubuntu 14.04.1 LTS                          # OS: Ubuntu 14.04.2 LTS
# Platform: 32-bit                                # Word size of OS: 32-bit
# Version: 0.14.2935 (Git)                        # Word size of FreeCAD: 32-bit
# Branch: master                                  # Version: 0.16.4928 (Git)
# Hash: eab159b6ee675012bf79de838c206a311e911d85  # Branch: master
# Python version: 2.7.6                           # Hash: d8f63bcfd10301f3d1e141cced4370f0782238d0
# Qt version: 4.8.6                               # Python version: 2.7.6
# Coin version: 4.0.0a                            # Qt version: 4.8.6
# SoQt version: 1.6.0a                            # Coin version: 4.0.0a
# OCC version: 6.7.0                              # OCC version: 6.8.0.oce-0.17
##################################################################################################
# OS: Windows Vista                               # OS: Windows Vista
# Word size of OS: 32-bit                         # Word size of OS: 32-bit
# Word size of FreeCAD: 32-bit                    # Word size of FreeCAD: 32-bit
# Version: 0.15.4527 (Git)                        # Version: 0.15.4671 (Git)
# Branch: master                                  # Branch: releases/FreeCAD-0-15
# Hash: 0da2e4c45a9a259c26abd54c2a35393e1c15696f  # Hash: 244b3aef360841646cbfe80a1b225c8b39c8380c
# Python version: 2.7.8                           # Python version: 2.7.8
# Qt version: 4.8.6                               # Qt version: 4.8.6
# Coin version: 4.0.0a                            # Coin version: 4.0.0a
# OCC version: 6.7.1                              # OCC version: 6.8.0.oce-0.17
##################################################################################################

(2537)

Link

I commenti nella pagina del forum: Extrude from curved surface of cylinder