Module Creation/fr


Ajouter de nouveaux modules et boîtes à outils dans FreeCAD est très facile. Nous appelons module, toute extension de FreeCAD, tandis qu'un plan de travail (workbench) est une configuration spéciale GUI, habituellement, les groupes de barres d'outils et de menus. Vous créez un nouveau module qui contient son propre plan de travail (sa barre d'outils et ses commandes).

Les modules peuvent être programmés en C++ ou en Python, ou un mélange des deux, mais les fichiers de module d'initialisation, doivent être en Python. La mise en place d'un nouveau module, avec les fichiers d'initialisation est facile, et, peut être effectuée, soit manuellement, soit avec l'outil build de FreeCAD.

Utilisation des outils de FreeCAD

La création d'un nouveau module dans FreeCAD est assez simple. Dans l'arborescence de développement de FreeCAD, il existe l'outil FreeCAD Build Tool (fcbt) qui, fait les choses les plus importantes pour vous.
Il s'agit d'un script Python situé à :

 trunk/src/Tools/fcbt.py

Lorsque votre interpréteur Python est correctement installé, vous pouvez exécuter le script en ligne de commande avec :

 python fcbt.py

Le menu suivant s'afficher :

 FreeCAD Build Tool
 Usage:
    fcbt <command name> [command parameter] 
 possible commands are:
  - DistSrc         (DS)   Build a source Distr. of the current source tree
  - DistBin         (DB)   Build a binary Distr. of the current source tree
  - DistSetup       (DI)   Build a Setup Distr. of the current source tree
  - DistSetup       (DUI)  Build a User Setup Distr. of the current source tree
  - DistAll         (DA)   Run all three above modules
  - NextBuildNumber (NBN)  Increase the Build Number of this Version
  - CreateModule    (CM)   Insert a new FreeCAD Module in the module directory
  - CreatePyModule  (CP)   Insert a new FreeCAD Python Module in the module directory

 For help on the modules type:
   fcbt <command name> ?

À l'invite de comande, entrez CM pour commencer la création d'un module :

 Insert command: ''CM''

Vous êtes maintenant invité à spécifier un nom pour votre nouveau module.
Appelons le TestMod par exemple :

 Please enter a name for your application: ''TestMod''

Après avoir validé, fcbt commence à copier, tous les fichiers nécessaires pour votre module dans un nouveau dossier, à :

 trunk/src/Mod/TestMod/

Puis, tous les fichiers sont modifiés avec votre nouveau nom de module. La seule chose que vous devez faire maintenant, est d'ajouter les deux nouveaux projets, "appTestMod" et "appTestModGui", à votre espace de travail (sous Windows) ou à vos objectifs Makefile (unix). C'est tout !

Mise en place d'un nouveau module manuellement

Vous avez besoin de deux choses, pour créer un nouveau module :

En outre, vous pouvez également ajouter un fichier Init.py. La différence est, que le fichier InitGui.py n'est chargé que lorsque FreeCAD fonctionne en mode graphique (InitGUI), et, le fichier Init.py est toujours chargé. Mais si nous faisons un plan de travail (workbench), nous allons le mettre en InitGui.py, parce les outils, sont utilisés uniquement en mode GUI, bien sûr.

Création de nouveaux outils

Une des premières choses que vous voudrez faire, est de définir un plan de travail dans le fichier InitGui.py.
Voici un petit code que vous pouvez utiliser :

 class MyWorkbench ( Workbench ):
 "My workbench object"
 Icon = """
 /* XPM */
 static const char *test_icon[]={
 "16 16 2 1",
 "a c #000000",
 ". c None",
 "................",
 "................",
 "..############..",
 "..############..",
 "..############..",
 "......####......",
 "......####......",
 "......####......",
 "......####......",
 "......####......",
 "......####......",
 "......####......",
 "......####......",
 "......####......",
 "................",
 "................"};
 """
 MenuText = "My Workbench"
 ToolTip = "This is my extraordinary workbench"
 
         def GetClassName(self):
                return "Gui::PythonWorkbench"
 
 def Initialize(self):
 import myModule1, myModule2
 self.appendToolbar("My Tools", ["MyCommand1","MyCommand2"])
 self.appendMenu("My Tools", ["MyCommand1","MyCommand2"])
 Log ("Loading MyModule... done\n")
 
 def Activated(self):
                # do something here if needed...
 Msg ("MyWorkbench.Activated()\n")
 
 def Deactivated(self):
                # do something here if needed...
 Msg ("MyWorkbench.Deactivated()\n")
 
 FreeCADGui.addWorkbench(MyWorkbench)

L'atelier (boîte à outils) doit disposer de toutes ces définissions (attributs) :

Creation de commandes FreeCAD en Python

Habituellement, vous définissez tous vos outils (appelés commandes dans FreeCAD), dans un autre module, puis importez ce module, avant de créer les barres d'outils et de menus.
Il s'agit ici d'un code minimum, que vous pouvez utiliser pour définir une commande :

 import FreeCAD,FreeCADGui
 
 class MyTool:
 "My tool object"
 
        def GetResources(self):
                return {"MenuText": "My Command",
                        "Accel": "Ctrl+M",
                        "ToolTip": "My extraordinary command",
                        "Pixmap"  : """
 /* XPM */
 static const char *test_icon[]={
 "16 16 2 1",
 "a c #000000",
 ". c None",
 "................",
 "................",
 "..############..",
 "..############..",
 "..############..",
 "......####......",
 "......####......",
 "......####......",
 "......####......",
 "......####......",
 "......####......",
 "......####......",
 "......####......",
 "......####......",
 "................",
 "................"};
 """}
 
        def IsActive(self):
                if FreeCAD.ActiveDocument == None:
                        return False
                else:
                        return True
 
 def Activated(self):
                # do something here...
 
 FreeCADGui.addCommand('MyCommand1',MyTool())

Création d'une commande FreeCAD en C++

Bientôt documentée.

Links

Online version: "http://www.freecadweb.org/wiki/index.php?title=Module_Creation/fr&oldid=287467"

Navigation menu