Tutorial |
Topic |
---|
FEM |
Level |
Avancé |
Time to complete |
60 min |
Authors |
JohnWang |
FreeCAD version |
0.19 |
Example files |
None |
See also |
None |
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 :
src/Mod/Fem//Gui/Resources/Fem.qrc
src/Mod/Fem/femcommands/commands.py
src/Mod/Fem/Gui/Workbench.cpp
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/
.
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>
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.
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.