FreeCAD Logo FreeCAD 1.0
  • Anglais Afrikaans Arabe Biélorusse Catalan Tchèque Allemand Grec Espagnol Espagnol Basque Finnois Philippin Français Galicien Croate Hongrois Indonésien Italien Japonais Kabyle Coréen Lituanien Néerlandais Norvégien classique Polonais Portugais Portugais Roumain Russe Slovaque Slovène Serbe Suédois Turc Ukrainien Valencien Vietnamien Chinois Chinois
  • Fonctions
  • Télécharger
  • Blog
  • Documentation
    Index de la documentation Premiers pas Documentation pour les utilisateurs Manuel de FreeCAD Documentation des ateliers Documentation sur le codage en Python Documentation pour les développeurs Tutoriels Foire aux questions Politique de confidentialité À propos de FreeCAD
  • Contribuer
    Comment aider Sponsor Signaler un bogue Faire une demande de modification (PR) Emplois et financements Guide pour les contributions Manuel pour les développeurs Traductions
  • Communauté
    Code de conduite Forum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendrier
  • ♥ Donate

Donate

$
Informations SEPA
Veuillez configurer votre virement bancaire SEPA pour:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Agence bancaire: BNP Paribas Fortis
Adresse: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!

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.22f
Date dernière modification : 2025/09/23
Version FreeCAD : 0.19 et plus
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
Page des macros
Comment installer une macro
Comment créer une barre d'outils
Version Macro
0.22f
Dernière modification
2025/09/23
Version(s) FreeCAD
0.19 et plus
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/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")
<class="rawcodeurl"><a href="https://gist.githubusercontent.com/mario52a/a25e802498bae6959335/raw/3a7b030af1395ebe515b7ac7ff399636df55fbc8/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 sont et restent indépendants. Lors de la création d'extrusions, rien n'est supprimé. Si un composé est créé avec Run Comp, il est copié hors du dossier.

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

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

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

  • Cette macro met en grisé (désactivation) les options qui ne sont pas pertinentes pour une fonction sélectionnée.

Interface

Présentation générale

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)
  • Le bouton Reverse inverse le texte
  • Word coché, cette option considère le texte comme un mot, le texte est coupé dans l'espace et écrit le texte mot par mot (à la place caractère par caractère en usage normal)
  • Le bouton Help affiche la page wiki dans le navigateur FreeCAD
  • LineEdit: affiche le chemin et le nom de la police du fichier
  • Other bouton pour rechercher des polices de characteres dans des répertoires non découverts
  • ComboView pour choisir la police
  • Origin retourne à l'origine system ex: "C:/Windows/Fonts/"
    • Par défaut la police ARIAL.TTF est imposée

Options disponibles

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

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

switchModeTextList

  • 0 = mode texte normal (et noir) coupe la switchFontComBox
  • 1 = permet de passer à la SwitchFontComBox 1

switchFontComBox

  • 0 = (et switchModeTextList= 1) mode texte (en couleur) dans la liste ComboBox, plus rapide
  • 1 = (et switchModeTextList= 1) fontFamily, plus lent mais ComboBoxst plus beau !

setSystemFonts

  • 0 = matplotlib.font_manager.findSystemFonts("C:/", "ttf")
  • faire toutes les polices (dans tous les dossiers et sous-dossiers du DD) à temps !
  • 1 = fontman.findSystemFonts(self.pathFont)
  • faire toutes les polices du répertoire (et de tous les sous-dossiers)

seTtextAlignement

  • 0 = AlignLeft (défaut)
  • 1 = AlignCenter
  • 2 = AlignRight

setFontByDefault

  • Police par défaut

switchResetFALSE

  • 0 = réinitialisation (par défaut)
  • 1 = pas de réinitialisation (non recommandé) certains switches peuvent rester ouverts ou se fermer de manière inattendue!

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 :

  • Outdoor
    Outdoor
  • Indoor
    Indoor
  • Helix
    Helix
  • Clock
    Clock
  • 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é.
  • Mode Stand Outdoor Le texte est écrit debout (direction Z lecture externe).
    Mode Stand Outdoor Le texte est écrit debout (direction Z lecture externe).
  • Mode Flat Outdoor Le texte est écrit à plat (lecture externe).
    Mode Flat Outdoor Le texte est écrit à plat (lecture externe).
  • Mode Flat Indoor Le texte est placé à plat lecture interne (comme clock).
    Mode Flat Indoor Le texte est placé à plat lecture interne (comme clock).
  • Mode Stand Indoor Le texte est écrit debout avec lecture interne.
    Mode Stand Indoor Le texte est écrit debout avec lecture interne.

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.

  • 10.0 mm Radius of circle: rayon du cercle. (Défaut 10)
  • 2.0 mm Size character: hauteur des caractères. (Défaut 2)
  • 0 deg Begin angle: angle de départ du premier caractère du sur le cercle. (Default 0°)
  • 360 deg End angle: angle de fin du dernier caractère du texte. (Défaut 360)
  • 10.0 deg Correction angle: angle de correction du texte pour le faire correspondre à la tangente du cercle. (Défaut 10 °)
  • 0.15 mm Correction radius: correction du rayon (optionnel en rapport avec "Correction angle"). (Défaut 0.15)
  • Extrude Char: caractères d'extrusion de la case à cocher. (Par défaut inactif)
  • Placement: placement du texte dans la vue 3D. (Par défaut inactif)
  • Sp. inclination: inclinaison des caractères sur trois axes X, Y et Z (exemple pour couvrir un tel cône). (Par défaut inactif)
Outdoor

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

  • Outdoor
    Outdoor
Indoor

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

  • Indoor
    Indoor
Helix

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

  • Helix
    Helix
  • La section helix est cachée par défaut. La fenêtre est visible si le bouton radio Helix est coché.
  • 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 chiffres font partie d'un cercle avec des chiffres arabes ou romains.

  • Clock
    Clock
  • Axial
    Axial
  • Redress
    Redress
  • Par défaut la section est cachée. La fenêtre est visible si le bouton radio Clock est coché
  • 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.

Section de la trajectoire

La section titre change et affiche la longueur de la polyligne sélectionnée.

Si vous sélectionnez une polyligne, un arc, un cercle, une ligne ou 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 les paramètres de FreeCAD

Section des commandes

  • Exit : quitte la macro.
  • Reset : réinitialise toutes les valeurs et affiche le nombre de caractères affichés dans la fenêtre.
  • Run Comp : lance la macro et crée un objet composé de tous les caractères.
  • Run : lance la macro.

Paramètres disponibles

Certains paramètres sont disponibles dans les paramètres de FreeCAD, voir: Menu → Outils → Éditer des paramètres

  • Paramètre utilisateur: BaseApp/Preferences/Macros/FCMmacros/FCCircularText
    • switchModeTextList :
      • false le mode texte normal (et noir) désactive switchFontComBox
      • true autorise switchFontComBox 1 (par défaut)
    • switchFontComBox :
      • false (et switchModeTextList = 1) mode texte (en couleur) dans la liste Faster ComboBox (par défaut)
      • true (et switchModeTextList = 1) famille de polices dans la liste ComboBox, plus lente mais plus belle !
    • setSystemFonts :
      • false matplotlib.font_manager.findSystemFonts ("C: /", "ttf") font toutes les polices (dans tous les dossiers et sous-dossiers du HD) temps!!
      • true fontman.findSystemFonts (self.pathFont)
        crée toutes les polices dans le répertoire (et dans tous les sous-dossiers) (par défaut)
    • seTtextAlignement : 0 = AlignLeft (par défaut) 1 = AlignCenter 2 = AlignRight
    • setFontByDefault : Police par défaut (la dernière utilisée)
    • switchResetFALSE : false reset (par défaut), true pas de réinitialisation (non recommandé) certains commutateurs peuvent rester ouverts ou se fermer de manière inattendue!
    • setPathOrthogonal : true false
    • setPathTangent : true false
    • setPositionBase : true false
    • setPositionCenter : true false
    • setPositionTop : true false
    • switchVersionSearch : true false
    • Version : version de FCCircularText

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

  • Texte début à 180 degrés (Begin angle) fin d'angle 360 degrés (End angle) courbe externe.
    Texte début à 180 degrés (Begin angle) fin d'angle 360 degrés (End angle) courbe externe.
  • Texte sur une courbe externe.
    Texte sur une courbe externe.


  • Texte circulaire sur courbe interne et externe.
    Texte circulaire sur courbe interne et externe.
  • Texte circulaire sur un objet plat.
    Texte circulaire sur un objet plat.


  • Configuration supérieure. (Cliquez pour agrandir)
    Configuration supérieure. (Cliquez pour agrandir)
  • Configuration inférieure. (Cliquez pour agrandir)
    Configuration inférieure. (Cliquez pour agrandir)



  • Courbe externe.
    Courbe externe.
  • Courbe interne.
    Courbe interne.



  • Courbe interne avec extrusion et soustraction booléenne.
    Courbe interne avec extrusion et soustraction booléenne.
  • Courbe externe.
    Courbe externe.



  • Courbe interne et soustraction.
    Courbe interne et soustraction.
  • Extrusion sur un cône avec comme paramètres Sp. Inclination 45° axe Z.
    Extrusion sur un cône avec comme paramètres Sp. Inclination 45° axe Z.



  • Anneau avec courbe interne et soustraction.
    Anneau avec courbe interne et soustraction.
  • Pivot character 0°, 90°, etc.
    Pivot character 0°, 90°, etc.


  • Word Le texte est coupé à chaque caractère espace.
    Word Le texte est coupé à chaque caractère espace.


Exemple sur une ellipse

  • Créer votre ellipse avec les dimensions 100 x 50.
    Créer votre ellipse avec les dimensions 100 x 50.
  • Extrusion sur 50 mm.
    Extrusion sur 50 mm.


  • Discretiser le périmètre et créez des point repères avec la macro Work Features. Tab Point > Point 2/3 > Points=Cut (Wire)
    Discretiser le périmètre et créez des point repères avec la macro Work Features.
    Tab Point > Point 2/3 > Points=Cut (Wire)
  • Créez uns cercle sur 3 points avec la macro Work Features. Tab Circle Circle=(3 Points)
    Créez uns cercle sur 3 points avec la macro Work Features.
    Tab Circle Circle=(3 Points)


  • Créez un point au centre du cercle avec la macro Work Features. Tab Point > Point 1/3 > Circle(s) center.
    Créez un point au centre du cercle avec la macro Work Features.
    Tab Point > Point 1/3 > Circle(s) center.
  • Créez des lignes repères pour déterminer les angles et configurez FCCircularText.
    Créez des lignes repères pour déterminer les angles et configurez FCCircularText.


  • Créez votre texte en cliquant sur le bouton Run Comp.
    Créez votre texte en cliquant sur le bouton Run Comp.
  • Sélectionnez Ellipse Extrude, Shape et cliquez sur le bouton Part Cut.
    Sélectionnez Ellipse Extrude, Shape et cliquez sur le bouton Part Cut.


  • Effacez le cercle, les points et lignes.
    Effacez le cercle, les points et lignes.
  • Ellipses.
    Ellipses.


Mode relief:

  • Créez une nouvelle ellipse plus grande que l' ellipse de base.
    Créez une nouvelle ellipse plus grande que l' ellipse de base.
  • Créez un rectangle qui inclut tous les objets.
    Créez un rectangle qui inclut tous les objets.


  • Sélectionnez le rectangle, l'ellipse et créez un composé Activez l'atelier Part, puis menu Part > Créer un composé.
    Sélectionnez le rectangle, l'ellipse et créez un composé
    Activez l'atelier Part, puis menu Part > Créer un composé.
  • Extrudez le composé du solide.
    Extrudez le composé du solide.


  • Selectionnez Shape (texte), le composé et coupez.
    Selectionnez Shape (texte), le composé et coupez.
  • Le texte est découpé en forme d'ellipse.
    Le texte est découpé en forme d'ellipse.


  • Sélectionnez l'ellipse extrudée, le texte « Cut » et fusionnez-les.
    Sélectionnez l'ellipse extrudée, le texte « Cut » et fusionnez-les.


Example section path

  • Texte placé BoundBox Base (normal)
    Texte placé BoundBox Base (normal)
  • Texte placé BoundBox Centre du caractere
    Texte placé BoundBox Centre du caractere


  • Texte en haut de la boîte de délimitation
    Texte en haut de la boîte de délimitation
  • Texte sur la ligne sélectionnée : 1 : orthogonal 2 : tangent
    Texte sur la ligne sélectionnée :
    1 : orthogonal
    2 : tangent


  • Exemple d'utilisation (Texte incurvé sur une surface plane ?)
    Exemple d'utilisation (Texte incurvé sur une surface plane ?)


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.

  • Character overlap issue and the workaround
    Character overlap issue and the workaround


(pas totalement développé)

En projet:

Écrire un texte circulaire sur un chemin de l'objet de position sélectionné.

Journal des modifications

  • ver 0.22f 25/09/2025 : retour à PySide, ajout d'informations pour l'utilisation de la police MONOSPACE
  • ver 0.22e 2024/07/11 : supprime "ss.support = None"
  • ver 0.22d 2024/07/11 : supprime l'erreur de cause "import WebGui" dans FC 0.22xxx et est remplacé par "import webbrowser"
  • ver 0.22c 2023/11/17 : adding restore selection after delete the last object , by TheMarkster , thanks

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 0.22b 2023/11/15 : upgrade correction stylesheet and FreeCAD.activeDocument().recompute(None,True,True)
  • ver 0.22 2022/06/06 : ajout QScrollArea cause : Unable to run FCCircularText [Problem with screen size]
  • ver 0.21 2022/05/31 : ajout bouton recherche dans les répertoires, et bouton retour à l'origine système
  • ver 0.2021/04/05 : ajout d'un icone dans la macro, Tab pour diminuer la hauteur de la macro, suppression de toutes les dimensions des widgets maintenant entièrement compatibles avec la feuille de style, révision de la version de recherche pour compatibilité et autres petits changements.
  • ver 1.19 2021/03/15 : ajout du bouton Delete du dernier objet créé et du code FreeCAD.ActiveDocument.openTransaction("FCCTc") pour le système Undo/Redo.
    • Ajout d'une boîte à cocher Reset pour commuter/activer (demandé par les utilisateurs) la réinitialisation automatique après avoir poussé le bouton Run et Run comp. Cette utilisation de la boîte à cocher est not advised, si vous constatez un dysfonctionnement appuyez sur le bouton Reset ou quittez FCCircularText et recommencez.
  • ver 0.18 2021/01/19 : correction de bugs, voir FCCircularText Macro issues
  • ver 0.17b 2020/09/28: correction d'un petit bug (pl ai lieu de plm dans la section trajectoire) et arrangement de la fenêtre (dimension) Clock, Helix, Path
  • ver 0.17 2020/09/26: ajout de créer un texte circulaire sur le fil (courbe, arc, spline, ligne...) sélectionné, mode mot

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 ############################################################################################################
  • ver 0.16c 2020/07/24 : text modifié proposé par by Kunda1 Please review FCVerticalText Macro
  • ver 0.16b 2020/07/24 : correction de __title__ to __Title__ dans la version test 0.18 FC (voir Please review FCVerticalText Macro)
  • ver 0.16 2020/06/07 : petit bug dans Linux (cause plusieurs sous répertoires dans fonts) avec le chemin sauvé dans les options la recherche restait uniquement dans le dernier répertoire et n'affichait rien (), imposé PolicePath = "/usr/share/fonts/" (stay on path /xx/xx/xx/xx/xx/xx/ on entry) à chaque démarrage et la recherche se fait dans tous les sous répertoires.
  • ver 0.15 2020/06/01 : Pour PySide2 Qt5 ajoutant des polices matplotlib dans comboView, configuration des paramètres.
  • ver 0.14-4 2020/04/25 : correction avec "DisplayMode = u"Flat Lines" :
  • ver 0.14-3 2020/04/25 : adapté pour :
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
  • ver 0.14-2 2019/07/22 replace chr(176) (donne une erreur <FC 0.18) et remplacé par le code de wmayer, voir Fehler in Version 0.19 pre ??
       carDegrees = b' \xc2\xb0'.decode("utf-8")    #thanks wmayer	https://forum.freecad.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 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

Pour commenter sur Extrude from curved surface of cylinder

Cette page est extraite de https://wiki.freecad.org/Macro_FCCircularText

Contactez-nous !
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© L'équipe FreeCAD. Crédits des images de la page d'accueil (de haut en bas) : ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

Ce projet est soutenu par : , KiCad Services Corp. et autres parrains

GitHubAméliorer cette page sur GitHub