Macro FCSpring Helix Variable/it

Molla a spirale variabile

Descrizione
Questa macro crea una molla personalizzabile, la configurazione della molla può essere salvata in un file con estensione .FCSpring o coordinate .FCSpringCoor.
Vengono rilevati: Superficie (Direzione della faccia), Cilindro (raggio), Ellisse (raggio minore), Sfera (raggio), Toroide (raggio1), Piano (direzione), Linea (seguire la direzione), Punto (posizione vertice XYZ)
Se non viene rilevato alcun oggetto (non selezione) la molla viene creata nel punto XYZ 0., 0., 0.
Vedere esempi

Versione macro: 01.18c
Ultima modifica: 2023/09/01
Versione FreeCAD: 0.19 e successive
Download: Download the the Icons in .zip file
Autore: Mario52
Autore
Mario52
Download
Download the the Icons in .zip file
Link
Versione macro
01.18c
Data ultima modifica
2023/09/01
Versioni di FreeCAD
0.19 e successive
Scorciatoia
Nessuna
Vedere anche
Nessuno

Descrizione

Questa macro crea una molla con una configurazione altamente personalizzabile. Qualsiasi modifica che cambi la configurazione della molla può essere salvata in un file con estensione .FCSpring o coordinate .FCSpringCoor
Vengono rilevati: superficie (direzione faccia), cilindro (raggio), ellisse (raggio minore), sfera (raggio), toroide (raggio1), piano (direzione), linea (seguire la direzione), punto (posizione vertice XYZ)
Se non viene rilevato alcun oggetto (non selezione) la molla viene creata nel punto XYZ 0., 0., 0.
Si possono creare diverse configurazioni di molle, secondo le proprie esigenze, e poi salvarle in un file con estensione .FCSpring

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>


FCSpring Helix Variable

Utilizzo

Questa sezione è utilizzata per configurare la molla

Schema di configurazione della molla

Gui

Configurazione

Tipo linea

Opzioni

Questa sezione viene visualizzata se è selezionato l'oggetto. Il tipo di oggetto viene visualizzato in Text Editor

L'oggetto può essere una linea, 2 punti, un cerchio, un contorno ... un asse, la lunghezza della molla viene creata automaticamente

Detection : Cylinder (radius), Sphere (radius), Toroid (radius) , Cone (little radius), Circle (radius), Arc (radius), Ellipse (little radius)

Posizione (0)(xx)

(0)(xx) : Numero di selezioni, lunghezza in mm dell'asse creato x 10, numero uguale di punti per spostare la molla dell'asse

Spire di lunghezza speciale

Comando

Vista report

La vista Report visualizzata tutti i valori modificati.

Molla di esempio

Esempio di molla modificata

Esempio di vista report

All'avvio della macro viene visualizzato l'elenco completo delle spire sotto forma di tabella.

Questi sono i dati della molla precedente visualizzati nella vista Report

Icona

Scaricare l'immagine del file e copiarla nel repertorio delle macro.

Cliccare sull'immagine con il tasto destro del mouse e salvarla nella nuova posizione selezionando "Salva oggetto con nome ..."

Pulsante barra degli strumenti

Button
Button

Icone macro

Script

Macro_FCSpring_Helix_Variable.FCMacro

Scaricare la macro da Gist Macro_FCSpring_Helix_Variable

Installazione

Il file sopra è una macro sotto forma di codice GitHub. Scaricare il file Zip da GitHub, quindi seguire le istruzioni di installazione delle macro mostrate in installazione delle macro di FreeCAD in Ubuntu.

Esempi












Link

Links

La discussione nel forum: Try to do a Spring

In progetto

molla troncata

ammorbidire i raccordi: fatto

modificare il diametro di qualsiasi spira: fatto

Versione

11/07/2024 versione 01.19 eliminato "import WebGui" sostituito da "import webbrowser" e ottimizzato il filtro per OS Linux Mint

01/09/2023 Versione 0.18c aggiunto FreeCAD.activeDocument().recompute(None,True,True)Text in italics "bug" corretto da Syres grazie How to draw polygonal spirals in Freecad?

01/09/2023 Versione 0.18b corretto (adattato) il codice:

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

to

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

16/03/2022 Versione 0.18 : aggiunto barra di scorrimento, possibilità di ancoraggio a sinistra o a destra, ripristino del cronometro (time.time()), memorizzazione dell'ultimo FilePath

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

12/11/2020 Versione=01.17 : soppresso il timer cronometro!!

15/10/2020 Ver 00.16b : soppresso il test sulla riga 56 di FC 18, soppresso il timer cronometro e attesa

01/05/2020 Ver 00.16: corretto file di errore di (salvataggio e caricamento) causa soppressione di "label_11_Name"...

11/04/2020 Ver 01.15: layout e un po' di presentazione

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

2019/04/08 Ver 01.13: compatible FreeCAD 0.18.16093 (Git) /Python version: 3.6.6 /Qt version: 5.6.2

03/04/2017: ver 01.12: correction bug line 2314 add "global ui"

11/12/2016: ver 01.11: Aggiunto Posizione della molla sopra l'oggetto selezionato

10/09/2016: ver 01.10: Adding Button "Zoom" enlarge the textedit window

04/09/2016: ver 01.09: add smoothing

16/03/2016: ver 01.08 : correct and add "int()" to debutAngle and finAngle (read file)

02/03/2016: ver 01.07 : add option reverse spring

08/02/2016: ver 01.06 : correct bug angle cause "modifyAngle = int(file.readline().rstrip('\n\r')) # 9" modifyAngle is int() not char

07/01/2015: ver 01.05 : adding "Try ...Except" (data cone) for compatibility with old version

07/01/2015: ver 01.04 : adding spring conical and modify the path to "UserAppData" and adding the icone.

07/12/2014: ver 01.03 : new version with radius coil adjustable

17/11/2014 ver 1.02 : nuova versione con interfaccia grafica e con la possibilità di modificare qualsiasi spira e salvare o caricare i dati su disco.

10/11/2014: (23h20) correction of the modification

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: modify line 44 :

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))

con

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 : aggiunto "makeBSpline" e configurazione

Limitazioni

Durante i test di sweep son stati ottenuti i seguenti errori!