Comment installer une Macro

From FreeCAD Documentation
Jump to: navigation, search
This page is a translated version of the page How to install macros and the translation is 1% complete.

Outdated translations are marked like this.
Other languages:
čeština • ‎Deutsch • ‎English • ‎español • ‎français • ‎hrvatski • ‎italiano • ‎română • ‎русский • ‎svenska

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 .py extension, FreeCAD macros should have the .FCMacro 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

Menu

Besides the tools in the toolbar, the following functions are also available in the Macro menu.

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 Edit → Preferences → General → Macro → Macro recording settings.

Downloaded macros should also be placed in this directory.

Default directory

Macros can be simply copied into

$ROOT_DIR/

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

The $ROOT_DIR could be a system wide directory, in which case the macro is installed for all users.

  • On Linux it is usually /usr/share/freecad/
  • On Windows it is usually C:\Program Files\FreeCAD\
  • On Mac OSX it is usually /Applications/FreeCAD/

The $ROOT_DIR could be a particular user's directory.

  • On Linux it is usually /home/username/.FreeCAD/
  • On Windows it is usually C:\Users\username\Application Data\FreeCAD\
  • On Mac OSX it is usually /Users/username/Library/Preferences/FreeCAD/

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

Ouvre la fenêtre des macros

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"
localisation des macros

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)
Allez vers le répertoire des macros

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)
Le répertoire des macros

Installing macros

Automatic method

Starting with FreeCAD 0.17, use the Addon Manager in Tools → Addon manager 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 Part Prism Apothem.svg 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 Save image as...; 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 Text-x-python.png.

Download icon

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

Dxf Importer Install 01.png

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

La fenêtre des fichiers macros s'ouvre

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 Ok

Entrez le nom de la macro

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

La fenêtre d'édition de macros de FreeCAD est maintenant disponible

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

Fermez la fenêtre

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

Restart FreeCAD to correctly register the new macro.

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

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

remplissez les champs avec vos valeurs

9 : La macro retourne une erreur ! nous n'avons pas de document ouvert, ouvrons un document Document-new.svg 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 → Document-new.svg New, and then repeat the previous steps to execute the macro.

La macro retourne une erreur !

10 : Et 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

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

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 Text-x-python.png 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

2 : Décompressez votre fichier dans le dossier.

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é

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

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

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

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

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

Votre macro est exécutée
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

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

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

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

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

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

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

9 : 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
Cliquez Affichage puis Vues

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

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

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

Menu Édition

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

General

3 : cochez les deux cases:

Case a cocher O.png Rediriger les 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

Redirection interne
le setup est complet