Skip to content
> 💻 🧠 קוד 1001 > 🧪📓 ללא קטגוריה > שיעור 3. יצירת אובייקטים תלת-ממדיים: תיבה פרמטרית

שיעור 3. יצירת אובייקטים תלת-ממדיים: תיבה פרמטרית

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


חלק 1. כיצד בנוי מסמך ב-FreeCAD?
לפני יצירת אובייקטים, חשוב להבין את ההיררכיה ב-FreeCAD:

  • מסמך – קובץ פתוח (.FCStd). כל מה שאתה יוצר נמצא בתוך מסמך זה.
  • אובייקט – אובייקט פרמטרי: תיבה, גליל, סקיצה וכו'.
  • צורה – גוף גאומטרי (B-Rep) שניתן להציגו ויזואלית.

אתה תמיד עובד בהקשר של המסמך הפעיל.

איך להשיג את המסמך הנוכחי?

doc = FreeCAD.ActiveDocument

אם אין מסמך – צור חדש:

doc = FreeCAD.newDocument("התכנון_שלי")

חלק 2. יצירת תיבה באמצעות פייתון
האובייקט התלת-ממדי הפשוט ביותר ב-FreeCAD הוא Part::Box.

דוגמה לקוד:

doc = FreeCAD.ActiveDocument or FreeCAD.newDocument()
box = doc.addObject("Part::Box", "התיבה_שלי")
box.Length = 20.0
box.Width = 10.0
box.Height = 5.0
doc.recompute()

מה קורה כאן?

  1. doc.addObject("Part::Box", "התיבה_שלי")
    → יוצר אובייקט חדש מסוג "תיבה" בשם "התיבה_שלי".
  2. לאובייקט יש מאפיינים פרמטריים: Length, Width, Height.
  3. doc.recompute() → בונה מחדש את המודל (חובה לאחר שינוי פרמטרים!).

כל המידות ניתנות במילימטרים כברירת מחדל ב-FreeCAD.


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

שלב 1. יצירת תיקייה

.../Mod/ParamBoxAddon/

שלב 2. קובץ InitGui.py

# InitGui.py
import FreeCADGui
from ParamBoxAddon.param_box_workbench import ParamBoxWorkbench

FreeCADGui.addWorkbench(ParamBoxWorkbench())

שלב 3. קובץ param_box_workbench.py

# param_box_workbench.py
import FreeCAD, FreeCADGui

class CreateBoxCommand:
    def GetResources(self):
        return {
            "MenuText": "צור תיבה",
            "ToolTip": "צור תיבה פרמטרית בגודל ברירת מחדל"
        }

    def Activated(self):
        # קבל או צור מסמך
        doc = FreeCAD.ActiveDocument
        if not doc:
            doc = FreeCAD.newDocument("תכנון_תיבות")

        # יצירת אובייקט תיבה
        box = doc.addObject("Part::Box", "התיבה_הפרמטרית_שלי")
        box.Length = 30.0
        box.Width = 20.0
        box.Height = 10.0

        # חישוב מחדש הוא חובה!
        doc.recompute()

        # אופציונלי: בחירת האובייקט
        FreeCADGui.Selection.clearSelection()
        FreeCADGui.Selection.addSelection(box)

    def IsActive(self):
        return True

class ParamBoxWorkbench(FreeCADGui.Workbench):
    MenuText = "תיבה פרמטרית"
    ToolTip = "צור תיבה פרמטרית פשוטה"

    def Initialize(self):
        self.list = ["CreateBoxCommand"]
        self.appendToolbar("כלי תיבות", self.list)
        self.appendMenu("תיבה פרמטרית", self.list)

    def GetClassName(self):
        return "Gui::PythonWorkbench"

FreeCADGui.addCommand("CreateBoxCommand", CreateBoxCommand())

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

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

תיבה אפורה אמורה להופיע בחלון התלת-ממדי.

בדוק את הפרמטריות!

  1. בעץ המודל ("Model"), לחץ כפליים על התיבה_הפרמטרית_שלי
  2. בחלונית הנתונים, שנה למשל את Length ל-50
  3. הקש Enter → המודל יתעדכן אוטומטית!

זהו דגם פרמטרי.


חלק 4. אובייקטים בסיסיים נוספים
ניתן ליצור יותר מתיבות בלבד. הנה כמה דוגמאות:

גליל

cyl = doc.addObject("Part::Cylinder", "הגליל_שלי")
cyl.Radius = 10.0
cyl.Height = 25.0

כדור

sphere = doc.addObject("Part::Sphere", "הכדור_שלי")
sphere.Radius = 15.0

חרוט

cone = doc.addObject("Part::Cone", "החרוט_שלי")
cone.Radius1 = 10.0  # רדיוס תחתון
cone.Radius2 = 5.0   # רדיוס עליון
cone.Height = 20.0

כל האובייקטים האלה נמצאים במודול Part, שהוא מובנה ב-FreeCAD.


משימה מעשית

  1. שנה את התוסף כך שיצור גליל במקום תיבה.
  2. ודא שביצירת אובייקט הוא מקבל שם ייחודי (למשל תיבה_1, תיבה_2…) אם כבר קיים אובייקט בשם זה.
  3. הוסף פקודה נוספת – "צור גליל" – לאותה סביבת עבודה.

רמז לשם ייחודי:

base_name = "התיבה_שלי"
index = 1
name = base_name
while name in [obj.Name for obj in doc.Objects]:
    name = f"{base_name}_{index}"
    index += 1
box = doc.addObject("Part::Box", name)

טיפים לניפוי באגים

  • קרא תמיד ל-doc.recompute() לאחר שינוי פרמטרים.
  • השתמש ב-FreeCAD.Console.PrintMessage("טקסט\n") לניפוי (הודעות יופיעו בתצוגת הדוחות).
  • בדוק אם קיים מסמך לפני שאתה עובד עליו.

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

  • ליצור ממשק משתמש גרפי (GUI) עם שדות קלט
  • לבנות חלון שבו המשתמש מזין אורך, רוחב וגובה
  • וללחוץ על כפתור כדי לבנות תיבה עם הפרמטרים הללו

כבר נקבל כלי אמיתי – לא רק הדגמה!

כתיבת תגובה

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