Différences
Ci-dessous, les différences entre deux révisions de la page.
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 13:29] – admin | howto:3d:freecad:creermacro [2025/05/21 14:46] (Version actuelle) – admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
======= Créer un macro dans FreeCAD ======= | ======= Créer un macro dans FreeCAD ======= | ||
- | Lorsqu' | + | Lorsqu' |
- | 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' | + | |
- | Les macros FreeCAD sont en langage Python. Depuis le menu Macro il est possible | + | 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 |
- | Cet article vise donc à consigner sous forme de mémo les différents éléments qui nous ont servi à écrire | + | Son flux de travail étant désormais fiable, |
- | ===== Sélectionner un élément ===== | + | Les macros FreeCAD sont en langage Python. Depuis le menu Macro il est possible d' |
+ | |||
+ | 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/ | ||
La sélection à la souris d'un élément se traduit en python par | La sélection à la souris d'un élément se traduit en python par | ||
Ligne 28: | Ligne 31: | ||
Gui.Selection.addSelection(docname, | Gui.Selection.addSelection(docname, | ||
+ | | ||
+ | Pour tout désélectionner | ||
+ | Gui.Selection.clearSelection() | ||
===== Construire une fenêtre ===== | ===== Construire une fenêtre ===== | ||
Ligne 49: | Ligne 55: | ||
# | # | ||
+ | ===== Ouvrir un gestionnaire de fichiers ===== | ||
+ | Exemple avec un filtre pour ouvrir un SVG : | ||
+ | QtGui.QFileDialog.getOpenFileName(QtGui.QApplication.activeWindow(),' | ||
+ | | ||
+ | ===== Récupérer la valeur d'une contrainte ===== | ||
+ | |||
+ | variable = App.ActiveDocument.getObject(' | ||
+ | |||
+ | Exemples | ||
+ | longueur = App.ActiveDocument.getObject(' | ||
+ | largeur = App.ActiveDocument.getObject(' | ||
+ | | ||
+ | |||
+ | ===== Faire une opération booléenne ===== | ||
+ | |||
+ | Il faut au préalable charger la libraire BOPFeatures qui est utilisée pour les opération booléennes de l' | ||
+ | |||
+ | from BOPTools import BOPFeatures | ||
+ | puis : | ||
+ | bp = BOPFeatures.BOPFeatures(App.activeDocument()) #On crée l' | ||
+ | bp.make_cut([" | ||
+ | App.ActiveDocument.recompute() #On calcule l' |