Module Creation/es


La adición de nuevos módulos y entornos en FreeCAD es muy sencillo. Denominamos módulo a cualquier extensión de FreeCAD, mientras que entorno es una configuración especial de interfaz gráfica de usuario que agrupa algunas barras de herramientas y menús. Normalmente creas un nuevo módulo que contiene su propio entorno.

Los módulos se pueden programar en C++ o en Python, o en una mezcla de ambos, pero los archivos init del módulo deben estar en Python. Establecer un nuevo módulo con dichos archivos init es sencillo, y se puede hacer manualmente o con la herramienta de construcción de FreeCAD.

Utilización de la herramienta de construcción de FreeCAD

La creación de un nuevo módulo de aplicación en FreeCAD es bastante simple. En árbol de desarrollo de FreeCAD existe la Herramienta de construcción de FreeCAD (fcbt) que hace las parte más importantes para ti. Es un archivo de guión en Python ubicado en

 trunk/src/Tools/fcbt.py

Cuando tu interprete de Python está correctamente instalado puedes ejecutar este archivo de guión desde la línea de comandos con

 python fcbt.py

Mostrará el siguiente menú:

 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> ?

En la línea de comandos introduce CM para comenzar la creación de un módulo:

 Insert command: ''CM''

Te pedirá que especifiques un nombre para tu nuevo módulo. Vamos a llamarlo TestMod por ejemplo:

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

Después de pulsar enter fcbt comienza copiando todos los archivos necesarios para tu módulo en una carpeta nueva en

 trunk/src/Mod/TestMod/

Luego todos los archivos se modifican con el nombre de tu nuevo módulo. Lo único que necesitas hacer ahora es añadir los dos nuevos proyectos "appTestMod" y "appTestModGui" a tu espacio de trabajo (en Windows) o a tus objetivos de makefile (unix). Eso es!

Establecer un nuevo módulo manualmente

Necesitas dos cosas para crear un nuevo módulo:

Adicionalmete, también puedes poner un archivo Init.py. La diferencia es que, el archivo InitGui.py está cargado sólo cuando FreeCAD se ejecuta en modo interfaz gráfica de usuario, el archivo Init.py se carga siempre. Pero si vamos a crear un entorno, lo pondremos en el InitGui.py, porque los entornos se usan sólo en modo interfaz gráfica de usuario, por supuesto.

Creación de un nuevo entorno

Dentro del archivo InitGui.py, una de las primeras cosas que querrás hacer es definir un entorno. Aquí tienes el mínimo código que puedes utilizar:

 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)

El entorno debe tener todos estos atributos definidos:

Creación de comandos de FreeCAD en Python

Normalmente defines todas las herramientas (denominadas comandos en FreeCAD) en otro módulo, luego lo importas antes de la creación de las barras de herramientas y menús. Este es el mínimo código que puedes utilizar para definir un comando:

 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())

Creación de comandos de FreeCAD en C++

Pendiente de documentar

Links

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

Navigation menu