Skip to content
> 💻 🧠 קוד 1001 > 🧪📓 ללא קטגוריה > שיעור 2. התוסף הראשון שלך: "שלום עולם"

שיעור 2. התוסף הראשון שלך: "שלום עולם"

מדריך: יצירת תוספים עבור FreeCAD

מטרת השיעור: צור תוסף פשוט שמוסיף סביבת עבודה חדשה עם כפתור, ומציג הודעה בעת לחיצה עליו.


שלב 1. הכנת תיקיית התוסף
וודא שיש לך את התיקייה הבאה:

.../FreeCAD/Mod/HelloWorldAddon/


אם לא – צור אותה.

שם התיקייה חשוב: הוא חייב להתאים לשם המודול בקוד.
נשתמש בשם HelloWorldAddon.

בתוך תיקייה זו, צור שני קבצים:

  • InitGui.py
  • hello_workbench.py

חשוב: אל תשתמש ברווחים או בתווים קיריליים בשמות קבצים ותיקיות!


שלב 2. קובץ InitGui.py – נקודת הכניסה
קובץ זה מופעל אוטומטית על ידי FreeCAD באתחול, אם הוא נמצא בתיקיית התוסף.

פתח אותו בעורך והעתק את הקוד הבא:

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

FreeCADGui.addWorkbench(HelloWorldWorkbench())

מה עושה הקוד הזה?

  1. מייבא את סביבת העבודה שלנו מקובץ hello_workbench.py
  2. רושם אותה בממשק FreeCAD באמצעות FreeCADGui.addWorkbench()

הערה:
from HelloWorldAddon.hello_workbench – כאן HelloWorldAddon הוא שם התיקייה, ו-hello_workbench הוא שם הקובץ בלי הסיומת .py.


שלב 3. קובץ hello_workbench.py – לוגיקת התוסף
כעת ניצור את סביבת העבודה עצמה.

העתק את הקוד הבא ל-hello_workbench.py:

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

# === פקודה: מה קורה כשלוחצים על הכפתור? ===
class HelloWorldCommand:
    def GetResources(self):
        """מחזיר נתונים לתצוגת הפקודה"""
        return {
            "MenuText": "אמר שלום",        # טקסט בתפריט
            "ToolTip": "הצג ברכת שלום",   # תיאור מצוף
            "Pixmap": ""                   # נתיב לסמל (כרגע ריק)
        }

    def Activated(self):
        """נקרא כאשר לוחצים על הכפתור"""
        QtGui.QMessageBox.information(
            None,
            "תוסף FreeCAD",
            "שלום עולם!\nהפעלת בפעם הראשונה את התוסף שלך!"
        )

    def IsActive(self):
        """מתי הפקודה זמינה? (כאן: תמיד → True)"""
        return True

# === סביבת עבודה: מקבצת פקודות יחד ===
class HelloWorldWorkbench(FreeCADGui.Workbench):
    # השם שיופיע ברשימה
    MenuText = "שלום עולם"
    ToolTip = "סביבת העבודה הראשונה שלי"

    def Initialize(self):
        """נקרא כאשר מפעילים את סביבת העבודה"""
        # רשימת שמות הפקודות
        self.list = ["HelloWorldCommand"]
        # הוספת סרגל כלים
        self.appendToolbar("כלי שלום", self.list)
        # הוספת פריט לתפריט
        self.appendMenu("שלום עולם", self.list)

    def GetClassName(self):
        """מתודה חובה לסביבות עבודה בפייתון"""
        return "Gui::PythonWorkbench"

# === רישום הפקודה ===
FreeCADGui.addCommand("HelloWorldCommand", HelloWorldCommand())

ניתוח הקוד לפי רכיבים:

  1. פקודה (HelloWorldCommand)
  • GetResources() – מתאר איך הפקודה תופיע בממשק
  • Activated() – מגדיר מה קורה בעת לחיצה
  • IsActive() – קובע מתי הכפתור פעיל (למשל רק אם יש מסמך פתוח)
  1. סביבת עבודה (HelloWorldWorkbench)
  • יורשת מ-FreeCADGui.Workbench
  • המתודה Initialize() מוסיפה פקודות לסרגל הכלים ולתפריט
  • GetClassName() אומרת ל-FreeCAD: „זאת סביבת עבודה בפייתון”
  1. רישום
  • FreeCADGui.addCommand() מקשרת בין השם "HelloWorldCommand" למחלקה

שלב 4. בדיקת תפקוד

  1. שמור את שני הקבצים
  2. הפעל מחדש את FreeCAD
  3. בחר ברשימת סביבות העבודה את „שלום עולם“
  4. לחץ על הכפתור „אמר שלום“

חלון עם ההודעה „שלום עולם!“ אמור להופיע.


משימה מעשית

  1. שנה את הטקסט המוצג.
  2. הוסף פקודה שנייה – למשל „הצג תאריך“, שתציג את התאריך הנוכחי.
  3. נסה לשחק עם IsActive() – גרום לכפתור להיות פעיל רק אם קיים מסמך פתוח:
   def IsActive(self):
       return FreeCAD.ActiveDocument is not None

מה הלאה?
בשיעור 3 נלמד:

  • כיצד ליצור אובייקטים תלת-ממדיים אמיתיים (תיבות, גלילים) באמצעות פייתון
  • להבין את מבנה המסמך ב-FreeCAD
  • לבנות תוסף שיוצר גופים פרמטריים

כך תתחיל הפיתוח האמיתי ב-CAD!

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *