Saltar al contenido
> 💻 🧠 Código 1001 > 📖 Guías > FreeCAD (software) > Cómo crear addons para FreeCAD > Lección 2. Su primer complemento: «Hello World»

Lección 2. Su primer complemento: «Hello World»

  • por

📘 Curso de formación: Creación de complementos para FreeCAD

Objetivo de la lección: crear un complemento sencillo que añada un nuevo entorno de trabajo con un botón, y que al pulsarlo muestre un mensaje.


📁 Paso 1. Preparación de la carpeta del complemento

Asegúrese de tener la carpeta:

.../FreeCAD/Mod/HelloWorldAddon/

Si no es así, créela.

💡 El nombre de la carpeta es importante: debe coincidir con el nombre del módulo en el código.
Usaremos HelloWorldAddon.

Dentro de esta carpeta, cree dos archivos:

  • InitGui.py
  • hello_workbench.py

❗ ¡No utilice espacios ni caracteres cirílicos en los nombres de archivos y carpetas!


📄 Paso 2. Archivo InitGui.py — punto de entrada

Este archivo se ejecuta automáticamente en FreeCAD al inicio, si se encuentra en la carpeta del complemento.

Ábralo en un editor e inserte el siguiente código:

# InitGui.py
import FreeCADGui
from HelloWorldAddon.hello_workbench import HelloWorldWorkbench

FreeCADGui.addWorkbench(HelloWorldWorkbench())

🔍 ¿Qué hace este código?

  1. Importa nuestro entorno de trabajo del archivo hello_workbench.py
  2. Registra el entorno de trabajo en la interfaz de FreeCAD a través de FreeCADGui.addWorkbench()

⚠️ Tenga en cuenta:
from HelloWorldAddon.hello_workbench — aquí HelloWorldAddon es el nombre de la carpeta, y hello_workbench es el nombre del archivo sin la extensión .py.


📄 Paso 3. Archivo hello_workbench.py — lógica del complemento

Ahora crearemos el entorno de trabajo en sí.

Inserte el siguiente código en hello_workbench.py:

# hello_workbench.py
import FreeCAD, FreeCADGui
from PySide import QtGui

# === COMANDO: lo que ocurre al pulsar el botón ===
class HelloWorldCommand:
    def GetResources(self):
        """Devuelve los datos para mostrar el comando"""
        return {
            "MenuText": "Say Hello",      # Texto en el menú
            "ToolTip": "Show a greeting", # Sugerencia
            "Pixmap": ""                  # Ruta al icono (vacío por ahora)
        }

    def Activated(self):
        """Se llama al pulsar el botón"""
        QtGui.QMessageBox.information(
            None,
            "FreeCAD Addon",
            "¡Hola, mundo!\n¡Acaba de iniciar su primer complemento!"
        )

    def IsActive(self):
        """¿Cuándo está disponible el comando? (siempre — True)"""
        return True


# === ENTORNO DE TRABAJO: agrupa comandos ===
class HelloWorldWorkbench(FreeCADGui.Workbench):
    # Nombre que se mostrará en la lista
    MenuText = "Hello World"
    ToolTip = "Mi primer entorno de trabajo"

    def Initialize(self):
        """Se llama al activar el entorno de trabajo"""
        # Lista de nombres de comandos
        self.list = ["HelloWorldCommand"]

        # Añadir barra de herramientas
        self.appendToolbar("Hello Tools", self.list)

        # Añadir elemento al menú
        self.appendMenu("Hello World", self.list)

    def GetClassName(self):
        """Método obligatorio para entornos de trabajo Python"""
        return "Gui::PythonWorkbench"


# === REGISTRO DE COMANDOS ===
FreeCADGui.addCommand("HelloWorldCommand", HelloWorldCommand())

🔍 Desglose del código por partes:

1. Comando (HelloWorldCommand)

  • GetResources() — describe cómo se ve el comando en la interfaz
  • Activated() — qué ocurre al hacer clic
  • IsActive() — cuándo está activo el botón (por ejemplo, solo si hay un documento)

2. Entorno de trabajo (HelloWorldWorkbench)

  • Hereda de FreeCADGui.Workbench
  • El método Initialize() añade comandos a la barra de herramientas y al menú
  • GetClassName() le dice a FreeCAD: «este es un entorno de trabajo de Python»

3. Registro

  • FreeCADGui.addCommand() vincula el nombre `

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *