[Macro] Une macro pour utiliser plus facilement un spreadsheet pour les contraintes de longueurs dans un sketch

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
User avatar
2cv001
Posts: 484
Joined: Wed Jan 01, 2020 9:30 am

[Macro] Une macro pour utiliser plus facilement un spreadsheet pour les contraintes de longueurs dans un sketch

Post by 2cv001 »

Edit : La macro fonctionne maintenant parfaitement et a été enrichie de nombreuses fonctionnalités. Le mieux est de directement voir ici: https://wiki.freecad.org/Macro_sketchCo ... preadsheet

Bonjour,
J'utilise énormément les spreadsheet pour faire des réalisations paramétrés. Et plus particulièrement des cellules de spreadsheet repérées par leurs alias.
Il existe une macro qui facilite la création de ces alias. Et maintenant, se faire un tableau avec des alias se fait très facilement. On écrit sur une colonne les libellé et les alias se mettent automatiquement sur la colonne d'à coté à partir de ces libellés.

Malgré tout, se servir des valeurs du tableau pour alimenter des contraintes de longueurs
Capture.PNG
Capture.PNG (692 Bytes) Viewed 70291 times
restait plus long que de se passer de tableau. Je rêvais d'une macro qui par un simple clic sur une cellule récupérait l'alias pour s'en servir comme longueur pour la contrainte.
Concrètement,
1) sélectionner
-une ligne,
-deux points 'extrémité de ligne, centre d'un cercle...)
-ou une contrainte de longueur
Capture4.PNG
Capture4.PNG (56.3 KiB) Viewed 69930 times
2) cliquer sur une cellule du tableur qui a une valeur numérique, avec ou sans alias
Capture3 (2).PNG
Capture3 (2).PNG (8.08 KiB) Viewed 69930 times
3) Lancer la macro
4) Sélectionnez le type de contrainte souhaité
Capture.PNG
Capture.PNG (4.73 KiB) Viewed 69937 times
si la cellule a un alias, la propriété de longueur de la contrainte sera quelque chose style 'Spreadsheet.alias'. Sinon, quelque chose style 'Spreadsheet.D4'.
Capture3.PNG
Capture3.PNG (32.26 KiB) Viewed 69930 times
5) Si la contrainte entraine un conflit dans le sketch et si la case "conflict detection" est cochée,
Capture.PNG
Capture.PNG (4.73 KiB) Viewed 69937 times
la macro vous proposera d'effacer la nouvelle contrainte

La macro est en cours de test, mais semble fonctionner. Ne pas hésiter à me faire des retours, qu'ils soient concluant ou pas.
Last edited by 2cv001 on Thu Dec 21, 2023 6:58 am, edited 24 times in total.
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
mario52
Veteran
Posts: 4674
Joined: Wed May 16, 2012 2:13 pm

Re: Une nouvelle macro pour utiliser plus facilement un spreadsheet pour les contraintes de longueurs dans un sketch

Post by mario52 »

Bonjour
2cv001 wrote: Thu Feb 09, 2023 10:29 pm 1) sélectionner une ligne, ou deux points
2) cliquer sur une cellule du tableur
3) Lancer la macro
je n'arrive pas a utiliser la macro ... j'obtiens toujours la fenêtre Warning Select a ...

mario
Maybe you need a special feature, go into Macros_recipes and Code_snippets, Topological_data_scripting.
My macros on Gist.github here complete macros Wiki and forum.
User avatar
2cv001
Posts: 484
Joined: Wed Jan 01, 2020 9:30 am

Re: Une nouvelle macro pour utiliser plus facilement un spreadsheet pour les contraintes de longueurs dans un sketch

Post by 2cv001 »

Merci d'avoir essayé !
Effectivement, j'ai vu ce matin que la macro ne fonctionne que si on a que des lignes dans le squetch. Je suis en train de voir.
Mon problème est l'index de la ligne qui je croyais était l'index de la ligne parmi les ligne mais à priori, c'est le n° d'ordre de l'objet parmi les objets.
A cours terme, il faut donc que je trouve comment récupérer ce n° d'ordre de la ligne parmi les objet dans le sketch.
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
User avatar
2cv001
Posts: 484
Joined: Wed Jan 01, 2020 9:30 am

Re: Une nouvelle macro pour utiliser plus facilement un spreadsheet pour les contraintes de longueurs dans un sketch

Post by 2cv001 »

merci Mario, effectivement, je fouille partout. Pas évident quand on connait mal !
Dans ce que tu me donnes, je devrais trouver des choses intéressantes.

Au fait quand tu faisais les essais, tu lançais bien la macro lorsque tu étais dans la fenêtre du tableau, juste après avoir cliqué sur une cellule ?

Bon, cela dit, mon truc est pas bon dès qu'il y a autres choses que des lignes dans le sketch, pas op ma macro !
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
mario52
Veteran
Posts: 4674
Joined: Wed May 16, 2012 2:13 pm

Re: Une nouvelle macro pour utiliser plus facilement un spreadsheet pour les contraintes de longueurs dans un sketch

Post by mario52 »

Bonsoir
2cv001 wrote: Sat Feb 11, 2023 4:18 pm Au fait quand tu faisais les essais, tu lançais bien la macro lorsque tu étais dans la fenêtre du tableau, juste après avoir cliqué sur une cellule ?
oui

mario
Maybe you need a special feature, go into Macros_recipes and Code_snippets, Topological_data_scripting.
My macros on Gist.github here complete macros Wiki and forum.
User avatar
2cv001
Posts: 484
Joined: Wed Jan 01, 2020 9:30 am

Re: Une nouvelle macro pour utiliser plus facilement un spreadsheet pour les contraintes de longueurs dans un sketch

Post by 2cv001 »

Voilà, j'ai maintenant une version qui pour moi fonctionne. J'ai modifié le premier message pour compléter la description afin de bien montrer l'utilisation et les fonctionnalités. Le nouveau code se trouve dans ce premier message. Je vous invite à tester. Ce n'est qu'une première version, je vais continuer tester et à l'améliorer. Ne pas hésiter à me faire des retours,
Merci à @openBrain , @mario52 @onekk qui, via le forum, en répondant à différentes questions, m'ont donné des morceaux de code sans lesquelles je n'aurais jamais pu faire cette macro ! :)
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
User avatar
2cv001
Posts: 484
Joined: Wed Jan 01, 2020 9:30 am

Re: [Macro] Une nouvelle macro pour utiliser plus facilement un spreadsheet pour les contraintes de longueurs dans un sk

Post by 2cv001 »

Après réflexion, je me suis dit que si l'utilisateur rentre une contrainte via un spreadsheet et non directement, c'est bien qu'il souhaite ne pas avoir un nombre mais une formule(une expression) de façon à ce que si on change une valeur dans le spreadsheet, cela modifie automatiquement la contrainte.
Donc, si il y a une valeur dans une case qui n'a pas d'alias, je rentre le nom de sa case à la place de l'allias et du coup, par exemple 'SpreadSheet.D4' comme expression.
Ainsi, si on change la valeur qui était dans la case D4, cela modifie la contrainte et donc le sketch et donc le reste.
En cas d’alias, la macro continue bien sûr à utiliser cet alias.

J'ai mis à jour le code dans le premier message de cette discussion.
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
User avatar
2cv001
Posts: 484
Joined: Wed Jan 01, 2020 9:30 am

Re: [Macro] Une nouvelle macro pour utiliser plus facilement un spreadsheet pour les contraintes de longueurs dans un sk

Post by 2cv001 »

J'ai commencé à faire une page wiki...
Pour les sachant s: N'hésitez pas à y faire des corrections pour la rendre conforme...
Et pour tous : ne pas hésiter à faire des suggestions, dire que vous ne comprenez rien à telle phrase etc...
https://wiki.freecad.org/Macro_sketchCo ... escription
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
User avatar
Forthman
Veteran
Posts: 2650
Joined: Fri Apr 27, 2018 11:23 am
Location: Tarn-et-Garonne (82)

Re: [Macro] Une nouvelle macro pour utiliser plus facilement un spreadsheet pour les contraintes de longueurs dans un sk

Post by Forthman »

Salut,

Bon, j'ai effacé mon précédent post, car je n'avais pas fini de lire le wiki, et que je proposais des trucs que tu avais déjà prévu :oops:
Elle est super ta macro :D
Post Reply