Macro FCCircularText/fr

Other languages:

Macro FCCircularText

Description
Cette macro utilise l'outil Draft Forme à partir d'un texte pour créer une ligne de texte placée dans différentes orientations circulaires, y compris circonférentielle et hélicoïdale (à la manière d'une colonne Trajane). Elle peut également être utilisée pour créer un cadran d'horloge avec des chiffres arabes 1, 2, 3 etc., ou des chiffres romains I, II, III, etc.

Version macro : 0.22e
Date dernière modification : 2024/07/11
Version FreeCAD : 0.19 et au-dessus
Téléchargement : Icône de la barre d'outils
Auteur: Mario52
Auteur
Mario52
Téléchargement
Icône de la barre d'outils
Liens
Version Macro
0.22e
Dernière modification
2024/07/11
Version(s) FreeCAD
0.19 et au-dessus
Raccourci clavier
None
Voir aussi
None

Description

Cette macro utilise l'outil Draft Formes à partir texte pour créer une ligne de texte placée dans différentes orientations circulaires, notamment circonférentielle et hélicoïdale comme par ex la colonne Trajane. Elle peut également être utilisée pour créer un cadran d'horloge avec des chiffres arabes 1, 2, 3... ou des chiffres romains I, II, III... . Cette dernière utilisation a été inspirée par le fil du Forum Macro pour créer un cadran d'horloge par un membre de la communauté FreeCAD, 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/b80bc84eb1f39084a20564cf02c48764906fd6b8/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/b80bc84eb1f39084a20564cf02c48764906fd6b8/Macro_FCCircularText.FCMacro")
<class="rawcodeurl"><a href="https://gist.githubusercontent.com/mario52a/a25e802498bae6959335/raw/b80bc84eb1f39084a20564cf02c48764906fd6b8/Macro_FCCircularText.FCMacro">raw code</a>


Orientation à 360 degrés

Exemple de la macro affichant le texte avec une orientation à 360 degrés

Utilisation

La création d'un texte génère un dossier FcString, la création d'une horloge génère un dossier FcClock.

Tous les caractères restent indépendants. Si vous créez une extrusion, rien n'est effacé. Si vous créez un Compound avec le bouton Run Comp, il sera créé dans l'arbre principal de votre projet.

Ces options sont grisées par défaut et activées en cochant le bouton :

A l'exception d'une boîte de placement Clock Z est activée et déplace le texte dans la direction Z pour placer le texte sur la surface de support.

Remarques

Interface

Présentation générale

GUI

Première section

Options disponibles

Après la première utilisation, vous devez modifier les paramètres suivants:

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

switchModeTextList

switchFontComBox

setSystemFonts

seTtextAlignement

setFontByDefault

switchResetFALSE

Exemple

  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=Gauche, 1=Centré, 2=Droite)

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

Seconde section

Configurer des caractères dans FCCircularText

Première zone

Votre choix :

Deuxième zone

Cette section vous permet de configurer le comportement global des caractères dans tous les choix disponibles, mais avec quelques variations. Si une fonction n'est pas utilisée de façon standard dans l'option choisie, cette fonction sera grisée.

Outdoor

Mode par défaut. Le texte est écrit sur la surface extérieur du cylindre.

Indoor

Le texte est écrit sur la surface interne d'un tube ou courbe.

Helix

Le texte écrit suit le tracé d'une hélice.

Clock

Les chiffres font partie d'un cercle avec des chiffres arabes ou romains.

Section de la trajectoire

La section de titre change et affiche la longueur du fil sélectionné.

Si vous sélectionnez un fil, un arc, un cercle, une ligne et une arête, le chemin de la section est coloré en vert et la commande inutilisée est colorée en rouge

  1. Orthogonal le caractère est orthogonal à la vue
  2. Tangent le caractère est tangent au chemin du point sur le fil
  1. BB Base la base de point du caractère est de pointer le chemin sur le fil
  2. BB Center le centre bounBox du caractère est de pointer le chemin sur le fil
  3. BB Top le haut boundBox du caractère est de pointer le chemin sur le fil

le dernier bouton radio utilisé est enregistré dans le paramètre de FreeCAD

Section des commandes

Paramètres disponibles

Certains paramètres sont disponibles dans les paramètres de FreeCAD voir: Menu → Outils → Modifier les paramètres...

En lançant la macro un un dossier FcString est créé pour les caractères et un dossier FcClock est créé pour l'horloge. Dans le cas d'un compount, il sera créé en plus sur la racine de l'arbre.

Script

L'icône pour votre barre à outils:

- in .PNG

- in .SVG

(Voir comment Créer une barre d'outils)

Script

Macro_Circular_Text.FCMacro

ou bien téléchargez le script :

- sur github Macro_FCCircularText.FCMacro

- sur le forum Extrude from curved surface of cylinder

Exemple













Exemple sur une ellipse






Mode relief:





Example section path




Limitations

Remarque il est possible qu'une erreur se produise entre les versions. Veuillez publier le problème sur le forum et attendre le correctif mis à jour ou revenir à une version précédente de la macro. Je vous remercie.

Il est possible que deux caractères se chevauchent. Si cela se produit, voici une solution de contournement disponible à l'aide de la Rotate-To-Point Macro.


(pas totalement développé)

En projet:

Écriture du texte sur l'objet sélectionné

Écriture sur un chemin.

Journal des modifications

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 : voir le message de MasterCATZ commented Sep 14, 2020 message

effacé la partie de test de la version 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.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)
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

remplacer la ligne:

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

par

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 /_ # 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
##################################################################################################

(2537)

Liens

La page dédiée sur le forum pour tout commentaires et signalisation d'éventuelles erreurs Extrude from curved surface of cylinder