Descrizione
Questa macro scrive un testo, in piedi o coricato, circonferenziale o elicoidale nel modo di Trajan Column e crea un orologio con numeri arabi 1 2 3 ... o Romani I II III ... (ispirata a Macro to Create Clock Face)
Utilizzo
Le opzioni che non sono utili per la funzione selezionata sono inattive e quindi non utilizzabili.
Le opzioni che non riguardano la funzione selezionata sono disattivate.
Usare la macro FcString per creare dei caratteri 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:
- Extrude Char.
- Placement.
- SP. inclination.
Fatta eccezione per la casella Z di Placement per Clock che è attiva e che sposta il testo lungo l'asse Z per consentire posizionare il testo sulla superficie di appoggio.
L'interfaccia grafica di Circular Text
Prima sezione
- La finestra di editazione 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
- Il pulsante New Font serve per selezionare un font diverso
- ARIAL.TTF è il font di default
Seconda sezione
Configurare i caratteri in Circular Text
Prima zona
Scegliere:
- Mode Stand o Mode Flat : Il testo può essere messo in piedi o coricato e le opzioni Outdoor e Indoor indicano se è rivolto verso l'esterno o verso l'interno .
Mode Stand Outdoor Il testo è disposto verticale, leggibile dall'esterno.
Mode Flat Outdoor Il testo è posizionato orizzontale, leggibile dall'esterno.
Mode Flat Indoor Il testo è orizzontale, leggibile dall'interno.
Mode Stand Indoor Il testo è verticale, leggibile dall'interno.
Seconda zona
Questa sezione permette di configurare il comportamento complessivo dei caratteri in tutte le scelte disponibili, ma con qualche variazione.
I comandi non utilizzabili con l'opzione scelta sono visualizzati in grigio.

- Radius of circle : Raggio del cerchio. (Default 10)
- Size character : Altezza del carattere. (Default 2)
- Begin angle : Angolo a cui posizionare il primo carattere. (Default 0 °)
- End angle : Angolo a cui posizionare l'ultimo carattere. (Default 360)
- Correction angle : Angolo di correzione per rendere il carattere tangente al cerchio. (Default 10 °)
- Correction radius: Corregge il raggio del cerchio dei caratteri (optional). (Default 0.15)
- Pivot Character : Ruota il carattere su se stesso. (Predefinito inattivo)
- 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.
- L'area dell'elica è in grigio per impostazione predefinita.
- Tutte le opzioni di configurazione dei caratteri sono disponibili.
- Step of helix passo dell'elica
- Char. per turn numero di caratteri per ogni spira dell'elica.
- Se Step of helix (passo dell'elica) è zero, i campi Base Helix e End Helix sono attivi.
- Base Helix fornisce la base per iniziare l'elica (anche Placement Z). Se 'Placement Z' è diverso da zero, il punto di partenza viene aggiunto a Placement Z.
- End Helix Fine di passo dell'elica che è calcolato rispetto all'altezza e al numero di caratteri per spira.
Orologio
Le figure sono parte di un cerchio con numeri arabi o romani.
- Di default, la sezione è disattivata.
- Quando si seleziona l'orologio, diventano utilizzabili le seguenti funzioni:
- Angolo iniziale.
- Angolo finale.
- Angolo di correzione.
- Correzione del raggio.
- I pulsanti Mode Stand o Mode Flat.
- L'area Clock è attiva.
- Radius of support : Se viene dato un valore, viene creato un supporto (default 0).
- Se Support number face è diverso da zero viene creato un supporto. Se Extrude support = zero viene creata una faccia.
- 1 = Viene creato un cerchio. Appare un cerchio.
- 2 = Viene creato un rettangolo. Lunghezza = (Radius of media * 1.5) width = Radius of support. Appare un rettangolo.
- 3 = Viene creato un triangolo circoscritto. Appare un triangolo.
- 4 = Viene creato un quadrato, raggio del supporto. Appare un quadrato.
- 5 = Viene creato un poligono circoscritto con il numero di facce indicate. Appare un poligono.
- Extrude support viene attivato e si può fornire una dimensione di estrusione.
- Se Support number face è uguale a zero non c'è il supporto.
- Mode Roman : La scrittura è in cifre romane I II III IIII V VI VII VIII IX X XI XII
- Axial : I dati sono scritti assialmente.
Comandi
- Exit : Esce dalla macro macro.
- Reset : Ripristina tutti i valori e visualizza il numero di caratteri visualizzati nella finestra.
- Run Comp : Lancia la macro e crea un oggetto Composto da tutti i caratteri.
- Run : Lancia la macro
Usare la macro FcString per creare dei caratteri e il file FcClock per creare degli orologi.
Script
Scaricare lo script da:
- su github Macro_FCCircularText.FCMacro ver 0.13 09/08/2016
- o dal forum Extrude from curved surface of cylinder
L'icona per ill pulsante:
- in .PNG
- in .SVG
Per maggiori informazioni vedere Personalizzare la barra degli strumenti
Esempi
Testo verticale (in piedi), compreso tra 180 gradi (Begin angle) e 360 gradi (End angle), esterno alla curva.
Testo interno alla curva.
Testo interno e esterno alla curva.
Testo circolare orizzontale (coricato) su un oggetto piano.
Testo estruso, esterno alla curva.
Testo estruso, interno alla curva.
Estrusione su un cono con Sp. Inclination di 45° sull'asse Z.
Anello, interno alla curva con sottrazione.
Caratteri ruotati di 0°, 90°, ....
Esempi su ellisse
Crea l'ellisse di 100x50.
Discretizzare il perimetro e creare punti con la macro Work Features.
Tab Point > Point 2/3 > Points=Cut (Wire)
Creare il cerchio da 3 punti con la macro Work Features.
Tab Circle Circle=(3 Points)
Creare centro del cerchio con la macro Work Features.
Tab Point > Point 1/3 > Circle(s) center.
Creare le linee di riferimento e configurare FCCircularText.
Crea il testo con Run Comp.
Selezionare Ellipse Extrude e Shape poi premere il pulsante
Part Cut.
Eliminare il cerchio, i punti e le linee.
Modalità rilievo:
Creare un ellisse.
Creare un rettangolo che includa tutti gli oggetti.
Selezionare il rettangolo e l'ellisse poi creare un composto
Attivare il modulo Part, poi il menu Part > Crea composto.
Estrudere il composto in Solido.
Selezionare Shape (il testo) e il Composto poi eseguire Cut.
Il testo viene intagliato nella forma dell'ellisse.
Selezionare Ellisse estruso e il Cut (testo) e poi fonderli.
Piccolo bug
È possibile che due caratteri si sovrappongano, qui un piccolo rimedio con Macro_Rotate_To_Point
Little "bug" and remedy example.
(non totalmente sviluppato)
In projetto :
Scrivere un testo circolare posizionato su un oggetto selezionato
(PS: è possibile che la versione 2 produca degli errori. In questo caso, si prega di attendere la prossima versione o di tornare alla versione precedente, grazie)
Currently:
- ver 0.10 17/05/2015 adding lines 1365, 1366 only created more clock face ?? ()
supp.MakeFace = True
App.activeDocument().recompute()
- ver 0.13 30/01/2018 add feature Pivot for rotate the character on himself
ver 0.13 09/08/2016 replace the button "New font" to "fontComboBox" cause , with Windows 10 the window Font stay empty the files are hidden
- ver 0.12 03/07/2016 optimize the code for accept the decimal number in determination angle
replace the line
for angleTr in range(debut,rotation,((rotation-debut)/nombre)):
to
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)
- ver 0.10 17/05/2015 adding lines 1365, 1366 only created more clock face ?? ()
supp.MakeFace = True
App.activeDocument().recompute()
- ver 0.9 11/05/2015 thank you NormandC for testing
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 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.8 10/05/2015 /_ # testing with OS :
##################################################################################################
# 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
##################################################################################################
- 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
(2537)
Link
I commenti nella pagina del forum: Extrude from curved surface of cylinder