Comment installer des macros

From FreeCAD Documentation
Revision as of 10:01, 20 July 2019 by David69 (talk | contribs) (Created page with "Redémarrez FreeCAD pour enregistrer correctement la nouvelle macro.")
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

Cette page vous montrera comment installer et utiliser FreeCAD macro.

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 Lancer la macro (???) ou dans Editeur de préférences via le menu Édition → Préférences → 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/.FreeCAD/.
  • Sous Windows, il s’agit généralement de C:\Users\username\Application Data\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 → Macro pour ouvrir la Lancer la macro.

Ouverture du dialogue macro

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

  • Linux: généralement /home/username/.FreeCAD/.
  • Windows: généralement C:\Users\username\AppData\Roaming\FreeCAD\.
  • MacOS: généralement /Users/username/Library/Preferences/FreeCAD/.

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.

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.

Le répertoire des macros

Installation de macros

Méthode automatique

À partir de FreeCAD 0.17, utilisez le Addon Manager dans Outils → Addon manager pour installer une macro incluse dans le répertoire 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 addons:

  • addons_installer.FCMacro: elle-même une macro, elle était le précurseur du gestionnaire d'addon 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 addons, c'est-à-dire Ateliers externes et les macros, est le Addon Manager. 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 allons utiliser Macro Apothem Based Prism GUI comme 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 .

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 → Macros pour ouvrir la dialogue d'exécution de la macro.

Ouverture de la boîte de dialogue exécution d'une macro

4. Click Create.

Création d'une nouvelle macro

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

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.

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.

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.

Une fenêtre d'avertissement s'affiche et demande une confirmation de sauvegarde
Une fenêtre d'avertissement s'affiche et demande une confirmation de sauvegarde

7 : Répétez le numéro 1 :, Cliquez sur votre nouvelle macro et sur le bouton Exécuter

Cliquez sur votre macro et exécutez
Cliquez sur votre macro et exécutez

8 : La macro s'exécute , remplissez les champs avec vos valeurs et cliquez sur le bouton OK

remplissez les champs avec vos valeurs
remplissez les champs avec vos valeurs

9 : La macro retourne une erreur ! nous n'avons pas de document ouvert, ouvrons un document et répétons les opérations 7: et 8:. Certaines macros ouvrent un nouveau document s'il n'en trouve pas ou signalent l'erreur.

Create a new document with File → New, and then repeat the previous steps to execute the macro.

La macro retourne une erreur !
La macro retourne une erreur !

10 : Et voici notre prisme

voici notre prisme
voici notre prisme

11 : Vous pouvez aussi ouvrir votre macro dans l'éditeur pour l'exécuter ou la modifier, cliquez sur le bouton Éditer

Vous pouvez aussi ouvrir votre macro dans l'éditeur
Vous pouvez aussi ouvrir votre macro dans l'éditeur

12 : La macro est maintenant dans l'éditeur de FreeCAD vous pouvez l'exécuter par le menu "Macro > Lancer la macro" ou en cliquant sur le triangle File:Macro-execute.svg vert dans la barre d'outils des macros

La macro est dans l'éditeur de FreeCAD
La macro est dans l'éditeur de FreeCAD

Méthode avec un fichier compressé .ZIP

Téléchargez votre fichier si c'est un fichier.zip (exemple) [1].(la page de Macro_screw_maker)

We will use Macro screw maker as an example.

1. Download the compressed code from the forum, Screw Maker.

Des gratuits pour Windows 7-zip ou L-Zarc ou quickzip

1 : Téléchargez votre fichier dans votre dossier habituel , ici le dossier Temp

Téléchargez votre fichier
Téléchargez votre fichier

2 : Décompressez votre fichier dans le dossier.

Décompressez votre fichier.
Décompressez votre fichier.

3 : Le décompresseur a fini son travail et a créé un nouveau dossier avec le fichier décompressé

Le décompresseur a fini son travail et a créé un nouveau dossier avec le fichier décompressé
Le décompresseur a fini son travail et a créé un nouveau dossier avec le fichier décompressé

4 : Entrez dans le répertoire nouvellement créé , positionnez vous sur le fichier, cliquez avec le bouton droit de la souris et faites Couper.

Entrez dans le répertoire, positionnez vous sur le fichier
Entrez dans le répertoire, positionnez vous sur le fichier

5 : Retournez dans votre explorateur resté ouvert dans l'emplacement des macros (ici C:\Users\your_user_name\AppData\Roaming\FreeCAD\) et fermez l'explorateur.

5 : Retournez dans votre explorateur resté ouvert
5 : Retournez dans votre explorateur resté ouvert

6 : Ouvrez FreeCAD et entrez dans le menu macro par Menu > Macro > Macros ou cliquez sur le bouton "Ouvre une boîte de dialogue pour exécuter une macro enregistrée"

Ouvrez FreeCAD
Ouvrez FreeCAD

7 : La fenêtre des macros s'ouvre , sélectionnez votre macro et cliquez sur le bouton Exécuter

La fenêtre des macros s'ouvre
La fenêtre des macros s'ouvre

8 : Votre macro est exécutée entrez les données et cliquez sur le bouton Create

Votre macro est exécutée
Votre macro est exécutée
Whaouu
Whaouu

Errors in macros

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

L'indentation dans la programmation Python est très importante et fait partie intégrante du code, un espace ou un décalage inapproprié provoque une erreur d'indentation et la macro ne s'exécute pas ex :

This section describes some errors that may be encountered when copying and pasting, and writing macro code.

<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'))

<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'))

1 : Dans cet exemple le code a été collé sans aucune indentation et bien sûr ne fonctionne pas ! ici certainement une erreur du programmeur au moment de coller son code sur la page car il n'aurait jamais su le faire fonctionner.

If the code lacks any indentation, the code won't work. Class (class) and function definitions (def()), as well as control structures (if, while, for) should be followed by a block of indented code.

This error is possible if the user doesn't copy the code correctly, and all spaces are accidentally removed.

le code sans indentation
le code sans indentation

2 : le code a été corrigé les indentations sont à la bonne place.

le code est corrigé et l'indentation à la bonne place
le code est corrigé et l'indentation à la bonne place

3 : nous sélectionnons le code et nous voyons que la sélection est bien au bord du code , la macro doit fonctionner tout va bien

la macro doit fonctionner tout va bien
la macro doit fonctionner tout va bien

4 : Ici un espace supplémentaire est sélectionné (ça peut arriver) vous devez alors copier le code dans un traitement de texte pour supprimer un espace dans toutes les lignes

If an additional space is introduced at the beginning of all lines, the Python interpreter will fail and complain about unnecessary indentation. In this case, all lines need the initial space removed.

supprimer un espace dans toutes les lignes
supprimer un espace dans toutes les lignes

5 : Ici le code a été copié dans une fenêtre du forum avec le bouton Select all apparemment la sélection est bonne

Here the code has been copied from a forum thread by using the Select all button. Apparently the selection is good.

le code a été copié à partir d'une fenêtre du forum avec le bouton Select all
le code a été copié à partir d'une fenêtre du forum avec le bouton Select all

6 : Mais la sélection collée dans l'éditeur de FreeCAD donne une surprise, une indentation de quatre espaces a été ajoutée par le système ? le code n'est pas bon

une indentation de quatre espaces a été ajoutée par le système ? le code n'est pas bon
une indentation de quatre espaces a été ajoutée par le système ? le code n'est pas bon

7 : Vous devez effacer tous les espaces supplémentaires c'est à dire quatre espaces à chaque ligne (pour Windows le traitement de textes notepad-plus-plus permet sélection verticale avec une combinaison de touches Alt + Mouse dragging ou Menu > Édition > Indentation > Réduire l'indentation)

In Windows, Notepad++ can perform selection with Alt + Mouse dragging, and then use Edit → Indent → Decrease the indentation.

7 : Vous devez effacer quatre espaces à chaque ligne
7 : Vous devez effacer quatre espaces à chaque ligne

8 : Ici la sélection prend aussi les numéros de colonne qui donnera aussi une erreur

Here the selection also selects the line numbers in the code example. If this selection is pasted into the macro editor, it won't work. All line numbers need to be removed, and the spaces adjusted so that the Python code has the proper indentation.

8 : Ici la sélection prend aussi les numéros de colonne qui donnera aussi une erreur
8 : Ici la sélection prend aussi les numéros de colonne qui donnera aussi une erreur

9 : Code parfait.

Code parfait
Code parfait

Pour ceux qui ne voient aucune information s'afficher.

Certaines macros affichent des informations à l'écran en général elles s'affichent dans la Vue rapport

Macros may output information to the report view to detail what the code is doing when it is running.

If no information is displayed, make sure the report view and Python console are visible, and that the output is directed tot he report view.

FreeCAD utilise deux méthodes pour afficher les informations dans la fenêtre Vue rapport.

Printing information

FreeCAD macros have two methods to print information to the report view.

1 : Commandes

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

ou

print("Hello World!")

Pour voir afficher ces renseignements dans la console vous devez :

1 : ouvrir FreeCAD

Ouvrir FreeCAD
Ouvrir FreeCAD
Cliquez Affichage puis Vues
Cliquez Affichage puis Vues

3 : cochez Vue rapport et Console python

cochez Vue rapport et Console python
cochez Vue rapport et Console python

4 : les fenêtres sont activées et disponibles et les commandes comme "App.Console.PrintMessage("Hello World!\n")" seront affichées dans la "Vue rapport"

Hello World!
Hello World!

2 : la commande "print" qui est une commande Python

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

Menu Édition
Menu Édition

2 : dans la nouvelle fenêtre, cliquez sur Général et sélectionnez l'onglet Fenêtre de sortie

General
General

3 : cochez les deux cases:

Rediriger les messages internes Python vers la Vue rapport

Rediriger les erreurs internes de Python vers la Vue rapport

et validez en cliquant sur le bouton OK

Redirection interne
Redirection interne
le setup est complet
le setup est complet