Dieses Makro nutzt das Werkzeug Draft Textform, um eine Textzeile zu erstellen, die in verschiedenen kreisförmigen Ausrichtungen platziert werden kann, darunter umlaufend und spiralförmig (ähnlich wie bei der Trajanssäule). Es kann auch verwendet werden, um ein Zifferblatt mit arabischen Ziffern „1, 2, 3“ usw. oder römischen Ziffern „I, II, III“ usw. zu erstellen.
Versionsmakro : 0.24d Datum der letzten Änderung : 2026/10/11 FreeCAD version : 0.19 und mehr Herunterladen : Werkzeugleisten-Symbol Autor: Mario52
Dieses Makro nutzt das Werkzeug Draft Textform, um eine Textzeile zu erstellen, die in verschiedenen kreisförmigen Ausrichtungen platziert werden kann, darunter umlaufend und spiralförmig in Anlehnung an die Trajanssäule. Es kann auch verwendet werden, um ein Zifferblatt mit arabischen Ziffern „1, 2, 3“ usw. oder römischen Ziffern „I, II, III“ usw. zu erstellen. Letztere Verwendung wurde durch den Forum-Thread Macro to Create Clock Face (Makro zum Erstellen eines Zifferblatts) von FC-Community-Mitglied cblt2l inspiriert.
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/39bfcbdad0771e7709effa87f7155b8bbbb0e151/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/39bfcbdad0771e7709effa87f7155b8bbbb0e151/Macro_FCCircularText.FCMacro")
Beispiel für das Makro, das Text in einer 360-Grad-Ausrichtung anzeigt
Anwendung
Den Makroordner FcString für erstellte Zeichen und eine Datei FcClock für erstellte Uhren starten.
Alle Zeichen sind und bleiben unabhängig. Beim Erstellen von Extrusionen wird nichts gelöscht. Wenn ein Verbund mit Run Comp erstellt wird, wird er aus dem Ordner kopiert.
Die Optionen sind standardmäßig ausgegraut und in allen Funktionen aktiv, wenn sie aktiviert sind :
Zeichen extrudieren
Platzierung
SP-Neigung
Mit Ausnahme einer Uhr-Serviceplatzierungsbox wird Z aktiviert und verschiebt den Text in Richtung Z, um ihn auf der Auflagefläche zu platzieren.
Hinweise
Dieses Makro blendet Optionen, die für eine ausgewählte Funktion nicht relevant sind, aus (deaktiviert sie).
Schnittstelle
Übersicht
Erster Abschnitt
TextEdit-Fenster, in dem der anzuzeigende Text kopiert werden kann (durch Klicken auf die Schaltfläche Zurücksetzen kann die Nummer der Eingabezeichenfolge anzeigt werden, die im Fenstertitel angezeigt wird)
Die Schaltfläche Reverse kehrt die Reihenfolge der Buchstaben im Text um (Beispiel: FreeCAD.the.best. → .tseb.eht.DACeerF)
Die Schaltfläche Inverse kehrt die Reihenfolge der Wörter im Text um (Beispiel: FreeCAD.the.best. → .best.the.FreeCAD)
Word aktiviert, diese Option betrachtet den Text als Wort, der Text wird an Leerzeichen geschnitten und Wort für Wort geschrieben (anstatt Zeichen für Zeichen wie bei normaler Verwendung)
Die Schaltfläche Color färbt die Form ein
(97/395) C:/Windows/Fonts/DejaVuSansMono-BoldOblique.ttf: zeigt die Position/Nummer der Schriftarten, den Pfad und den Namen der Schriftartdatei an
Other-Schaltfläche zum Suchen der Schriftart in einem anderen Verzeichnis, falls nicht alle Verzeichnisse automatisch gefunden werden
Combo-Ansicht zum Auswählen der Schriftart
Origin kehrt zum ursprünglichen System-Schriftartenpfad zurück, z.B. „C:/Windows/Fonts/“.
Standardmäßig ARIAL.TTF
Verfügbare Optionen
Nach der ersten Verwendung müssen die folgenden Parameter geändert werden:
User parameter:BaseApp/Preferences/Macros/FCMmacros/FCCircularText
switchModeTextList
0 = Normaler Textmodus (und Schwarz) schneidet die switchFontComBox
1 = erlaubt switchFontComBox 1
switchFontComBox
0 = (und switchModeTextList= 1) Textmodus (in Farbe) in der ComboBox-Liste, schneller
1 = (and switchModeTextList= 1) fontFamily langsamer, aber schönerer ComboBoxst!
Mode Stand oder Mode Flat : Der Text wird stehend oder flach (wie bei einer Uhr) platziert. Die Optionen „außenliegend“ und „innenliegend“ sind vertauscht.
Mode StandOutdoor Der Text wird oberhalb geschrieben.
Mode FlatOutdoor Der Text wird flach platziert.
Mode FlatIndoor Der Text wird flach platziert.
Mode StandIndoor Der Text bleibt registriert (wie bei einer Uhr).
Zweiter Bereich
In diesem Abschnitt kann man das allgemeine Verhalten der Zeichen in allen verfügbaren Optionen konfigurieren, jedoch mit einigen Abweichungen.
Wenn der Befehl in der ausgewählten Option nicht verwendet wird, wird er ausgegraut.
10.0 mm Radius of circle : Radius des Kreises. (Standardwert 10)
2.0 mm Size character : Zeichenhöhe. (Standardwert 2)
0 deg Begin angle : Startwinkel des ersten Zeichens im Kreis. (Standardwert 0°)
360 deg End angle : Winkelende des letzten Zeichens des Textes. (Standardwert 360)
10.0 deg Correction angle : Zeichenkorrekturwinkel, um es tangential zum Kreis zu machen. (Standardwert 10°)
0.15 mm Correction radius : Der Radius der Kreiszeichen wurde korrigiert (optional). (Standardwert 0,15)
Extrude Char : Kontrollkästchen die Extrusion von Zeichen. (Inaktiv, Standard)
Bottom-Center Justification : Blocksatz
-0,30 mm (Tracking) Tracking : Laufweite zwischen zwei Buchstaben, steht nur im Word-Modus zur Verfügung
Placement : Textplatzierung in der 3D-Ansicht. (Standardmäßig inaktiv)
Sp. inclination : Neigung von Zeichen in drei Achsen X, Y und Z (Beispiel für die Abdeckung eines solchen Kegels). (Inaktiv, Standard)
Ausserhalb
Standardmodus. Der Text wird an der Außenseite des Kreisumfangs geschrieben.
Outdoor
Innerhalb
Der Text ist auf der Innenseite des Kreisumfangs geschrieben
Innerhalb
Helix
Der Text wird auf den Außenumfang einer Helix geschrieben.
Wendel
Der Wendel-Bereich ist standardmäßig ausgeblendet. Das Fenster ist sichtbar, wenn das Optionsfeld Helix aktiviert ist.
Alle Zeichenkonfigurationsoptionen sind verfügbar.
Step of helixentspricht der Steigung der Helixwindungen und zeigt standardmäßig 2 (Zeichenhöhe) an.
Char. per turn aktiviert und zeigt standardmäßig 10 an, was 10 Zeichen pro Windung entspricht.
Wenn Step of helix (Steigung der Wendel) Null ist, werden die Drehschalter Base Helix und End Helix aktiviert.
Base Helix bildet die Grundlage für den Startpunkt der Wendel (auch Positionierung Z). Wenn 'Placement Z' ungleich Null ist, wird der Startpunkt zu Placement Z hinzugefügt.
End Helix Das Ende der Steigung der Wendel wird relativ zur Höhe und zur Anzahl der Zeichen pro Windung berechnet.
Uhr
Die Zahlen sind Teil eines Kreises mit arabischen oder römischen Ziffern.
Clock (Uhr)
Axial
Redress
Standardmäßig ist dieser Abschnitt ausgeblendet. Das Fenster wird angezeigt, wenn das Optionsfeld Clock aktiviert ist.
Wenn die Auswahl getroffen ist, werden die folgenden Funktionen dunkel und sind nutzbar:
Begin angle (Startwinkel).
End angle (Endwinkel).
Correction angle (Korrekturwinkel).
Correction radius (Korrekturradius).
Die Schaltflächen Mode Stand oder Mode Flat.
Der Bereich Clock (Uhr) wird aktiviert.
Radius of support : Wenn ein Wert angegeben wird, wird Unterstützung erstellt (Standardwert 0).
If Support number face unterscheidet sich von Null, wird eine Stütze erstellt. (Wenn Extrude support = Null ist, wird eine Fläche erstellt).
1 = Ein Kreis wird erstellt (Kreis erscheint).
2 = Es wird ein Rechteck erstellt (Länge = (Radius des Mediums * 1,5) Breite = Radius der Stütze) (Rechteck wird angezeigt).
3 = Ein Dreieck wird erstellt (umschrieben) (Dreieck erscheint).
4 = Ein Quadrat wird erstellt (Radius der Unterstützung) (Quadrat erscheint).
5 = Ein Polygon mit der angezeigten Anzahl von Flächen (umschrieben) (Polygon wird angezeigt).
Die Funktion „Extrudieren“ ist aktiviert und es kann eine Extrusionsabmessung angegeben werden.
If Support number face (Anzahl der Unterstützungsflächen) ist gleich Null, gibt es keine Unterstützung.
Mode Roman : Die Schrift wird in römischen Ziffern sein. I II III IIII V VI VII VIII IX X XI XII
Axial : Die Zahlen werden axial geschrieben.
Abschnitt Pfad
Der Titelbereich ändert sich und zeigt die Länge der ausgewählten Kante an.
Wenn man einen Linienzug, einen Bogen, einen Kreis, eine Linie oder eine Kante auswählen, wird der Abschnitt Pfad in grün und der nicht verwendete Befehl in rot eingefärbt.
Orthogonal Das Zeichen ist orthogonal zur Ansicht.
Tangent Das Zeichen ist tangential zum Punktpfad auf dem Linienzug.
Reverse wire Der ausgewählte Linienzug wurde "dupliziert", ein B-Spline wurde erstellt und die Punkte Beginn und Ende wurden getauscht; die Richtung der Linie wird angezeigt. Das originale Objekt ist ausgeblendet und wird wieder eingeblendet, nachdem der Vorgang beendet wurde.
Delette text Beginn und Ende des Info-Texts des zuletzt Erstellten wird gelöscht.
Der zuletzt verwendete Radiobutton wird im Parameter von FreeCAD gespeichert.
Abschnitt Generator
Integer: Der Datentyp ist Integer
Float: Der Datentyp ist Float
Unicode: Der Datentyp ist Unicode, beginnend von 32 bis ... (0 bis 31 sind Zeichen, die vom System verwendet werden)
pi: Der Wert von Pi mit X Dezimalstellen
0,0000 (Integer) : Generator. Zur Überprüfung der ersten Zahl, auf die Schaltfläche Return klicken, oder
für Bei Klick auf 0 beginnen gehe zur Einstellungsoption:
User parameter:BaseApp/Preferences/Macros/FCMmacros/FCCircularText
Den Parameter setDS_Generateur_Begin auf -1" ändern
1,0000 (Step) : Schrittweite des Generators
Characters separation (1): Zeichen, die zwischen jedem Klick zum Erhöhen oder Verringern des Generators eingefügt werden sollen, die Anzahl der Zeichen wird angezeigt
Clear generator: Den Generator auf 0 zurücksetzen
Text: Ergebnis des Generators: Alle Einträge werden verkettet, nur „pi“ löscht das Ergebnis ohne Verkettung
Sie können nach dem Pi-Eintrag weitere Elemente anhängen
1 (Wiederholung) : Das Ergebnis wird X-mal wiederholt
Points: Ein Draft-Punkt am Basispunkt des Zeichens (Die Serienpunkte werden in einer separaten Gruppe gespeichert)
Circle: Auf einem Draft-Kreis Grenzwert des angegebenen Radius erzeugen.
BoundBox: Den Begrenzungsrahmen für jedes Zeichen erzeugen
Progression: Fortschritt bei der Erstellung der Zeichen (bleibt die neue Version sichtbar?).
Reset: Setzt alle Werte zurück und zeigt die Anzahl der im Fenster angezeigten Zeichen an.
Reset: Das Zurücksetzen (Reset) erfolgt für jedes Zeichen; wenn diese Option aktiviert ist, wird kein Zurücksetzen durchgeführt,
Wenn das Ergebnis Fehler enthält oder nicht dem erwarteten Ergebnis entspricht, ist es beschädigt: Das Kontrollkästchen deaktivieren, auf die Schaltfläche Zurücksetzen klicken oder das Makro FCCircularText schließen und es neu starten
Free: Freier Modus.
Del: Die zuletzt ausgeführte Aufgabe löschen
Run: Startet das Makro; die Zeichen werden einzeln in einem Verzeichnis gespeichert.
Run + Comp: Führt das Makro „(Zeichen sind getrennt und werden in einem Verzeichnis gespeichert)“ aus und erstellt ein einziges zusammengesetztes Objekt aus allen Zeichen.
Über die Schaltfläche Hilfe wird die Wiki-Seite im FreeCAD-Browser angezeigt
Exit: Verlässt das Makro (bye).
Verfügbare Parameter
Bestimmte Parameter sind in den Parametern von FreeCAD verfügbar, siehe: Menü → Werkzeuge → Parameter bearbeiten
Internes Kurven-Extrusionsmaterial bezeichnet und subtrahiert.
Externe Kurve.
Innere Kurve mit Subtraktion.
Extrusion auf einem Kegel mit einer Neigung Sp. Inclination von 45° zur Z-Achse.
Ring Innenkurve mit Subtraktion.
Drehpunkt 0°, 90° usw.
Word Der Text wird an Leerzeichen abgeschnitten.
Beispiel auf Ellipse
Die Ellipse mit den Maßen 100 x 50 erstellen.
Sie 50 mm extrudieren.
Den Umfang diskretisieren und Punkte mit dem Makro ArbeitsFunktionen erstellen. Reiter Point > Point 2/3 > Points=Cut (Wire)
Den Kreis mit drei Punkten mit dem Makro ArbeitsFunktionen erstellen. Reiter Circle Circle=(3 Points)
Einen Mittelpunktkreis mit dem Makro Arbeits-Funktionen erstellen. Tab Point > Point 1/3 > Circle(s) center.
Die Referenzlinien erstellen und FCCircularText konfigurieren.
Den Text mit Run Comp erstellen.
Ellipse extrudieren, Form wählen und die Schaltfläche Part Cut drücken.
Den Kreis, die Punkte und die Linien löschen.
Ellipsen.
Modusentlastung:
Erstellt eine Ellipse.
Erstellt ein Rechteck, das alle Objekte enthält.
Das Rechteck und die Ellipse auswählen und einen Verbund erstellen. Das Modul Part aktivieren und dann im Menü Part die Option Verbund erstellen auswählen.
Den Verbund eines Festkörpers extrudieren.
Die „Form“ (Text) wählen, den Verbund und Schnitt.
Der Text ist in Form einer Ellipse ausgeschnitten.
Die extrudierte Ellipse auswählen, den Schnitt (text) und diese vereinigen.
Beispiel für einen Abschnitts-Pfad
Text auf ausgewählter Linie: 1: Orthogonal 2: Tangential
Hinweis Es ist möglich, dass zwischen den Versionen ein Fehler auftritt. Bitte das Problem im Forum melden und auf die aktualisierte Fehlerbehebung oder die Rückkehr zu einer früheren Version des Makros warten. Vielen Dank.
Es ist möglich, dass zwei Zeichen überlappen. Wenn dies passiert, hier ist eine Problemumgehung verfügbar unter Verwendung des Rotate-To-Point Makro.
Character overlap issue and the workaround
(nicht vollständig entwickelt)
Geplant:
Schreiben eines kreisförmigen Textes auf einem Pfad des ausgewählten Positionsobjekts.
Änderungsprotokoll
ver 0.24d 2026/10/11 : Fehlerkorrektur 0.24b: 4653, 4594, 4821 durch Direction, Danke
ver 24c 2026/10/03 : Stattdessen zum (code) zurückkehren – dem FreeCAD-Befehl Gui.Selection.clearSelection(), gibt eine Fehlermeldung aus, wenn ein Objekt ausgewählt ist
# deselectionner tous les objetstry:forobjinFreeCAD.ActiveDocument.Objects:# deselectionne toutFreeCADGui.Selection.removeSelection(obj)exceptException:None
Version 0.24b 2026/09/29 : Linienzug erstellen und Linienzug umkehren wurden hinzugefügt (erstellt einen B-Spline und kehrt die Punkte um), ändert convert_Int_To_RGB case INT = 0
ver 0.24 2026/09/25 : Option Zeichengenerator hinzugefügt
Ver. 0.23b 2026/09/13 : Verknüpfung zum Bilderpfad Base/orthogonal korrigiert !!!
ver 0.21 2022/05/31 : Schaltfläche Anderen Pfad suchen manuell hinzufügen und Schaltfläche Zurück zur ursprünglichen System-Schriftart
ver 0.20 2021/04/05 : Hinzufügen von Symbolen im Makro, Registerkarte zum Verringern der Höhe des Makros, Entfernen aller Abmessungen von Widgets, die nun vollständig mit dem Stylesheet kompatibel sind, Überarbeitung der Suchversion hinsichtlich Kompatibilität und andere kleinere Änderungen.
ver 1.19 2021/03/15 : Hinzufügen der Schaltfläche Delete für das zuletzt erstellte Objekt und des Codes FreeCAD.ActiveDocument.openTransaction("FCCTc") für das System „Rückgängig/Wiederherstellen“
Hinzufügen einer CheckBox Zurücksetzen für umgeschaltet/aktiviert (von Benutzern angefordert) das natürliche Zurücksetzen nach allen Drucktasten Ausführen und Ausführen comp. Die Verwendung dieser CheckBox wird nicht empfohlen, da Sie bei einer Fehlfunktion die Taste Reset drücken oder FCCircularText beenden und neu starten sollten.
#### 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 ############################################################################################################
ver 0.16 2020/06/07 : Kleiner Fehler in Linux mit dem Pfad, Steuer PolicePath = "/usr/share/fonts/" (blieb beim Pfad /xx/xx/xx/xx/xx/xx/ beim Betreten)
ver 0.15 2020/06/01 : Für PySide2 Qt5 Hinzufügen von Matplotlib-Schriftarten in comboView, Konfiguration über Parameter
ver 0.14-4 2020/04/25 : Korrektur für "DisplayMode = u"Flat Lines" :
ver 0.14 2019/04/27 Kompatibilität zu Python 3.6.6 und Qt 5.6.2 (Grund: unicode() )
latesttesting:#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 Funktion Pivot hinzufügen, um die Figur um sich selbst zu drehen
ver 0.13 09/08/2016 Schaltfläche "New font" mit "fontComboBox" ersetzt, Ursache, unter Windows 10 bleibt das Fenster Schriftart leer, die Dateien sind ausgeblendet.
ver 0.12 03/07/2016 Den Code optimieren, damit Dezimalzahlen bei der Winkelbestimmung akzeptiert werden. Ersetzen Sie die Zeile.
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 Zeilen 1365, 1366 hinzugefügt, nur mehr Zifferblatt erstellt?? ()
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##################################################################################################
Version 0.7 02.02.2015 Unterdrückung von 2 Zeichenfolgen „App.Console.PrintMessage(str(PolicePath)+"\n")” zu „App.Console.PrintMessage((PolicePath)+"\n")”, die einen Fehler mit Zeichen über 128 im Police-Pfad verursachten.
Version 0.6 23.11.2014 Korrektur von „texte = unicode(self.textEdit.toPlainText())”, akzeptiert nun „'éèà@...”.
Version 0.5 vom 19.11.2014 Gui
Version 0.4 vom 10.10.2014 Hinzufügen der Variablen „rotation” in der Schleife (for i in range(0,rotation,(rotation/nombre)): # 360 a parametrer)
Version 0.4 27.08.2014 Korrektur des Radiusfehlers (exterieur=0, debout=1)
Version 0.3 26.08.2014 Hinzufügen des Erstellungstextes für flache Kurven
Version 0.2 26.08.2014 Hinzufügen des Erstellungstextes für interne Kurven