Tutoriel Ajout d'un bouton dans la barre d'outils FEM

From FreeCAD Documentation
Revision as of 13:22, 1 January 2022 by David69 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Other languages:
English • ‎français • ‎polski
Freecad.svg Tutorial
Topic
FEM
Level
Avancé
Time to complete
60 min
Authors
JohnWang
FreeCAD version
0.19
Example files
None

Introduction

L'atelier FEM dispose de barres d'outils et de menus. Ce tutoriel montre comment ajouter un bouton de test à une barre d'outils. Il montre également comment ajouter un élément de menu à un menu.

La tâche peut être divisée en quatre parties :

  • Créer un nouveau fichier d'icône.
  • Enregistrer le nouveau fichier d'icône. Modification nécessaire dans src/Mod/Fem//Gui/Resources/Fem.qrc
  • Créer une nouvelle classe de commande. Modification nécessaire dans src/Mod/Fem/femcommands/commands.py
  • Ajout d'une nouvelle commande à l'atelier. Modification nécessaire dans src/Mod/Fem/Gui/Workbench.cpp

Créer un nouveau fichier d'icône

Pour le bouton, nous avons besoin d'un fichier d'icône. Vous pouvez utiliser n'importe lequel de vos outils préférés pour le créer, mais il doit être au format SVG. Nous utiliserons ici le fichier FEM_testButton.svg comme exemple.

Il doit être placé dans : src/Mod/Fem/Gui/Resources/icons/.

Enregistrer le nouveau fichier d'icône

Le nouveau fichier icône SVG doit être enregistré pour le bouton GUI en l'insérant dans src/Mod/Fem/Gui/Resources/Fem.qrc :

<file>icons/FEM_testButton.svg</file>

Créer une nouvelle classe de commande

Une nouvelle classe de commande doit être ajoutée au module src/Mod/Fem/femcommands/commands.py.

Il suffit de copier/coller une commande existante, puis d'ajuster l'icône, le texte du menu et l'infobulle dans __init__(self) :

class _testButton(CommandManager):
    "The FEM_testButton command definition"

    def __init__(self):
        super(_testButton, self).__init__()
        self.menuetext = "test Button"
        self.tooltip = "This is a test button"
        self.is_active = "always"
        #self.do_activated = "add_obj_on_gui_selobj_noset_edit"

N'oubliez pas d'enregistrer la commande au bas du fichier du module avec la méthode addCommand(...) :

FreeCADGui.addCommand(
    "FEM_testButton",
    _testButton()
)

Remarque : veuillez consulter ce fil de discussion dans le forum si des icônes sont impliquées.

Ajouter une nouvelle commande à l'atelier

Nous allons ajouter la nouvelle commande à la fois à la barre d'outils solve et au menu solve.

Recherchez le bout de code suivant dans /Gui/Workbench.cpp et ajoutez la nouvelle commande :

Gui::ToolBarItem* solve = new Gui::ToolBarItem(root);
     solve->setCommand("Solve");
     *solve << "FEM_SolverCalculixCxxtools"
            << "FEM_SolverCalculiX"
            << "FEM_SolverElmer"
+           << "FEM_testButton"
            << "Separator"

Pour ajouter la commande au menu solve de l'atelier FEM, recherchez le bout de code suivant dans Workbench.cpp :

Gui::MenuItem* solve = new Gui::MenuItem;
    root->insertItem(item, solve);
    solve->setCommand("&Solve");
    *solve << "FEM_SolverCalculixCxxtools"
           << "FEM_SolverCalculiX"
           << "FEM_SolverElmer"
           << "FEM_SolverZ88"
+          << "FEM_testButton"
           << "Separator"

Résultat : vous devriez avoir ajouté avec succès un bouton de test à la barre d'outils et au menu d'un atelier FEM. Maintenant, vous pouvez compiler FreeCAD et tester votre nouveau bouton.

En relation