Description
Cette macro crée un ressort avec un pas variable entièrement configurable, chaque pas du ressort peut être configuré.
La définition du ressort obtenu peut être sauvée dans un fichier ayant l'extension .FCSpring
Utilisation
Cette section est utilisée pour configurer le ressort.
Détail schématique de la définition du ressort .
Interface graphique de FCSpring_Helix_Variable
Première section, configuration du ressort
- Number of coil : Nombre total de spires du ressort. Défaut = 10
- Radius of spring : Rayon du ressort. Défaut = 20.0
- Pitch of spring : Pas du ressort. Défaut = 15.0
- Precision of turn : Précision par tour qui correspond en nombre de points pour un tour, le nombre de points est calculé comme suit : Précision (nombre de points) = (pitch / (360/Precision)). Default = 5 (72 points)
- Spring conical : Donner le grand diamètre du cône, cette dimension sera toujours égale ou plus grande que le rayon.
- CheckBox : Case à cocher qui permet d'activer la fonction Spring conical.
(Un cône peut être configuré manuellement mais cette petite procédure automatise la commande)
- Begin : Angle de départ ou commence la première spire. Défaut 0°
- End : Angle de fin ou se termine la dernière spire. Défaut 360°
- Ch. : Case à cocher pour activer la fonction Begin et End des angles des spires.
Si la fonction est activée le réglage se règle automatiquement à 1 (360 points par tour, 1 point = 1 degrés)
Seconde section, type de ligne
- BSpline : Type de ligne BSpline.
- Wire : Type ligne Wire.
- Points : Check box point si cette fonction est activée un point est créé à chaque point désigné par Precision (noeud).
- Reverse : Check box reverse si cette fonction est activée le ressort change de direction (sens horaire)
Troisième section, selection
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(s) 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)
- Norm. : Si un cercle est sélectionné Norm ne modifie pas le rayon déterminé (Défaut)
- AdpRa : Si le bouton est pressé le rayon du ressort est adapté au rayon du cercle ou de l'objet sélectionné (Si un rayon est détecté)
- PMous : Si le clic de souris se fait sur une face, le point de la souris sera l'axe du rayon (Défaut)
- CFace : Si le bouton est pressé, le ressort sera créé au centre de la face sélectionnée
- Position : Si deux objets sont sélectionnés (le premier sera l'axe le second sera le ressort), ce checkBox est activé et permet de modifier l'emplacement du ressort (objet 2) le long de l'axe (objet 1). Il n'y a pas de contrôle des objets sélectionnés n'importe quel objet sera positionné sur la longueur de l'axe et positionné
- Circle : Si trois points sont sélectionnés, le bouton Circle est activé et un cercle pourra être créé il pourra servir de base pour le 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)
- Begin/End : Positionnement du ressort au début, au milieu ou à la fin de l'axe
- RSpr : Inverse le ressort sur son axe
- DoubleSpinBox : Déplace le ressort de manière précise le long du ressort par pas de 0.1 mm le long de son axe
- RCom : Inverse le compeur exemple: Début 0 à 10.. ou Fin 0 to 10..
- Slider : Positionne le ressort de façon rapide
Troisième section, longueur du pas 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)
- 15 : 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)
- 20 : 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)
- Accept the value modified : 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.
- C : Nettoie la fenêtre textedit
- Z : Bouton "Zoom" Agrandit la fenêtre textedit
Commandes
- Read : Le bouton Read ouvre une boîte de dialogue pour lire un fichier sauvegardé, le fichier porte l'extension .FCSpring.
- Save : 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.
- Load Coordinates : Ouvre une boîte de dialogue pour charger un fichier .FCSpringCoor (toutes les coordonnées des points constituants le ressort).
- Save Coordinates : Ouvre une boîte de dialogue pour sauver un fichier .FCSpringCoor (toutes les coordonnées des points constituants le ressort).
- Quit : Quitte la macro.
- Reset : Reset la macro à la configuration par défaut.
- Launch : Lance la macro et crée le ressort dans sa configuration.
Vue rapport
La fenêtre Vue rapport affiche les détails de la configuration du ressort.
Exemples de ressorts
Exemples de ressorts modifiés:
Exemple 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 le tout dans votre répertoire de macro.
Cliquez sur l'image, dans la nouvelle fenêtre positionnez votre souris sur l'icône et faites "Enregistrez la cible du lien sous ..."
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
Exemples
Différence entre le ressort lissé (ici 71 avec précision 5 (72 points)) et le ressort sans lissage
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
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.
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 : modification de la ligne 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))
en
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 : ajout de "makeBSpline" et configuration.
Limitations
Durant les tests la fonction sweep a donné ces erreurs !
For the moment the macro is not adapted for the square, rectangle...
Only circle work well
TCollection_IndexedDataMap
Wrong usage of punctual sections