Macro Testo Circolare

From FreeCAD Documentation
Jump to navigation Jump to search
This page is a translated version of the page Macro FCCircularText and the translation is 95% complete.
Outdated translations are marked like this.
Other languages:
English • ‎français • ‎italiano • ‎polski

FCCircularTextButtom.png Testo Circolare

Descrizione
La nuova GUI della versione modificata per l'HD dpi (QGridLayout) esegue solo la versione FC 0.18 e successive (PySide2 Qt5)

Per la versione precedente vedere FCCircularText and install it manually.

Questa macro crea un testo intorno ad un cilindro.
Ultima Versione=0.14 Date=2019/04/27
Download the toolBar icon


Versione macro: 0.17b
Ultima modifica: 2020/09/28
Versione FreeCAD: 0.18 è più
Download: ToolBar Icon
Autore: Mario52
Autore
Mario52
Download
ToolBar Icon
Link
Versione macro
0.17b
Data ultima modifica
2020/09/28
Versioni di FreeCAD
0.18 è più
Scorciatoia
Nessuna
Vedere anche
Nessuno

Descrizione

Questa macro usa Draft ShapeString.svg 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.

Temporary code for external macro link. Do not use this code. This code is used exclusively by Addon Manager.


# 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/45fe27566892bc630ad12bc67c2ecffa3041c27c/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/45fe27566892bc630ad12bc67c2ecffa3041c27c/Macro_FCCircularText.FCMacro")
<class="rawcodeurl"><a href="https://gist.githubusercontent.com/mario52a/a25e802498bae6959335/raw/45fe27566892bc630ad12bc67c2ecffa3041c27c/Macro_FCCircularText.FCMacro">raw code</a>


texte 360 degrees

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

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 Run Comp esso viene copiato in una nuova cartella.

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

  • CheckBoxFalse.svg Extrude Char.
  • CheckBoxFalse.svg Placement.
  • CheckBoxFalse.svg 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

GUI


Prima sezione

FCCircularText 07.png


  • 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
  • CheckBoxFalse.svg Word selezionata, questa opzione considera il testo come parola, il testo viene tagliato nello spazio e scrive il testo parola per parola (invece carattere per carattere nell'uso normale)
  • LineEdit : visualizza il percorso e il nome del font del file
  • Il Help 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

FCCirculatText Config 0000A0.png

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


FCCirculatText Config 1000A0.png

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


FCCirculatText Config 1001A0.png

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


FCCirculatText Config 1101A0.png

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


Seconda sezione

Configurare i caratteri in FCCircularText

FCCircularText 08.png


Prima zona

Scegliere:

FCCircularText 09.png


FCCircularText 24.png
  • 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 .


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.

FCCircularText 10.png
  • 10.0 mm SpinBox.svg Radius of circle : Raggio del cerchio. (Default 10)
  • 2.0 mm SpinBox.svg Size character : Altezza del carattere. (Default 2)
  • 0 deg SpinBox.svg Begin angle : Angolo a cui posizionare il primo carattere. (Default 0 °)
  • 360 deg SpinBox.svg End angle : Angolo a cui posizionare l'ultimo carattere. (Default 360)
  • 10.0 deg SpinBox.svg Correction angle : Angolo di correzione per rendere il carattere tangente al cerchio. (Default 10 °)
  • 0.15 mm SpinBox.svg Correction radius: Corregge il raggio del cerchio dei caratteri (optional). (Default 0.15)
  • CheckBoxFalse.svg Extrude Char : Estrusione dei caratteri. (di default è disattivato)
  • CheckBoxFalse.svg Placement : Posizione del testo nella vista 3D. (di default è disattivato)
  • CheckBoxFalse.svg 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.

FCCircularText 11.png
  • L'area dell'elica è nascosto e solo visibile se il RadioButtonFalse.svg Helix e verificato.
FCCircularText 14.png
  • 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.
FCCircularText 15.png
  • 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 RadioButtonFalse.svg Clock e verificato.
FCCircularText 16.png
  • Quando si seleziona l'orologio, diventano utilizzabili le seguenti funzioni:
    1. Angolo iniziale.
    2. Angolo finale.
    3. Angolo di correzione.
    4. Correzione del raggio.
    5. I pulsanti Mode Stand o Mode Flat.
  • L'area Clock è attiva.


FCCircularText 19.png
  • 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.


FCCircularText 18.png

FCCircularText 38.png

FCCircularText 17.png

FCCircularText 37.png


  • 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

FCCircularText 06 Path.png


La sezione del titolo cambia e visualizza la lunghezza del filo selezionato.

Se selezioni un filo, un arco, un cerchio, una linea e un bordo, il percorso della sezione è colorato in green e il comando inutilizzato è colorato in red

  1. RadioButtonFalse.svg Orthogonal il carattere è ortogonale alla vista
  2. RadioButtonFalse.svg Tangent il carattere è tangente al percorso del punto sul filo
  1. RadioButtonFalse.svg BB Base il punto base del carattere deve puntare il percorso sul filo
  2. RadioButtonFalse.svg BB Center il centro del bounBox del personaggio deve indicare il percorso sul filo
  3. RadioButtonFalse.svg BB Top il boundBox superiore del carattere deve indicare il percorso sul filo

l'ultimo pulsante di opzione utilizzato viene salvato nel parametro di FreeCAD

Sezione comandi

FCCircularText 13.png


  • 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

Parametri disponibili

Alcuni parametri sono disponibili nei parametri di FreeCAD vedere:Menu → Tools → Edit parameters...

  • User parameter: BaseApp/Preferences/Macros/FCMmacros/FCCircularText
    • switchModeTextList :
      • false normale modalità di testo (e nero) si trasforma off switchFontComBox
      • true permettere switchFontComBox 1 (default)
    • switchFontComBox :
      • false (é switchModeTextList = 1) modalità testo (a colori) nell'elenco ComboBox più veloce (predefinito)
      • true (and switchModeTextList = 1) Famiglia di caratteri nell'elenco ComboBox più lento ma più bello!
    • setSystemFonts :
      • false matplotlib.font_manager.findSystemFonts ("C: /", "ttf") fare tutti i caratteri (in tutte le cartelle e sottocartelle dell'HD) tempo !!
      • true fontman.findSystemFonts (self.pathFont)
        crea tutti i caratteri nella directory (e in tutte le sottocartelle) (predefinito)
    • seTtextAlignement : 0 = AlignLeft (default) 1 = AlignCenter 2 = AlignRight
    • setFontByDefault : Carattere predefinito (l'ultimo utilizzato)
    • switchResetFALSE : false reset (default), true no reset (non consigliato) alcuni interruttori possono rimanere aperti o chiudersi inaspettatamente!
    • setPathOrthogonal : true false
    • setPathTangent : true false
    • setPositionBase : true false
    • setPositionCenter : true false
    • setPositionTop : true false
    • switchVersionSearch : true false
    • Version : FCCircularText versione

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 FCCircularTextButtom.png

- in .SVG FCCircularTextButtom.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.16d 2020/09/15

- o dal forum Extrude from curved surface of cylinder

Esempi













Esempi su ellisse






Modalità rilievo:





Example section path



Limitativo

Note (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

Registro delle modifiche:

  • ver 0.20 2021/04/05 : adding icone in macro, Tab for diminish the heigth of the macro, remove all dimensions of widgets now fully compatible with the stylesheet, revisite the search version for compatibility and other little change.
  • ver 1.19 2021/03/15 : adding button Delette the last object created and the code FreeCAD.ActiveDocument.openTransaction("FCCTc") for Undo/Redo system
    • Adding CheckBox CheckBoxFalse.svg Reset for switched/activated (requested by users) the natural reset after all push button Runand Run comp. This use checkBox is not advised, is you constade one malfunction pusch the Reset button or quit FCCircularText and restart.
  • ver 0.17b 2020/09/28 : correction little bug (pl instead plm in path section) and arrange the window (dimension) Clock, Helix, Path
  • ver 0.17 2020/09/26 : adding create circular text on wire (curve, arc, spline, line ...) selected, mode word

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

Elimina il FC 0.18 test sezione:

#### 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 ############################################################################################################
  • 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 :
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.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() )
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
  • 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