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.22e Ultima modifica: 2024/07/11 Versione FreeCAD: 0.19 è più Download: ToolBar Icon Autore: Mario52
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/3a7b030af1395ebe515b7ac7ff399636df55fbc8/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/3a7b030af1395ebe515b7ac7ff399636df55fbc8/Macro_FCCircularText.FCMacro")
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:
Extrude Char.
Placement.
SP. inclination.
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
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
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
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) fontFamily, ComboBoxst più lento ma più bello!
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 StandOutdoor Il testo è disposto verticale, leggibile dall'esterno.
Mode FlatOutdoor Il testo è posizionato orizzontale, leggibile dall'esterno.
Mode FlatIndoor Il testo è orizzontale, leggibile dall'interno.
Mode StandIndoor 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.
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)
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.
Outdoor
Indoor
Il testo viene scritto all'interno della circonferenza del cerchio
Indoor
Helix
Il testo viene inserito all'esterno di un'elica.
Helix
L'area dell'elica è nascosta per impostazione predefinita. La finestra è visibile se il pulsante di opzione Helix è selezionato.
Sono disponibili tutte le seguenti opzioni di configurazione dei caratteri.
Step of helix, che corrisponde al passo dell'elica, visualizza 2 (altezza del carattere) per impostazione predefinita.
Char. per turn si attiva e visualizza 10 per impostazione predefinita, che corrisponde a 10 caratteri per giro d'elica.
Se Step of helix (passo dell'elica) è zero, le caselle di selezione Base Helix e End Helix sono attivate.
Base Helix fornisce la base per l'inizio dell'elica (posizionamento pari Z). Se 'Placement Z' è diverso da zero, il punto di partenza viene aggiunto al posizionamento Z.
End Helix Il passo finale dell'elica verrà calcolato in base all'altezza e al numero di caratteri per giro elicoidale.
Clock
Le figure sono parte di un cerchio con numeri arabi o romani.
Clock
Axial
Redress
Di default, è nascosto e solo visibile se il Clock è selezionato.
Quando si seleziona l'orologio, diventano utilizzabili le seguenti funzioni:
Angolo iniziale.
Angolo finale.
Angolo di correzione.
Correzione del raggio.
Il pulsante 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.
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
Orthogonal il carattere è ortogonale alla vista
Tangent il carattere è tangente al percorso del punto sul filo
BB Base il punto base del carattere deve puntare il percorso sul filo
BB Center il centro del bounBox del personaggio deve indicare il percorso sul filo
BB Top il boundBox superiore del carattere deve indicare il percorso sulla linea
l'ultimo pulsante di scelta utilizzato viene salvato nei parametri di FreeCAD
Sezione comandi
Exit : Esce dalla macro.
Reset : Ripristina tutti i valori e mostra il numero di caratteri visualizzati nella finestra.
Run Comp : Lancia la macro e crea un oggetto Composto da tutti i caratteri.
Run : Esegue la macro.
Parametri disponibili
Alcuni parametri sono disponibili nei parametri di FreeCAD, vedere: Menu → Strumenti → Modifica parametri
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.
Character overlap issue and the workaround
(non totalmente sviluppato)
In progetto:
Scrittura di testo circolare su un percorso dell'oggetto di posizione selezionato.
Registro delle modifiche:
ver 0.22f 2025/09/25 : ritorno a PySide, aggiungendo informazioni per l'uso del font MONOSPACE
ver 0.22e 2024/07/11 : eliminato "ss.support = None"
ver 0.22d 2024/07/11 : eliminato "import WebGui" causave errore in 0.22xxx FC e rimpiazzato da "import webbrowser"
ver 0.22c 2023/11/17 : aggiunto il ripristino della selezione dopo aver eliminato l'ultimo oggetto, di TheMarkster, grazie
ver 0.21 2022/05/31 : aggiunto il pulsante cerca altro percorso fontmanuelly e il pulsante restituisce l'origine del font del sistema
ver 0.20 2021/04/05 : aggiunta di icone nella macro, Tab per diminuire l'altezza della macro, rimozione di tutte le dimensioni dei widget ora completamente compatibili con il foglio di stile, revisione della versione di ricerca per compatibilità e altre piccole modifiche.
ver 1.19 2021/03/15 : aggiunto il pulsante Delete all'ultimo oggetto creato e il codice FreeCAD.ActiveDocument.openTransaction("FCCTc") per il sistema Annulla/Ripristina
Aggiunta della casella di controllo Reset per commutare/attivare (requested by users) il ripristino naturale dopo aver premuto il pulsante Run e Run comp. Questo utilizzo della casella di controllo è sconsigliato, se si riscontra un malfunzionamento, premere il pulsante Reset o uscire da FCCircularText e riavviare.
#### Test FreeCAD.Version simple ############################################################################################################ifint(FreeCAD.Version()[1])<18:# Version de FreeCADFreeCAD.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 ############################################################################################################
forangleTrFloatinrange((debut*10000),(rotation*10000),int((round(((float(rotation)-float(debut))/float(nombre)),4)*10000))):# pour 4 decimalesangleTr=(float(angleTrFloat)/10000)
ver 0.10 17/05/2015 aggiunte le righe 1365, 1366 si è creato solo più quadrante dell'orologio ?? ()
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 /_ # 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##################################################################################################
ver 0.7 02/02/2015 suppressione 2 str App.Console.PrintMessage(str(PolicePath)+"\n") in App.Console.PrintMessage((PolicePath)+"\n") che ha causato un errore con i caratteri superiori a 128 nel percorso.
ver 0.6 23/11/2014 corretto "texte = unicode(self.textEdit.toPlainText())" ora acceta "'éèà@..."
ver 0.5 19/11/2014 Gui
ver 0.4 10/10/2014 aggiunta variabile "rotation" nel loop (for i in range(0,rotation,(rotation/nombre)): # 360 a parametrer)
ver 0.4 27/08/2014 correzione errore del raggio (exterieur=0, debout=1)
ver 0.3 26/08/2014 aggiunto testo di creazione della curva piatta
ver 0.2 26/08/2014 aggiunto il testo di creazione della curva interna