How to install macros/fr

Description
Ce petit tutoriel vous guide sur la façon d'utiliser les macros disponibles et de les incorporer dans l'éditeur de FreeCAD pour pouvoir les faire fonctionner.

Macros are sequences of commands which are used to perform a complex drawing operation. Macros are Python scripts, which means they are text files that can be written and edited with a text editor.

While Python scripts normally have the extension, FreeCAD macros should have the  extension. A collection of macros written by experienced users is found in the macros recipes page.

See Introduction to Python to learn about the Python programming language, and then Python scripting tutorial and FreeCAD Scripting Basics to learn about writing macros.

Here is a video on installing FreeCAD macros in Ubuntu.

Le menu Macro et la barre d'outils disponible pour les macros
Lancer l'enregistrement de la macro Arrête l'enregistrement Ouvre le menu des macros Exécute la macro Debug la macro Arrête le débogage

Menu
Besides the tools in the toolbar, the following functions are also available in the menu.
 * [[Image:Debug-start.svg|32px|start]] Debug Start
 * [[Image:Debug-stop.svg|32px|stop]] Debug Stop
 * Step over
 * Step into
 * Toggle breakpoint

Localisation et destination des macros
Macros are created in a specific folder under the user's FreeCAD directory. This directory can be configured in the execute macro dialog, or in the Preferences Editor, through the menu.

Downloaded macros should also be placed in this directory.

Default directory
Macros can be simply copied into

where is a top level directory searched by FreeCAD on startup.

The could be a system wide directory, in which case the macro is installed for all users.
 * On Linux it is usually
 * On Windows it is usually
 * On Mac OSX it is usually

The could be a particular user's directory.
 * On Linux it is usually
 * On Windows it is usually
 * On Mac OSX it is usually

1: Cliquer Menu > Macro > Macros (ou cliquez sur le bouton "pour ouvrir une boîte de dialogue et vous permettre d'exécuter une macro enregistrée")



3 : l'adresse de destination des Macros est (ici dans cet exemple C:\Users\your_user_name\AppData\Roaming\FreeCAD\ )
 * Windows : en général drive:\Users\your_user_name\AppData\Roaming\FreeCAD\
 * Ubuntu : en général /home/your_user_name/.FreeCAD
 * Macintosh : habituellement sous cette forme "/Users/your_user_name/Library/Preferences/FreeCAD"



5 : recherche du fichier de destination dans :
 * Windows : collez l'adresse dans la boîte de dialogue de votre explorateur et confirmez
 * Macintosh : recherchez le dossier dans le Finder ou collez l'adresse dans un navigateur (n'oubliez pas le préfixe "file:///" dans le navigateur pour un fichier sur le disque)



6 : gardez votre explorateur ouvert
 * Windows : laissez votre explorateur ouvert
 * Macintosh : soit laisser la fenêtre du Finder ouverte ou le chemin de l'emplacement dans votre navigateur, ou mettez en place un alias pour pointer sur lui, ou faites glisser le dossier dans la barre latérale du Finder de sorte qu'il puisse être utilisé par d'autres programmes tels que les éditeurs de texte, etc. (note: La version 0.14 de FreeCAD ne supporte pas les Alias)



Automatic method
Starting with FreeCAD 0.17, use the Addon Manager in to install a macro that has been included in the FreeCAD-macros repository.

In past versions of FreeCAD you could use two automated ways to install macros and other addons:
 * addons_installer.FCMacro: itself a macro, this was the precursor to the Addon Manager, and is hosted in the FreeCAD-addons repository. You don't need to use this tool in new installations of FreeCAD.
 * freecad-pluginloader: also a macro, it could be used to install new components to FreeCAD. It is no longer developed.

The recommended way to install addons, that is, external workbenches and macros, is the Addon Manager. However, you can still add macros to your system with the manual methods described in the following sections; this is useful if you are developing and testing your own code.

Méthode copier le code à partir d'une fenêtre et coller dans l'éditeur de FreeCAD
For macros that are relatively small, 300 lines or less, the code can be copied and pasted directly into the FreeCAD macro editor.

Pour l'exemple nous allons copier la macro Macro_Apothem_Based_Prism_GUI

S'il y a un ou plusieurs icône(s) téléchargez les aussi, positionnez votre souris sur l'icône cliquez sur le bouton droit et cliquez sur "Enregistrez l'image sous..." cet icône ou les icônes seront placés dans le répertoire des macros et un de ces icônes servira comme icône de raccourci à placer sur la barre des tâches.

If there is a custom icon download it; click on it with the right mouse button and select ; place the icon in the macros directory. This icon can be used as a shortcut for the macro in a custom toolbar. The default icon is.



Après avoir copié votre code nous allons coller le code dans l'éditeur de FreeCAD.

1 : Ouvrez FreeCAD et ouvrons l'éditeur de code incorporé dans FreeCAD



2 : La fenêtre des fichiers macros s'ouvre, cliquez sur le bouton



3 : Une nouvelle fenêtre s'ouvre, entrez le nom de la macro a créer (ici "Macro_Apothem_Based_Prism_GUI") puis cliquez sur le bouton



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



5 : Coller votre code dans la fenêtre éditeur de macro et cliquez sur la petite croix pour fermer la fenêtre.



6 : Une fenêtre d'avertissement s'affiche et demande une confirmation de sauvegarde du code, cliquer sur le bouton

Restart FreeCAD to correctly register the new macro.



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



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



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, and then repeat the previous steps to execute the macro.



10 : Et voici notre prisme



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



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 vert dans la barre d'outils des macros



Méthode avec un fichier compressé .ZIP
Téléchargez votre fichier si c'est un fichier.zip (exemple) .(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



2 : Décompressez votre fichier dans le dossier.



3 : 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.



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.



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



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



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





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.

 : ('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 and function definitions, as well as control structures  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.



2 : le code a été corrigé les indentations sont à 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



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.



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

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



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



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 + Mouse dragging ou Menu > Édition > Indentation > Réduire l'indentation)

In Windows, Notepad++ can perform selection with + Mouse dragging, and then use.



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.



9 : 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

ou

Pour voir afficher ces renseignements dans la console vous devez :

1 : ouvrir FreeCAD





3 : 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"



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

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



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



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