Macro CircularText

From FreeCAD Documentation
Revision as of 12:10, 1 July 2019 by Bigi111 (talk | contribs)
Other languages:

Macro Circular Text

Description
Cette macro crée un texte autour d'un cylindre.
Latest Version=0.14 Date=2019/04/27
Download the toolBar icon


Version macro : 0.14
Date dernière modification : 2019/04/27
Version FreeCAD : Toutes
Téléchargement : ToolBar Icon
Auteur: Mario52
Auteur
Mario52
Téléchargement
ToolBar Icon
Liens
Version Macro
0.14
Dernière modification
2019/04/27
Version(s) FreeCAD
Toutes
Raccourci clavier
None
Voir aussi
None

Description

Cette macro utilise l'outil Draft ShapeString et écrit un texte debout (axe Z) une forme cylindriquee ou à plat avec lecture interne ou externe et sur une hélice comme la Colonne Trajane et peut créer une horloge avec chiffres 1 2 3 ... ou Romains I II III ... au choix (inspiré de Macro to Create Clock Face) (le même résultat peut être obtenu avec les fonctions standards de FCCircularText)

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/931ea4b80a81c02120b7ef8b09916de888ee801e/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/931ea4b80a81c02120b7ef8b09916de888ee801e/Macro_FCCircularText.FCMacro")


texte 360 degrés

Utilisation

Principe: Les fonctions non utilisées de façon standard sont grisées (rend l'utilisation plus claire).

Une fonction peut se griser si elle n'est pas nécessaire.

La création d'un texte crée un dossier "FcString" si vous créez une horloge, un dossier FcClock est créé.

Tous les caractères restent indépendants. Si vous créez une extrusion, rien n'est effacé. Si vous créez un Compount 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 :

  • Extrude Char.
  • Placement.
  • SP. inclination.

Seul la fonction Clock active la fonction Placement dans la direction Z pour déplacer manuellement le texte sur la surface du support (pour construire un relief ou une cavité).

Présentation

Vue globale de l'interface.

GUI

Première section

  • La fenêtre de TextEdit vous permet de copier le texte a créer (cliquez sur le bouton Reset vous permet de connaître la longueur de la chaîne entrée qui est affichée dans le titre de la fenêtre)
  • The Reverse possibilité d'inverser la chaîne écrite
  • Le bouton New Font permet de sélectionner une nouvelle police de travail
    • Par défaut la police ARIAL.TTF est imposée

Seconde Section

Configuration des caractères dans FCCircularText

Première zone

Votre choix :

  • Mode Stand or Mode Flat : Le texte peut être créé debout ou à plat (comme l'horloge) options Outdoor et Indoor le texte des boutons est inversé.

Seconde section

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.

  • Radius of circle : Rayon du cercle. (Défaut 10)
  • Size character  : Hauteur des caractères. (Défaut 2)
  • Begin angle  : Angle de départ du premier caractère du sur le cercle. (Default 0°)
  • End angle  : Angle de fin du dernier caractère du texte. (Défaut 360)
  • Correction angle : Angle de correction du texte pour le faire correspondre à la tangente du cercle. (Défaut 10 °)
  • Correction radius: Correction du rayon (optionnel en rapport avec "Correction angle"). (Défaut 0.15)
  • Pivot Character : Pivote chaque caractère sur lui même (Inactif par Défaut)
  • Extrude Char  : Case à cocher pour extruder les caractères. (Inactif par Défaut)
  • Placement  : Place le texte dans la vue 3D. (Inactif par Défaut)
  • Sp. inclination  : Inclinaison des caractères dans les axes X, Y et Z (exemple pour créer un texte sur un cône). (Inactif par Défaut)

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.

  • La section helix est grisée par défaut.
  • Toute les options de configurations des caractères sont actives.
  • Step of helix Step correspond au pas de la spire de l'hélice : 2 (correspond à la hauteur du caractère) par défaut.
  • Char. per turn Nombre de caractères par tour ici 10 par défaut, qui correspond à 10 caractères par tour d'hélice.
  • Si Step of helix (pas de l'hélice) est égal à zero, les Spinboxes Base Helix et End Helix sont activés.
  • Base Helix détermine le début (base) de placement des caractère dans l'élice (direction Placement Z). Si Placement Z est différent de zero, le départ est ajouté au Placement Z déjà déterminé plud haut.
  • End Helix Fin de l'hélice, le pas de l'hélice calculé est proportionnel à la hauteur et au nombre de caractères par tour d'hélice.


Clock

Les horloges peuvent avoir des caractères numériques Arabes ou Romains au choix.

File:FCCircularText 12.png
  • Par défaut la section est grisée.
  • Quand la section est activée, les fonctions suivantes sont dégrisées et disponibles:
    1. Begin angle.
    2. End angle.
    3. Correction angle.
    4. Correction radius.
    5. Les boutons Mode Stand ou Mode Flat.
  • La section Clock est active.
  • Radius of support : Si une valeur est entrée, un support sera créé (defaut 0).
  • Si Support number face est différent de zéro un support est créé. (Si Extrude support = zéro une face est créée).
    • 1 = Un cercle est créé (le cercle apparaît).
    • 2 = Un rectangle est créé (longueur = (Radius * 2) hauteur = Radius (rayon) du support) (le rectangle apparaît).
    • 3 = Un triangle (circonscrit) est créé (Le triangle apparaît).
    • 4 = Un carré est créé (Radius du support) (Le carré apparaît).
    • 5 = Un polygone avec le nombre de faces affiché est créé (circonscrit) (le polygone apparaît).
  • Si Extrude support est différent de zéro la fonction est activée et une dimension d'extrusion est demandée. La fonction Placement direction Z se dégrise pour permettre de déplacer ou non les caractères sur la surface du support (dans la cas ou l'on désire créer un relief plutôt qu'une cavité) .

  • Si Support number face est égal à zéro aucun support n'est créé.
  • Mode Roman : Crée une horloge avec chiffres Romains I II III IIII V VI VII VIII IX X XI XII
  • Axial  : Les chiffres sont écrits axialement.

Commandes

  • Exit  : Quitte la macro.
  • Reset  : Reset toutes les valeurs, et affiche le nombre de caractères du texte entré dans la fenêtre de texte est affiché à côté du titre.
  • Run Comp : Lance la macro et crée un compount de tous les caractères et le place sur la racine de l'arbre dans la Vue combinéé.
  • Run  : Lance la macro.

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

Téléchargez le script ici :

Téléchargez le script sur github Macro_FCCircularText.FCMacro ver 0.14-1 11/06/2019

ou sur le forum Extrude from curved surface of cylinder

L'icône pour votre barre à outils:

- in .PNG

- in .SVG

(See Customize_Toolbars for more)

Exemple











Exemple sur une ellipse






Mode relief:





Petit bug

Il est possible que certains caractères se chevauchent ici un petit remède avec Macro_Rotate_To_Point


(pas totalement développé)

Planifié

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

Écriture sur un chemin.

(PS : il est possible qu'une ou des erreurs soient découvertes entre deux versions ou SVP signalez la(les) sur le forum pour la corriger le plus rapidement possible merci)

Version courante:

  • ver 0.14-1 2019/06/11 replace "°" to chr(176)
  • ver 0.14 2019/04/27 compatible avec Python 3.6.6 et 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 ajout d'une fonction de rotation du caractère sur lui même
  • ver 0.13 09/08/2016 remplacé le bouton "New font" par la fonction "fontComboBox" cause , avec Windows 10 la fenêtre "Font" reste vide les fichiers sont cachés
  • ver 0.12 03/07/2016 optimisation du code de la boucle pour accepter les décimales pour plus de précision de la répartition des angles.

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)
  • 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 merci à NormandC pour les tests.

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)

Liens

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