Przejdź do treści
> 💻 🧠 Kod 1001 > 🧪📓 Bez kategorii > Lekcja 2. Twój Pierwszy Dodatek: «Hello World»

Lekcja 2. Twój Pierwszy Dodatek: «Hello World»

Tutorial: Tworzenie Dodatków dla FreeCAD

Cel Lekcji: Stworzenie prostego dodatku, który dodaje nowe środowisko pracy ($\text{workbench}$) z przyciskiem, a po kliknięciu wyświetla komunikat.


Krok 1. Przygotowanie Folderu Dodatku

Upewnij się, że masz folder:

…/FreeCAD/Mod/HelloWorldAddon/

Jeśli nie, utwórz go.

Nazwa folderu jest ważna: musi być zgodna z nazwą modułu w kodzie. Użyjemy $\text{HelloWorldAddon}$.

Wewnątrz tego folderu utwórz dwa pliki:

  • $\text{InitGui.py}$
  • $\text{hello\_workbench.py}$

! Nie używaj spacji ani znaków cyrylicy w nazwach plików i folderów!


Krok 2. Plik InitGui.py – Punkt Wejścia

Ten plik jest automatycznie uruchamiany przez FreeCAD przy starcie, jeśli znajduje się w folderze dodatku.

Otwórz go w edytorze i wklej następujący kod:

Python

# InitGui.py
import FreeCADGui
from HelloWorldAddon.hello_workbench import HelloWorldWorkbench
FreeCADGui.addWorkbench(HelloWorldWorkbench())

Co robi ten kod?

  1. Importuje nasze środowisko pracy z pliku $\text{hello\_workbench.py}$.
  2. Rejestruje je w interfejsie FreeCAD za pomocą $\text{FreeCADGui.addWorkbench()}$.

! Uwaga:

$\text{from HelloWorldAddon.hello\_workbench}$ – tutaj $\text{HelloWorldAddon}$ to nazwa folderu, a $\text{hello\_workbench}$ to nazwa pliku bez rozszerzenia $\text{.py}$.


Krok 3. Plik hello_workbench.py – Logika Dodatku

Teraz stwórzmy samo środowisko pracy.

Wklej następujący kod do $\text{hello\_workbench.py}$:

Python

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

# === KOMENDA: co się dzieje po kliknięciu przycisku ===
class HelloWorldCommand:
    def GetResources(self):
        """Zwraca dane do wyświetlenia komendy"""
        return {
            "MenuText": "Say Hello", # Tekst w menu
            "ToolTip": "Show a greeting", # Podpowiedź
            "Pixmap": None # Ścieżka do ikony (teraz pusta)
        }

    def Activated(self):
        """Wywoływana po kliknięciu przycisku"""
        QtGui.QMessageBox.information(
            None,
            "FreeCAD Addon",
            "Hello, world!\nYou just launched your first addon!"
        )

    def IsActive(self):
        """Kiedy komenda jest dostępna? (zawsze - True)"""
        return True

# === ŚRODOWISKO PRACY: grupuje komendy razem ===
class HelloWorldWorkbench(FreeCADGui.Workbench):
    # Nazwa, która zostanie wyświetlona na liście
    MenuText = "Hello World"
    ToolTip = "My first workbench"

    def Initialize(self):
        """Wywoływana, gdy środowisko pracy jest aktywowane"""
        # Lista nazw komend
        self.list = ["HelloWorldCommand"]
        # Dodaj pasek narzędzi
        self.appendToolbar("Hello Tools", self.list)
        # Dodaj element menu
        self.appendMenu("Hello World", self.list)

    def GetClassName(self):
        """Wymagana metoda dla środowisk pracy Pythona"""
        return "Gui::PythonWorkbench"

# === REJESTRACJA KOMENDY ===
FreeCADGui.addCommand("HelloWorldCommand", HelloWorldCommand())

Rozbicie Kodu na Części:

  1. Komenda ($\text{HelloWorldCommand}$)
    • $\text{GetResources()}$: opisuje, jak komenda wygląda w interfejsie.
    • $\text{Activated()}$: co dzieje się po kliknięciu.
    • $\text{IsActive()}$: kiedy przycisk jest aktywny (np. tylko, jeśli jest otwarty dokument).
  2. Środowisko Pracy ($\text{HelloWorldWorkbench}$)
    • Dziedziczy z $\text{FreeCADGui.Workbench}$.
    • Metoda $\text{Initialize()}$ dodaje komendy do paska narzędzi i menu.
    • $\text{GetClassName()}$ informuje FreeCAD: «to jest środowisko pracy Pythona».
  3. Rejestracja
    • $\text{FreeCADGui.addCommand()}$ łączy nazwę komendy.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *