Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
howto:3d:freecad:creermacro [2025/05/21 14:06] – admin | howto:3d:freecad:creermacro [2025/05/21 14:46] (Version actuelle) – admin |
---|
======= Créer un macro dans FreeCAD ======= | ======= Créer un macro dans FreeCAD ======= |
| |
Lorsqu'on applique une recette de fabrication régulièrement on n'a très vite envie d'automatiser le process pour ne plus avoir à répéter les mêmes actions. C'est le but d'une macro, une série d'actions automatisées qui nous fera gagner du temps et évitera des erreurs de manipulation. | Lorsqu'on applique une recette de fabrication régulièrement on n'a très vite envie d'automatiser le process pour ne plus avoir à répéter les mêmes actions. C'est le but d'une macro : une série d'actions automatisées qui nous fera gagner du temps et évitera les erreurs de manipulation. |
C'est donc ce qui est arrivé à un adhérent du Fablab avec qui nous avons mis au point un flux de travail lui permettant de soustraire des volumes d'une surface non plane en utilisant divers ateliers et une succession d'étapes bien définies. Ce flux de travail étant désormais fiable, nous proposons d'écrire une macro afin de l'automatiser. | |
| |
Les macros FreeCAD sont en langage Python. Depuis le menu Macro il est possible d'enregistrer une macro à partir des actions faites à la souris. Une autre méthode pour connaître les commandes consiste à ouvrir le panneau de console Python et les récupérer au fur et à mesure pour comprendre le principe. | C'est ce que nous avons proposé à un adhérent du Fablab avec qui nous avons mis au point un flux de travail lui permettant de soustraire des volumes d'une surface non plane en utilisant divers ateliers et une succession d'étapes bien définies. D'ailleurs vous trouverez dans l'article suivant les principes de ce type de modélisation : [[howto:3d:freecad:sketch_on_surface|]] |
| |
Cet article vise donc à consigner sous forme de mémo les différents éléments qui nous ont servi à écrire la macro finale. | Son flux de travail étant désormais fiable, nous proposons d'écrire une macro afin de l'automatiser. |
| |
| Les macros FreeCAD sont en langage Python. Depuis le menu Macro il est possible d'enregistrer une macro à partir des actions faites à la souris. Une autre méthode pour connaître les commandes consiste à ouvrir le panneau de console Python et les récupérer au fur et à mesure pour en comprendre le principe. |
| |
| Cet article vise à consigner sous forme de mémo quelques éléments qui nous ont demandé un peu de recherche et servi à écrire la macro finale. |
| |
===== Sélectionner/déselectionner un élément ===== | ===== Sélectionner/déselectionner un élément ===== |
| |
| |
===== Récupérer la valeur d'une contrainte ===== | ===== Faire une opération booléenne ===== |
| |
Il faut au préalable charger la libraire BOPFeatures : | Il faut au préalable charger la libraire BOPFeatures qui est utilisée pour les opération booléennes de l'atelier Part : |
| |
from BOPTools import BOPFeatures | from BOPTools import BOPFeatures |
puis : | puis : |
bp = BOPFeatures.BOPFeatures(App.activeDocument()) #On crée l'objet booléen | bp = BOPFeatures.BOPFeatures(App.activeDocument()) #On crée l'objet booléen |
bp.make_cut(["Objet1", "Objet2", ]) #On fait une soustraction entre les Objet1 et Objet2 | bp.make_cut(["Objet1", "Objet2", ]) #On fait une soustraction entre les Objet1 et Objet2 - les opérations possibles sont : make_multi_fuse (Union) / make_multi_common (Intersection) / make_cut (Soustraction) |
| App.ActiveDocument.recompute() #On calcule l'objet résultant |