Macro FCCircularText/it

Descrizione
Questa macro usa Draft ShapeString è 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) FC community member, cblt2l.



Utilizzo
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 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.

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

L'interfaccia grafica di Circular Text
Panoramica



Prima sezione



 * La finestra di editazione del testo che consente di inserire il testo da visualizzare (cliccando su, nella finestra del titolo si può vedere quanti caratteri contiene la stringa di input)
 * Il pulsante serve per invertire il testo
 * LineEdit : visualizza il percorso e il nome del font del file
 * Il visualizza la pagina wiki nel browser FreeCAD
 * ComboView per il font scelto
 * 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
 * 0 = modalità testo normale (e nero) chiude switchFontComBox
 * 1 = consente switchFontComBox 1

switchFontComBox
 * 0 = (e switchModeTextList = 1) modalità testo (a colori) nell'elenco ComboBox, più veloce
 * 1 = (e switchModeTextList = 1) font ComboBoxst più lento ma più bello!

setSystemFonts
 * 0 = matplotlib.font_manager.findSystemFonts ("C:/", "ttf")
 * fare tutti i caratteri (in tutte le cartelle e sottocartelle del DD) tempo !!
 * 1 = fontman.findSystemFonts (self.pathFont)
 * esegue tutti i caratteri nella directory (e in tutte le sottocartelle)

seTtextAlignement
 * 0 = AlignLeft (default)
 * 1 = AlignCenter
 * 2 = AlignRight

setFontByDefault
 * Font impostazione predefinita (ultimo utilizzato)

switchResetFALSE
 * 0 = reset (predefinito)
 * 1 = nessun reset (sconsigliato) alcuni switch possono rimanere aperti o chiusi inaspettatamente!

Esempio


 * 1) switchModeTextList=
 * 2) switchFontComBox =
 * 3) setSystemFonts   =
 * 4) seTtextAlignement = 0


 * 1) switchModeTextList=
 * 2) switchFontComBox =
 * 3) setSystemFonts   =
 * 4) seTtextAlignement = 0


 * 1) switchModeTextList=
 * 2) switchFontComBox =
 * 3) setSystemFonts   =
 * 4) seTtextAlignement = 1 (0=Left, 1=Centered, 2=Rigth)


 * 1) switchModeTextList=
 * 2) switchFontComBox =
 * 3) setSystemFonts   =
 * 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. 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)
 * : Estrusione dei caratteri. (di default è disattivato)
 * : Posizione del testo nella vista 3D. (di default è disattivato)
 * : Inclinazione del testo rispetto agli assi X, Y e Z (ad esempio per scrivere su un cono). (di default è disattivato)
 * : 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 è nascosto e solo visibile se il e verificato.


 * 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, è nascosto e solo visibile se il e verificato.


 * Quando si seleziona l'orologio, diventano utilizzabili le seguenti funzioni:
 * Angolo iniziale.
 * Angolo finale.
 * Angolo di correzione.
 * Correzione del raggio.
 * I pulsanti o.
 * 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.
 * : La scrittura è in cifre romane I II III IIII V VI VII VIII IX X XI XII
 * : I dati sono scritti assialmente.

Sezione comandi



 * : Esce dalla macro macro.
 * : Ripristina tutti i valori e visualizza il numero di caratteri visualizzati nella finestra.
 * : Lancia la macro e crea un oggetto Composto da tutti i caratteri.
 * : Lancia la macro

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

Script
Scaricare lo script da:

L'icona per ill pulsante:

- in .PNG

- in .SVG

Per maggiori informazioni vedere Personalizzare la barra degli strumenti

Vedi il Codice
Macro_Circular_Text.FCMacro

o tele carica lo script :

- on github Macro_FCCircularText.FCMacro ver 0.16 2020/06/07

- o dal forum Extrude from curved surface of cylinder

Limitativo
(PS: è possibile che si verifichi un errore tra le versioni. Pubblica il problema sul forum e attendi la correzione aggiornata o il rollback a una versione precedente della macro. Grazie)

È possibile che due caratteri si sovrappongano, qui un piccolo rimedio con Macro_Rotate_To_Point

(non totalmente sviluppato)

In projetto :

Scrivere un testo circolare posizionato su un oggetto selezionato

Currently:

 * ver 0.16 2020/06/07 : little bug in Linux with the path, impost PolicePath = "/usr/share/fonts/" (stay on path /xx/xx/xx/xx/xx/xx/ on entry)


 * ver 0.15 2020/06/01 : For PySide2 Qt5 adding matplotlib fonts in comboView, config on parameter


 * ver 0.14-4 2020/04/25 : corretto con "DisplayMode = u"Flat Lines" :


 * ver 0.14-3 2020/04/25 : adatto per :


 * ver 0.14-2 2019/07/22 replace chr(176) (give error <FC 0.18) and replace with the wmayer code, see Fehler in Version 0.19 pre ??

carDegrees = b' \xc2\xb0'.decode("utf-8")   #thanks wmayer	https://forum.freecadweb.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)


 * ver 0.14-1 2019/06/11 replace "°" to chr(176)


 * ver 0.14 2019/04/27 compatibile con Python 3.6.6 and Qt 5.6.2 (cause: unicode )


 * 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

replace the line
 * ver 0.12 03/07/2016 optimize the code for accept the decimal number in determination angle

to


 * ver 0.10 17/05/2015 adding lines 1365, 1366 only created more clock face ??


 * ver 0.9 11/05/2015 thank you NormandC for testing

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

(2537)

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