Macro FCSpring Helix Variable/de

Macro FCSpring Helix Variable

Beschreibung
Dieses Makro erstellt eine Feder mit anpassbaren Eigenschaften. Jede Drehung kann die Federkonfiguration ändern, die in einer Datei mit der Erweiterung .FCSpring oder .FCSpringCoor gespeichert werden kann.
Erkannt werden: Fläche (Ausrichtung), Zylinder (Radius), Ellipse (Nebenradius), Kugel (Radius), Toroid (Radius1), Ebene (Ausrichtung), Linie (der Richtung folgend), Punkt (XYZ-Scheitelpunktposition)
Wenn kein Objekt erkannt wird (keine Auswahl), wird die Feder am Punkt XYZ 0,0,0 erstellt.
Siehe die Beispiele


Die Symbole in der .zip-Datei herunterladen.

Versionsmakro : 01.19
Datum der letzten Änderung : 2024/07/11
FreeCAD version : 0.19 und höher
Herunterladen : Werkzeugleisten-Symbol
Autor: Mario52

Autor
Mario52
Herunterladen
Werkzeugleisten-Symbol
Links
Macro-Version
01.19
Datum der letzten Änderung
2024/07/11
FreeCAD-Version(s)
0.19 und höher
Standardverknüpfung
None
Siehe auch
None

Beschreibung

Dieses Makro erstellt eine hochgradig anpassbare Feder. Jede Änderung an der Federkonfiguration kann in einer Datei mit der Erweiterung .FCSpring oder Koordinaten .FCSpringCoor gespeichert werden.
Erkannt werden: Fläche (Flächenrichtung), Zylinder (Radius), Ellipse (Nebenradius), Kugel (Radius), Toroid (Radius1), Ebene (Richtung), Linie (der Richtung folgend), Punkt (XYZ-Scheitelpunktposition)
Wenn kein Objekt erkannt wird (keine Auswahl), wird die Feder am Punkt XYZ 0., 0., 0. erstellt.

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/68c81c32a0727a693d3a/raw/91cbf54580d8af331f9b371f4951a40b9ef506f3/Macro_FCSpring_Helix_Variable.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/68c81c32a0727a693d3a/raw/91cbf54580d8af331f9b371f4951a40b9ef506f3/Macro_FCSpring_Helix_Variable.FCMacro")
<class="rawcodeurl"><a href="https://gist.githubusercontent.com/mario52a/68c81c32a0727a693d3a/raw/91cbf54580d8af331f9b371f4951a40b9ef506f3/Macro_FCSpring_Helix_Variable.FCMacro">raw code</a>


FCFeder-Helix-Variable

Anwendung

Dieser Abschnitt dient zur Konfiguration der Feder.

Schematische Darstellung der Federkonfiguration

Grafische Benutzeroberfläche

Konfiguration

Linientype

Optionen

Dieser Abschnitt wird angezeigt, wenn ein Objekt ausgewählt ist. Das Typ-Objekt wird im Texteditor angezeigt.

Das Objekt kann eine Linie, zwei Punkte, ein Kreis, ein Linienzug ... sein. Eine Achse, die der Länge der Feder entspricht, wird automatisch erstellt.

Erkennung: Zylinder (Radius), Kugel (Radius), Toroid (Radius), Kegel (kleiner Radius), Kreis (Radius), Bogen (Radius), Ellipse (kleiner Radius)

Position (0)(xx)

(0)(xx) : Nummernauswahl(en), Länge in mm der erstellten Achse x 10, gleiche Anzahl von Punkten zum Verschieben der Feder der Achse

Spulen-Sonderabmessung

Befehl

Ausgabefenster

Die Fensterberichtansicht zeigte alle geänderten Werte an.

Beispiel Feder

Beispiel für die modifizierte Feder

Beispiel Ausgabefenster

Wenn das Makro gestartet wird, wird die vollständige Liste der Umdrehungen in Tabellenform angezeigt.

Hier die Daten der oben gezeigten Feder, angezeigt im Ausgabefenster Datei:Macro FCSpring Helix Variable 08.png

Symbol

Das Dateisymbol herunterladen und in das eigene Makro-Verzeichnis kopieren.

Auf das Bild klicken, im neuen Fenster die Maus über dem Bild positionieren, mit der rechten Maustaste klicken und "Ziel speichern unter ..." wählen.

Werkzeugleisten-Symbol

Schaltfläche
Schaltfläche

Makro-Symbole

Skript

Macro_FCSpring_Helix_Variable.FCMacro

Das Makro von Gist herunterladen. Macro_FCSpring_Helix_Variable

Installation

Die oben genannte Datei ist ein Makro in Form von GitHub-Code. Die Zip-Datei auf GitHub herunterladen und dann die Makro-Installationsanweisungen für Anfänger unter installing FreeCAD macros in Ubuntu befolgen.

Beispiele












Verweise

Diskussion im FreeCAD-Forum: Try to do a Spring

Projekt

Feder, massiv, abgestumpft

Armaturen weich machen: erledigt

Durchmesser an jede Spule anpassen: erledigt

Version

11/07/2024 version 01.19 "import WebGui" gelöscht und durch "import webbrowser" ersetzt und Filter für OS Linux Mint angepasst

2023/09/01 Version 0.18c FreeCAD.activeDocument().recompute(None,True,True) hinzugefügt, Text in italics "Fehler" behoben durch Syres danke How to draw polygonal spirals in Freecad?

2023/09/01 Version 0.18b den Code korrigiert (angepasst):

self.PB_Adapt_Radius.setStyleSheet("background-color: QPalette.Base")

to

self.PB_Adapt_Radius.setStyleSheet("QPushButton {background-color: QPalette.Base}")

2022/03/16 Version 0.18 : Scrollbar hinzufügen, Möglichkeit zum Andocken links oder rechts, Chrono wiederherstellen (time.time()), letzten Dateipfad speichern

####chrono################
import time
global depart ; depart  = 0.0
global arrivee; arrivee = 0.0
def chrono(switch):    # 0=depart autre=stop
#time.strftime('%X %x %Z')#'15:44:07 12/14/19 Paris, Madrid'
    global depart
    global arrivee
    try:
        if switch == 0:
            depart = time.time()#time.clock()
            App.Console.PrintMessage("Chrono begin   : "+str(time.strftime('%X'))+"\n")
        else:
            arrivee = time.time()#time.clock()
            App.Console.PrintMessage("Chrono end     : "+str(time.strftime('%X'))+"\n")
            parcouru = ((arrivee - depart)/60.0)
            App.Console.PrintError("Time execution : "+str("%.3f" % parcouru)+" min"+"\n\n")
        return parcouru
        FreeCADGui.updateGui()    
    except Exception: None
####chrono################

2020/11/12 Version=01.17 : Unterdrücke den Timer Chrono!!

2020/10/18 Ver 00.16b : Ich unterdrücke den Test in FC 18 Zeile 56, ich unterdrücke den Timer Chrono und ich warte ein wenig.

2020/05/01 Ver 00.16: Korrekturfehlerdatei (speichern und laden) verursacht Unterdrückung von "label_11_Name"...

2020/04/11 Ver 01.15: Layout und kleine Präsentation

2019/05/03 Ver 01.14: Kompatibel mit FreeCAD 0.19.16523 (Git)

2019/04/08 Ver 01.13: Kompatibel mit FreeCAD 0.18.16093 (Git) / Python-Version: 3.6.6 / Qt-Version: 5.6.2

03/04/2017: ver 01.12: Korrektur Fehler Zeile 2314 "global ui" hinzugefügt

11/12/2016: ver 01.11: Position der Feder auf einem ausgewählten Objekt hinzufügen

10/09/2016: ver 01.10: Hinzufügen der Schaltfläche "Zoom" zum Vergrößern des Textbearbeitungsfensters

04/09/2016: ver 01.09: Glätten hinzugefügt

16/03/2016: ver 01.08 : Korrigiere und füge "int()" zu debutAngle und finAngle hinzu (Datei lesen).

02/03/2016: ver 01.07 : Option Umkehrfeder hinzugefügt

08/02/2016: ver 01.06 : Korrektur der Fehlerursache Winkel "modifyAngle = int(file.readline().rstrip('\n\r')) # 9" modifyAngle is int() not char

07/01/2015: ver 01.05 : Hinzufügen von "Try ...Except" (Datenkonus) für Kompatibilität mit alter Version

07/01/2015: ver 01.04 : "spring conical" hinzufügen, den Pfad zu "UserAppData" ändern und das Symbol hinzufügen.

07/12/2014: ver 01.03 : Neue Version mit einstellbarer Radiusspule

17/11/2014: ver 1.02 : Neue Version mit grafischer Benutzeroberfläche und Möglichkeit, jede Spule zu modifizieren und die Daten auf der Festplatte zu speichern oder zu laden.

10/11/2014: (23h20) Korrektur der Änderung

ligne.Placement = App.Placement(App.Vector(0.0,0.0,0.0), App.Rotation(App.Vector(0,0,1),angleTr), App.Vector(0,0,0))

10/11/2014: Zeile 44 angepasst :

a = FreeCAD.ActiveDocument.Line.Placement=App.Placement(App.Vector(0.0,0.0,0.0), App.Rotation(App.Vector(0,0,1),angleTr), App.Vector(0,0,0))

zu

ligne = FreeCAD.ActiveDocument.Line.Placement=App.Placement(App.Vector(0.0,0.0,0.0), App.Rotation(App.Vector(0,0,1),angleTr), App.Vector(0,0,0))

6/11/2014 : "makeBSpline" hinzugefügt und Konfiguration hinzugefügt

Einschränkungen

Hier sind die Fehler, die ich bei den Sweep-Tests festgestellt habe!