Macro FCSpring Helix Variable/fr

Description
Cette macro crée un ressort hautement personnalisable. Toute modification modifiant la configuration du ressort peut être enregistrée dans un fichier avec l'extension .FCSpring ou coordonnées .FCSpringCoor Sont détectées : Surface (Direction de la face), Cylindre (Rayon), Ellipse (MinorRadius), Sphère (Rayon), Toroïde (Rayon1), Plan (direction), ligne (suivre la direction), point (position du sommet XYZ) Si aucun objet n'est détecté (pas de sélection) le ressort est créé au point XYZ 0., 0., 0.



Utilisation
Cette section est utilisée pour configurer le ressort.

Détail schématique de la définition du ressort



Configuration
Si la fonction est activée, le réglage se règle automatiquement à 1 (360 points par tour, 1 point = 1 degré)
 * Number of coil : nombre total de spires du ressort. Par défaut = 10
 * Radius of spring : rayon du ressort. Par défaut = 20.0
 * Pitch of spring : pas du ressort. Par défaut = 15.0
 * Precision of turn : précision par tour. Cela correspond au nombre de points par tour. Le nombre de points est calculé comme suit : precision (nombre de points) = (pitch / (360/precision)). Par défaut = 5 (72 points)
 * : rayon du grand cercle du cône ( doit être coché)
 * : grand diamètre du cône. Cette dimension sera toujours supérieure au rayon
 * : case à cocher pour activer la fonction Begin et End des angles des spires.
 * Begin : angle de départ ou commence la première spire.
 * End : angle de fin ou se termine la dernière spire.





Type de ligne

 * BSpline : type de ligne est une B-spline.
 * Wire : type de ligne est filaire.
 * Points : si la case est cochée, un point est créé sur chaque point.
 * Reverse : mode inverse. Si la case est cochée, le ressort change de direction (sens horaire).



Option
Cette section s'affiche dès qu'un objet est sélectionné. le type d'objet est renseigné dans l'éditeur de texte

L'objet peut être une ligne, 2 points, cercle, arête... Un axe de la longueur du ressort est automatiquement créé.

Détection : Cylindre (radius), Sphère (rayon), Tore (rayon), Cône (petit rayon), Cercle (rayon), Arc (rayon), Ellipse (petit rayon)


 * : si un cercle est sélectionné Normal, ne modifie pas le rayon du cercle (Par défaut)
 * : si le bouton est pressé, le texte  est affiché, le rayon du ressort est adapté au rayon du cercle ou de l'objet sélectionné (Si un rayon est détecté)
 * : si le clic de souris se fait sur une face, le point de la souris sera le point de départ de l'axe (Par défaut)
 * : si le bouton est pressé, le texte du bouton change et le ressort sera créé au centre de la face sélectionnée
 * : si deux objets sont sélectionnés (le premier l'axe et le second le ressort (ou tout autre objet)), cette case est activé et vous pouvez de modifier l'emplacement du ressort (le deuxième objet) le long de l'axe (premier objet). doit être sélectionnée sur "Position" pour être active.
 * : si trois points sont sélectionnés, le bouton est activé et un cercle pourra être créé, il pourra servir de base pour un ressort.





Position (0)(xx)
(0)(xx) : nombre de sélection(s), longueur de l'axe en mm x 10, est égal au nombres de points de déplacements disponibles sur la longueur de l'axe (pas de 0.1 mm)


 * : positionnement du ressort au début, au milieu ou à la fin de l'axe
 * : inverse le ressort sur son axe
 * : déplace le ressort de manière précise le long du ressort par pas de 0.1 mm le long de son axe
 * : inverse le compteur, par exemple: Begin 0 to 10.. ou End 0 to 10..
 * Slider : positionne le ressort sur son axe





Dimensions particulières de la spire

 * Numbering of coil : numéro de la spire a modifier. (Defaut : 0)
 * Smoothing : cette case à cocher découvre un spinBox pour déterminer le degré de lissage entre deux spires ou l'écartement est important, le degré maximum du lissage est la valeur de précision -1 (cette option est à l'état de prototype et le résultat peur être satisfaisant, invisible ou mauvais)
 * Pitch of coil : dimension du pas de la spire a modifier. (Defaut : 0)
 * : si le bouton est cliqué, la valeur de "Pitch of string" est affectée à "Pitch of coil" (Cette valeur est automatiquement alignée à la valeur de Pitch of string)
 * Radius of coil : rayon de la spire a modifier. (Defaut : 0)
 * : si le bouton est cliqué, la valeur de "Radius of string" est affectée à "Radius of coil" (Cette valeur est automatiquement alignée à la valeur de Radius of string)
 * : bouton d'acceptation pour valider les modifications de la spire a modifier.
 * Text edit : cette fenêtre affiche les spires modifiées et validées.
 * : nettoie l'éditeur de texte
 * : bouton "Zoom", agrandit la fenêtre text-edit



Commandes

 * : le bouton Lead ouvre une boîte de dialogue pour lire un fichier sauvegardé, le fichier porte l'extension .FCSpring.
 * : le bouton Save ouvre une boîte de dialogue pour sauver un fichier avec la configuration du ressort modifiée ou non, le fichier porte l'extension .FCSpring.
 * : ouvre une boîte de dialogue pour charger un fichier .FCSpringCoor (toutes les coordonnées des points constituants le ressort).
 * : ouvre une boîte de dialogue pour sauver un fichier .FCSpringCoor (toutes les coordonnées des points constituants le ressort).
 * : quitte la macro.
 * : réinitialise la macro à la configuration par défaut.
 * : lance la macro et crée le ressort dans sa configuration.
 * : ce bouton affiche la page wiki dans la fenêtre web de FreeCAD





Vue rapport
La fenêtre Vue rapport affiche les détails de la configuration du ressort.





Exemple de ressort
Exemple de ressort modifié :





Exemple de vue rapport
Dès que la macro est lancée, la liste de la configuration du ressort est affichée sous forme de tableau.

Ici les données du ressort affichées dans la vue rapport.

Icônes
Téléchargez les icônes et copier les dans votre répertoire de macro.

Cliquez sur l'image, dans la nouvelle fenêtre positionnez votre souris sur l'icône, clique droit et faites "Save target as ..."

Bouton pour votre barre d'outils

Icônes de la macro



Script
Macro_FCSpring_Helix_Variable.FCMacro

Téléchargez la macro sur Gist Macro_FCSpring_Helix_Variable

Installation
Le fichier ci-dessus est une macro sous la forme de code GitHub. Téléchargez le fichier Zip depuis GitHub, puis suivez les instructions d'installation des macros pour débutants indiquées à l'adresse installing FreeCAD macros in Ubuntu

Liens
Discussion sur le forum Try to do a Spring

Projet
Ressort tronqué

Lissage des spires aux changements des spires : fait

Modification du diamètre à chaque spire au choix : fait

Versions
2023/09/01 Version 0.18c adding FreeCAD.activeDocument.recompute(None,True,True)Texte en italique "bug" fixed by Syres thanks How to draw polygonal spirals in Freecad?

2023/09/01 Version 0.18b correct (adapt) the code :

to

2022/03/16 Version 0.18 : ajout scrollBar, possibilité docking Gauche or Droite, restauration du chrono (time.time), mémorise le dernier FilePath

2020/11/12 Version=01.17 : suppression du timer chrono !!

2020/10/18 Ver 00.16b : suppression du test FC 18 line 56, et suppression de timer chrono j'attends...

2020/05/01 Ver 00.16: fichier d'erreur de correction (sauvegarde et chargement) cause la suppression de "label_11_Name" ...

2020/04/11 Ver 01.15: layout et présentation

2019/05/03 Ver 01.14: compatible 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 ligne 2314 add  "global ui"

11/12/2016: ver 01.11: Ajout de position du ressort sur un objet sélectionné

10/09/2016: ver 01.10: Ajout du Bouton "Zoom" pour agrandit la fenêtre textedit

04/09/2016: ver 01.09: ajout de la fonction lissage et sauvegarde/chargement des coordonnées du ressort

16/03/2016: ver 01.08 : correction et ajout "int" à debutAngle et finAngle (dans la section lecture du fichier)

02/03/2016: ver 01.07 : ajout d'une option reverse spring (sens horaire)

08/02/2016: ver 01.06 : correction du bug angle cause "modifyAngle = int(file.readline.rstrip('\n\r'))  # 9"  modifyAngle est int pas char

07/01/2015: ver 01.05 : ajout de "Try ...Except" (données cône) pour assurer la compatibilité avec les versions précédentes.

07/01/2015: ver 01.04 : ajout de fabrication de ressort conique et modification du chemin (path) sur "UserAppData".

07/12/2014 : ver 01.03 : nouvelle version avec rayon de chaque spire modifiable.

17/11/2014: ver 1.02 : nouvelle version avec interface graphique, modification de chaque pas et rayon, sauvegarde et chargement des données sur disque.

10/11/2014 : (23h20) correction de la modification.

10/11/2014 : modification de la ligne 44 :

en

6/11/2014 : ajout de "makeBSpline" et configuration.

Limitations
Durant les tests de balayage, certaines erreurs ont été obtenues !