Comment installer des macros

    From FreeCAD Documentation
    This page is a translated version of the page How to install macros and the translation is 100% complete.
    Freecad.svg Tutoriel
    Thème
    Programmation
    Niveau
    Programmeur moyen
    Temps d'exécution estimé
    15 minutes
    Auteurs
    Mario52
    Version de FreeCAD
    Toutes versions
    Fichiers exemples
    None
    Voir aussi
    None

    Description

    Depuis la v0.17, il est facile d'ajouter des macros en utilisant le Gestionnaire des extensions. Un utilisateur régulier n'a pas besoin de faire plus que d'utiliser cet outil. Continuez à lire pour plus d'informations sur l'installation de macros.

    Les macros sont des séquences de commandes utilisées pour effectuer une opération de dessin complexe. Les macros sont des scripts en Python, ce qui signifie qu'il s'agit de fichiers texte pouvant être écrits et modifiés à l'aide d'un éditeur de texte.

    Alors que les scripts Python ont normalement pour extension .py, les macros FreeCAD doivent avoir comme extension .FCMacro. Une collection de macros écrites par des utilisateurs expérimentés se trouve dans la page Macros.

    Voir Introduction à Python pour en savoir plus sur le langage de programmation Python, puis sur Tutoriel sur les scripts Python et sur principes de base des scripts FreeCAD pour lancer la création de scripts dans FreeCAD.

    Ici une video sur l'installation installing FreeCAD macros in Ubuntu.

    Le menu Macro et sa barre d'outils

    Barre d'outils

    Menu

    Outre les outils de la barre d'outils, les fonctions suivantes sont également disponibles dans le menu Macro.

    Répertoires des macros

    Les macros sont créées dans un dossier spécifique du répertoire FreeCAD de l'utilisateur. Ce répertoire peut être configuré dans la boîte d'exécution des macros ou dans l'éditeur de préférences, via le menu Édition → Préférences → Python → Macro → Paramètres d'enregistrement des macros.

    Les macros téléchargées doivent également être placées dans ce répertoire.

    Répertoire par défaut

    Les macros peuvent être simplement copiées dans

    $ROOT_DIR/
    

    $ROOT_DIR est un des premiers répertoire recherché par FreeCAD au démarrage.

    Le $ROOT_DIR pourrait être un répertoire système, auquel cas la macro est installée pour tous les utilisateurs.

    • Sous Linux, il s’agit généralement de /usr/share/freecad/.
    • Sous Windows, il s’agit généralement de C:\Program Files\FreeCAD\.
    • Sous Mac OSX, il s’agit généralement de /Applications/FreeCAD/.

    Le $ROOT_DIR pourrait être le répertoire d'un utilisateur particulier.

    • Sous Linux, il s’agit généralement de /home/username/.local/share/FreeCAD/ (version 0.20 et suivantes) ou /home/username/.FreeCAD/ (version 0.19 et précédentes).
    • Sous Windows, il s’agit généralement de C:\Users\username\AppData\FreeCAD\
    • Sous Mac OSX, il s’agit généralement de /Users/username/Library/Preferences/FreeCAD/.

    Configuration du répertoire utilisateur

    1. Ouvrez le menu Macro → Std DlgMacroExecute.svg Macros... pour ouvrir la boîte d'exécution des macros.

    Dxf Importer Install 01.png

    Ouverture de la boîte de dialogue de lancement des macro

    2. Définissez l'emplacement User macros location approprié.

    • Linux: généralement /home/username/.local/share/FreeCAD/ (version 0.20 et suivantes) ou /home/username/.FreeCAD/ (version 0.19 et précédentes)
    • Windows: généralement C:\Users\username\AppData\Roaming\FreeCAD\.
    • MacOS: généralement /Users/username/Library/Preferences/FreeCAD/.
    Dxf Importer Install 02.png

    Paramétrage du répertoire des macros

    3. Accédez à ce répertoire sur votre ordinateur.

    • Linux: collez l'adresse dans votre gestionnaire de fichiers, "Nautilus" ou autre. Vous devrez peut-être appuyer sur Ctrl+H pour rendre le répertoire masqué .FreeCAD / visible.
    • Windows: collez l'adresse dans votre "Explorateur de fichiers" et confirmez.
    • MacOS: localisez le dossier dans le "Finder" ou collez l'adresse dans un "Explorateur de fichiers"; rappelez-vous du préfixe file:/// dans l'explorateur de fichiers pour un fichier sur le disque.
    Dxf Importer Install 03.png

    Accés au répertoire des macros dans le système d'exploitation

    4. Ajoutez des fichiers de macro à ce répertoire.

    • Linux: laissez le gestionnaire de fichiers ouvert et marquez l’emplacement pour un accès plus rapide.
    • Windows: laissez ouvert l'explorateur de fichiers.
    • MacOS: laissez une fenêtre du "Finder" ouverte ou enregistrez l'emplacement dans votre "Explorateur de fichiers", ou configurez un "Alias" pour le désigner, ou faites glisser le dossier dans la "Barre latérale" du "Finder" afin il est là pour utiliser d'autres programmes tels que des éditeurs de texte.
    Dxf Importer Install 04.png

    Le répertoire des macros

    Installation de macros

    Méthode automatique

    À partir de FreeCAD 0.17, utilisez le Std AddonMgr.svg Gestionnaire des extensions dans Outils → Gestionnaire des extensions pour installer une macro incluse dans le dépôt FreeCAD-macros.

    Dans les versions précédentes de FreeCAD, vous pouviez utiliser deux méthodes automatisées pour installer des macros et d’autres extensions :

    • addons_installer.FCMacro: elle-même une macro, elle était le précurseur du gestionnaire des extensions et est hébergée dans le répertoire FreeCAD-addons. Vous n'avez pas besoin d'utiliser cet outil dans les nouvelles installations de FreeCAD.
    • freecad-pluginloader: également une macro, elle pourrait être utilisée pour installer de nouveaux composants dans FreeCAD. Ce n'est plus développé.

    La méthode recommandée pour installer des extensions, c'est-à-dire des Ateliers externes et les macros, est le Std AddonMgr.svg Gestionnaire des extensions. Toutefois, vous pouvez toujours ajouter des macros à votre système avec les méthodes manuelles décrites dans les sections suivantes. Ceci est utile si vous développez et testez votre propre code.

    Méthode manuelle 1. Copiez le code dans l'éditeur de macro

    Pour les macros relativement petites, 300 lignes ou moins, le code peut être copié et collé directement dans l'éditeur de macros FreeCAD.

    Nous utiliserons Part Prism Apothem.svg Macro Apothem Based Prism GUI par exemple.

    1. Allez sur la page wiki macro qui devrait être présente dans la liste Macros.

    S'il y a une icône personnalisée, téléchargez-la. Cliquez dessus avec le bouton droit de la souris et sélectionnez Save image as...; Placez l'icône dans le répertoire des macros. Cette icône peut être utilisée comme raccourci pour la macro dans une Barre d'outils personnalisée. L'icône par défaut est Text-x-python.png.

    Macro Install HowTo 28.png

    Téléchargement de l'icône depuis la page macro

    2. Dans la page macro, sélectionnez le code dans les sections Script ou Macro et copiez-le.

    3. Dans FreeCAD, ouvrez le menu Macro → Std DlgMacroExecute.svg Macros... pour ouvrir la boîte d'exécution des macros.

    Dxf Importer Install 01.png

    Ouverture de la boîte de dialogue de lancement des macro

    4. Cliquer Créer.

    Macro Install HowTo 17.png

    Création d'une nouvelle macro

    5. Entrez le nom de la macro, ici Macro_Apothem_Based_Prism_GUI, puis appuyez sur OK.

    Macro Install HowTo 18.png

    Renseignement du nom de la macro

    6. La fenêtre d'édition de macros de FreeCAD est maintenant disponible et porte le nom de notre future macro.

    Macro Install HowTo 19.png

    Fenêtre d'édition de macros

    7. Collez le code dans la fenêtre de l'éditeur puis cliquez sur la croix de l'onglet pour fermer la fenêtre.

    Macro Install HowTo 20.png

    Fermeture de la fenêtre

    8. Une fenêtre apparaît vous demandant de confirmer l'enregistrement du code. Cliquez sur Oui. Vous pouvez également utiliser Ctrl+S pour enregistrer le fichier.

    Redémarrez FreeCAD pour enregistrer correctement la nouvelle macro.

    Macro Install HowTo 27.png

    Fenêtre pour confirmer la sauvegarde

    9. Ouvrez à nouveau le menu, Macro → Std DlgMacroExecute.svg Macros..., sélectionnez la nouvelle macro et appuyez sur Exécuter.

    Macro Install HowTo 21.png

    Cliquez sur votre macro pour la jouer

    10. La macro s'exécute. Remplissez les champs avec vos valeurs et cliquez sur le bouton OK.

    Macro Install HowTo 22.png

    La macro en action; remplissez les informations et appuyez sur OK lorsque vous êtes prêt

    11. Cette macro doit renvoyer une erreur si aucun document n'est actif. Les autres macros ouvrent un nouveau document s'il n'en existe pas.

    Créez un nouveau document avec Fichier → Std New.svg Nouveau puis répétez les étapes précédentes pour exécuter la macro.

    Macro Install HowTo 23.png

    La macro renvoyant une erreur si aucun document n'est actif

    12. Lorsqu'un document actif est disponible, la macro s'exécute et crée un objet.

    Macro Install HowTo 24.png

    Objet crée par la macro

    13. Vous pouvez ouvrir à nouveau la macro dans l'éditeur pour l'exécuter ou la modifier. Accédez à Macro → Std DlgMacroExecute.svg Macros..., sélectionnez la macro et appuyez sur Modifier.

    Macro Install HowTo 25.png

    Ouverture de la macro dans l'éditeur

    14. La macro peut maintenant être exécutée avec Macro → Std DlgMacroExecuteDirect.svg Lancer la macro ou en cliquant sur le Std DlgMacroExecuteDirect.svg Lancer la macro dans la barre d'outils.

    Macro Install HowTo 26.png

    Exécution de la macro chargée dans l'éditeur

    Méthode manuelle 2. Ajouter un fichier de macro à partir d'un fichier .zip compressé

    Certaines macros sont trop importantes pour être copier-coller dans l'éditeur de macros être hébergées sur le wiki. Dans ce cas, le code peut être hébergé ailleurs, dans un répertoir Github ou sur le Forum FreeCAD. Le code peut également être compressé dans un fichier .zip, tarball .tar.xz ou dans un autre type d'archive s'il contient plusieurs fichiers. Si le code est distribué de cette manière, l'archive doit être extraite et les fichiers placés dans le répertoire macros.

    Nous utiliserons Text-x-python.png Macro screw maker par exemple.

    1. Téléchargez le code compressé à partir du forum,Screw Maker.

    Vous devez utiliser un décompresseur pour obtenir les fichiers internes.

    • Pour Windows, vous pouvez utiliser une application telle que 7-zip ou L-Zarc ou [http: //www.quickzip.org/quickzip51.html quickzip].
    • Pour Linux, vous pouvez utiliser une commande du terminal
    unzip your_file.zip -d your_directory
    

    2. Téléchargez l'archive compressée avec le code de la macro dans un dossier local.

    Macro Install HowTo 01.png

    Téléchargement de l'archive compressée avec le code de macro dans un dossier local

    3. Décompressez votre fichier dans le dossier.

    Macro Install HowTo 02.png

    Décompressez votre fichier dans le dossier

    4. Le décompresseur crée un nouveau répertoire avec les fichiers décompressés.

    Macro Install HowTo 03.png

    Le nouveau répertoire créé après la décompression de l'archive

    5. Accédez au nouveau répertoire et copiez ou coupez le fichier macro.

    Macro Install HowTo 04.png

    Saisie du nouveau répertoire créé avec le fichier de macro décompressé

    6. Accédez au répertoire des macros et collez le fichier à cet endroit.

    Macro Install HowTo 05.png

    Placer le fichier macro dans le répertoire macro

    7. Dans FreeCAD, ouvrez le menu Macro → Std DlgMacroExecute.svg Macros... pour ouvrir la boîte d'exécution des macros.

    Macro Install HowTo 06.png

    Ouverture de la boîte de dialogue de lancement des macro

    8. Sélectionnez la nouvelle macro et appuyez sur Execute.

    Macro Install HowTo 07.png

    Cliquez sur votre macro pour la jouer

    9. La macro s'exécute maintenant. Sélectionnez les options souhaitées et cliquez sur le bouton Create.

    Macro Install HowTo 08.png

    La macro en action; sélectionnez les options souhaitées et appuyez sur Créer lorsque vous êtes prêt

    Macro Install HowTo 30.png

    Objet crée par la macro

    Exécuter une macro en ligne de commande

    Ligne de commande pour exécuter une macro en (.FCMacro or .py)

    sur Windows

    "C:\Program Files\FreeCAD\bin\FreeCAD.exe" "C:\Users\userName\AppData\Roaming\FreeCAD\Mod\WorkFeature\start_WF.FCMacro"
    

    sur Linux

    todo
    

    Erreurs dans les macros

    Exemples de code erroné dû à des erreurs d'indentation

    L'espace blanc au début des lignes (indentation) dans le langage de programmation Python est très important et fait partie intégrante du code. Un espace inapproprié peut empêcher le code de s'exécuter ou présenter des erreurs.

    Cette section décrit certaines erreurs susceptibles d’être rencontrées lors des opérations de copier-coller et d’écriture de code macro.

    Une erreur d’indentation typique ressemble à ceci:

    <unknown exception traceback><type 'exceptions.IndentationError'>: ('expected an indented block', ('C:/Users/d/AppData/Roaming/FreeCAD/Macro_Apothem_Based_Prism_GUI.FCMacro', 21, 3, 'def priSm(self):\n'))
    

    Exemple 1

    Si le code manque d'indentation, le code ne fonctionnera pas. Les définitions de classe (class) et de fonction (def ()) ainsi que les structures de contrôle (if, while, for) doivent être suivies d'un bloc de code en retrait.

    Cette erreur est possible si l'utilisateur ne copie pas le code correctement et si tous les espaces sont supprimés par inadvertance.

    Macro Install HowTo 09.png

    Code Python sans indentation; cela provoquera une erreur quand il sera exécuté

    Problème d'indentation résolu.

    Macro Install HowTo 10.png

    Code Python avec l'indentation correcte

    Si le code est sélectionné, toutes les lignes doivent être mises en surbrillance jusqu'au bord gauche indiquant que les lignes sont alignées.

    Macro Install HowTo 11.png

    Code Python en surbrillance indiquant que toutes les lignes commencent au bord gauche

    Exemple 2

    Si un espace supplémentaire est introduit au début de toutes les lignes, l'interpréteur Python échouera et se plaindra de l'indentation inutile. Dans ce cas, toutes les lignes nécessitent la suppression de l'espace initial.

    Macro Install HowTo 12.png

    Code Python avec espace supplémentaire sur chaque ligne

    Exemple 3

    Ici, le code a été copié depuis un fil de forum en utilisant le bouton Select all. Apparemment, le choix est bon.

    Macro Install HowTo 14.png

    Code Python copié à partir d'un forum

    Cependant, lorsque la sélection est collée dans l'éditeur de macro, une indentation indésirable semble apparaître.

    Macro Install HowTo 15.png

    Code Python copié d'un forum dans l'éditeur de macros; l'indentation inutile est ajoutée

    Dans ce cas, les espaces initiaux doivent être supprimés. Cela peut être fait avec un éditeur de texte spécialisé pour réduire rapidement l'indentation des lignes.

    Sous Windows, ++ peut effectuer une sélection avec Alt et le déplacement de la souris, puis utiliser Edit → Indent → Diminuer l'indentation.

    Macro Install HowTo 16.png

    Code Python avec l'indentation correcte

    Exemple 4

    Ici, la sélection sélectionne également les numéros de ligne dans l'exemple de code. Si cette sélection est collée dans l'éditeur de macro, cela ne fonctionnera pas. Tous les numéros de ligne doivent être supprimés et les espaces ajustés de manière à ce que le code Python présente l'indentation appropriée.

    Macro Install HowTo 29.png

    Sélection qui sélectionne également les numéros de ligne; si ce code est collé dans l'éditeur de macro, cela ne fonctionnera pas

    Bon code

    Macro Install HowTo 13.png

    Code Python avec l'indentation correcte

    Pour ceux qui ne voient aucune information s'afficher

    Les macros peuvent générer des informations dans la vue du rapport afin de détailler l'action du code en cours d'exécution.

    Si aucune information n'est affichée, assurez-vous que la vue du rapport et la console Python sont visibles et que la sortie est dirigée vers la vue du rapport.

    Informations sur l'affichage

    Les macros FreeCAD ont deux méthodes pour afficher des informations dans la vue rapport.

    Les fonctions FreeCAD

    FreeCAD.Console.PrintMessage("Hello World! \n")
    FreeCAD.Console.PrintError("Hello World! \n")
    FreeCAD.Console.PrintWarning("Hello World! \n")
    

    La simple fonction Python

    print("Hello World!")
    

    Activer la vue rapport

    Pour voir les informations affichées dans la console, vous devez:

    1. Accédez au menu Affichage → Panneaux.

    Macro Install HowTo 31.png
    Macro Install HowTo 32.png

    Rendre les panneaux visibles dans le menu Affichage → Panneaux

    2. Cochez Report view et Python console.

    Macro Install HowTo 33.png

    Activation de l'affichage du rapport et de la console Python

    3. Les panneaux sont maintenant visibles et les commandes telles que FreeCAD.Console.PrintMessage() affichent maintenant les informations qui apparaissent dans la Affichage du rapport.

    Macro Install HowTo 34.png

    Fenêtre principale de FreeCAD avec la vue Rapport et la console Python

    Activer la commande print()

    FreeCAD devra peut-être être configuré pour que la fonction print() de Python redirige correctement sa sortie vers la vue du rapport.

    1 : cliquez sur le menu Édition puis Préférences

    1. Allez dans Editeur de Préférences avec le menu Édition → Préférences.

    Macro Install HowTo 35.png

    Entrer dans l'éditeur de préférences

    2. Accédez à la section Python puis à Fenêtre de sortie → Interpréteur Python.

    Macro Install HowTo 36.png

    Préférences de la fenêtre de sortie

    3. Cochez les deux cases:

    • Case a cocher O.png Rediriger es messages internes Python vers la vue rapport
    • Case a cocher O.png Rediriger les erreurs internes de Python vers la vue rapport

    et validez en cliquant sur le bouton OK.

    Macro Install HowTo 37.png

    Redirection interne

    Macro Install HowTo 38.png

    Commandes Python imprimant des informations dans la vue rapport