Command/fr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(20 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
==Introduction==
== Introduction ==


{{TOCright}}
{{TOCright}}


Une [[Command/fr|commande]] est ce qui est en cours d’exécution lorsque vous appuyez sur un bouton de la barre d’outils ou tapez un raccourci clavier. Cela peut être une action très simple, comme changer le niveau de zoom de la [[3D view/fr|vue 3D]] ou faire pivoter le point de vue, ou un système complexe qui ouvrira des boîtes de dialogue et attendra que l'utilisateur exécute des tâches spécifiques.
<div class="mw-translate-fuzzy">
Une commande FreeCAD est ce qui est en cours d’exécution lorsque vous appuyez sur un bouton de la barre d’outils ou tapez un raccourci clavier. Cela peut être une action très simple, comme changer le niveau de zoom de la vue 3D ou faire pivoter le point de vue, ou un système complexe qui ouvrira des boîtes de dialogue et attendra que l'utilisateur exécute des tâches spécifiques.
</div>


Chaque commande FreeCAD a un nom unique, qui apparaît dans la page [[:Category:Command_Reference|:Category:Command_Reference]]. Les commandes peuvent être lancées à l'aide d'un bouton de la barre d'outils, d'un élément de menu, d'un script [[Python/fr|Python]] ou de la [[Python_console/fr|console Python]], en exécutant :
<div class="mw-translate-fuzzy">
Chaque commande FreeCAD a un nom unique, qui apparaît dans la page [[: Category: Command_Reference]]. Les commandes peuvent être lancées à l'aide d'un bouton de la barre d'outils, d'un élément de menu, d'un script python ou de la console python, en exécutant:
</div>


{{Code|code=
FreeCADGui.runCommand("my_Command_Name")
FreeCADGui.runCommand("my_Command_Name")
}}


== Background ==
== Contexte ==


Les commandes FreeCAD sont définies par atelier. Les ateliers ajoutent normalement leurs définitions de commande au moment de l’initialisation de FreeCAD. La commande existe donc et est disponible dès le démarrage de FreeCAD, que l'atelier correspondant ait été activé ou non. Dans certains cas, cependant, l'auteur de l'atelier pourrait avoir décidé de ne pas surcharger/alourdir le processus de démarrage de FreeCAD et de charger les définitions de commande uniquement à l'initiation de l'atelier. Dans ce cas, la commande ne sera disponible qu'après l'activation de l'atelier (vous y avez basculé au moins une fois à l'aide du sélecteur d'atelier).
<div class="mw-translate-fuzzy">
Les commandes FreeCAD sont définies par atelier. Les ateliers ajoutent normalement leurs définitions de commande au moment de l’initialisation de FreeCAD. La commande existe donc et est disponible dès le démarrage de FreeCAD, que le Atelier correspondant ait été activé ou non. Dans certains cas, cependant, l'auteur d'Atelier aurait peut-être décidé de ne pas surcharger le processus de démarrage de FreeCAD et de charger les définitions de commande uniquement à l'initiation du workbench. Dans ce cas, la commande ne sera disponible qu'après l'activation du plan de travail (vous y avez basculé au moins une fois à l'aide du sélecteur de plan de travail).
</div>


Comme la plupart d’entre elles nécessitent une interaction de l’utilisateur, les commandes FreeCAD ne sont disponibles qu’en mode graphique, et non en mode console. Cependant, pour des raisons pratiques, la plupart des commandes FreeCAD auront une fonction python correspondante (telle que {{incode|Part.makeBox}} ou {{incode|Draft.makeLine}}) ou exécuteront du code très facile à répliquer dans un script python et/ou dans des [[macros/fr|macros]].
<div class="mw-translate-fuzzy">
omme la plupart d’entre elles nécessitent une interaction de l’utilisateur, les commandes FreeCAD ne sont disponibles qu’en mode graphique, et non en mode console. Cependant, pour des raisons pratiques, la plupart des commandes FreeCAD auront une fonction python correspondante (telle que Part.makeBox ou Draft.makeLine) ou exécuteront du code très facile à répliquer dans un script python.
</div>


Les commandes peuvent être définies en C ++ ou en Python.
Les commandes peuvent être définies en C ++ ou en Python.


== Commandes définies en C++ ==
== Example ==


Exemple d'une définition de commande C++, généralement définie suivant la structure {{FileName|Mod/ModuleName/Gui/Command.cpp}}.
<div class="mw-translate-fuzzy">

Exemple de définition de commande C ++ (généralement définie dans /Mod/ModuleName/Gui/Command.cpp):
{{Code|lang=cpp|code=
</div>
{{Code|code=
DEF_STD_CMD_A(StdCmdMyCommand);
DEF_STD_CMD_A(StdCmdMyCommand);


Line 61: Line 54:
}}
}}


== Commandes définies en Python ==
et une commande similaire en python (pas de règle pour ce qui doit être fait, chaque atelier python fait comme bon lui semble ...)

Exemple d'une définition de commande Python, elle peut être placée dans un répertoire comme {{FileName|Mod/ModuleName/tools/commands.py}}.
{{Code|code=
{{Code|code=
from PySide.QtCore import QT_TRANSLATE_NOOP


class MyCommand:
class MyCommand:
"""Explanation of the command."""


def __init__(self):
def __init__(self):
# you can add things here like defining some variables that must exist at all times
"""Initialize variables for the command that must exist at all times."""
pass


def GetResources(self):
def GetResources(self):
"""Return a dictionary with data that will be used by the button or menu item."""
return {'Pixmap' : 'MyCommand.svg',
'Accel' : "Ctrl+A",
return {'Pixmap': 'MyCommand.svg',
'MenuText': QtCore.QT_TRANSLATE_NOOP("My_Command", "My Command"),
'Accel': "Ctrl+A",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("My_Command", "Runs my command in the active document")}
'MenuText': QT_TRANSLATE_NOOP("My_Command", "My Command"),
'ToolTip': QT_TRANSLATE_NOOP("My_Command", "Runs my command in the active document")}


def Activated(self):
def Activated(self):
# place here the code to be executed when the command is ran
"""Run the following code when the command is activated (button press)."""
print("Activated")


def isActive(self):
def IsActive(self):
# here you have a chance to return True or False depending if your command must be shown as active or inactive (greyed).
"""Return True when the command should be active or False when it should be disabled (greyed)."""
return True


# the command must be "registered" in FreeCAD's command system
# The command must be "registered" with a unique name by calling its class.
FreeCADGui.addCommand('My_Command',MyCommand())
FreeCADGui.addCommand('My_Command', MyCommand())
}}
}}


== Exemples ==
{{Userdocnavi{{#translation:}}}} <!-- Anything below this line must come after a closing translate tag -->

Voir [[Line_drawing_function/fr|Fonction - tracer une ligne]].

<!-- Anything below this line must come after a closing translate tag -->
{{Powerdocnavi{{#translation:}}}}
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Command Reference{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]
[[Category:Glossary{{#translation:}}]]
[[Category:Glossary{{#translation:}}]]

Latest revision as of 09:12, 18 April 2022

Introduction

Une commande est ce qui est en cours d’exécution lorsque vous appuyez sur un bouton de la barre d’outils ou tapez un raccourci clavier. Cela peut être une action très simple, comme changer le niveau de zoom de la vue 3D ou faire pivoter le point de vue, ou un système complexe qui ouvrira des boîtes de dialogue et attendra que l'utilisateur exécute des tâches spécifiques.

Chaque commande FreeCAD a un nom unique, qui apparaît dans la page :Category:Command_Reference. Les commandes peuvent être lancées à l'aide d'un bouton de la barre d'outils, d'un élément de menu, d'un script Python ou de la console Python, en exécutant :

FreeCADGui.runCommand("my_Command_Name")

Contexte

Les commandes FreeCAD sont définies par atelier. Les ateliers ajoutent normalement leurs définitions de commande au moment de l’initialisation de FreeCAD. La commande existe donc et est disponible dès le démarrage de FreeCAD, que l'atelier correspondant ait été activé ou non. Dans certains cas, cependant, l'auteur de l'atelier pourrait avoir décidé de ne pas surcharger/alourdir le processus de démarrage de FreeCAD et de charger les définitions de commande uniquement à l'initiation de l'atelier. Dans ce cas, la commande ne sera disponible qu'après l'activation de l'atelier (vous y avez basculé au moins une fois à l'aide du sélecteur d'atelier).

Comme la plupart d’entre elles nécessitent une interaction de l’utilisateur, les commandes FreeCAD ne sont disponibles qu’en mode graphique, et non en mode console. Cependant, pour des raisons pratiques, la plupart des commandes FreeCAD auront une fonction python correspondante (telle que Part.makeBox ou Draft.makeLine) ou exécuteront du code très facile à répliquer dans un script python et/ou dans des macros.

Les commandes peuvent être définies en C ++ ou en Python.

Commandes définies en C++

Exemple d'une définition de commande C++, généralement définie suivant la structure Mod/ModuleName/Gui/Command.cpp.

DEF_STD_CMD_A(StdCmdMyCommand);

StdCmdMyCommand::StdCmdMyCommand()
  : Command("Std_My_Command")
{
    sGroup        = QT_TR_NOOP("File");
    sMenuText     = QT_TR_NOOP("My Command");
    sToolTipText  = QT_TR_NOOP("Runs my command in the active document");
    sWhatsThis    = "Std_MyCommand";
    sStatusTip    = QT_TR_NOOP("Runs my command in the active document");
    sPixmap       = "MyCommand.svg";
    sAccel        = "Ctrl+A";
}

void StdCmdExport::activated(int iMsg)
{
    // place here the code to be executed when the command is ran
}

bool StdCmdMyCommand::isActive(void)
{
    // here you have a chance to return true or false depending if your command must be shown as active or inactive (greyed).
}

// the command must be "registered" in FreeCAD's command system
CommandManager &rcCmdMgr = Application::Instance->commandManager();
rcCmdMgr.addCommand(new StdCmdMyCommand());

Commandes définies en Python

Exemple d'une définition de commande Python, elle peut être placée dans un répertoire comme Mod/ModuleName/tools/commands.py.

from PySide.QtCore import QT_TRANSLATE_NOOP


class MyCommand:
    """Explanation of the command."""

    def __init__(self):
        """Initialize variables for the command that must exist at all times."""
        pass

    def GetResources(self):
        """Return a dictionary with data that will be used by the button or menu item."""
        return {'Pixmap': 'MyCommand.svg',
                'Accel': "Ctrl+A",
                'MenuText': QT_TRANSLATE_NOOP("My_Command", "My Command"),
                'ToolTip': QT_TRANSLATE_NOOP("My_Command", "Runs my command in the active document")}

    def Activated(self):
        """Run the following code when the command is activated (button press)."""
        print("Activated")

    def IsActive(self):
        """Return True when the command should be active or False when it should be disabled (greyed)."""
        return True

# The command must be "registered" with a unique name by calling its class.
FreeCADGui.addCommand('My_Command', MyCommand())

Exemples

Voir Fonction - tracer une ligne.