
FreeCAD
نمذج CAD ثلاثي الأبعاد بارامترية مفتوح المصدر
أنشئ، عدّل و أتمتة التصاميم ثلاثية الأبعاد باستخدام واجهة برمجة التطبيقات Python للهندسة الميكانيكية، العمارة وتصميم المنتجات.
ما هو FreeCAD؟
FreeCAD هو برنامج نمذجة CAD ثلاثي الأبعاد باراميتري قوي ومفتوح المصدر صُمم لإنشاء كائنات واقعية بأي حجم. يدعم النمذجة البارامترية، مما يتيح للمستخدمين تعديل التصاميم بسهولة عن طريق ضبط المعلمات في تاريخ النموذج. تم بناءه على بنية قوية باستخدام OpenCASCADE وCoin3D وQt وPython، ويخدم الهندسة الميكانيكية، والعمارة، وتصميم المنتجات، وأكثر. تمكّن واجهة برمجة بايثون المرنة المطورين والمستخدمين المتقدمين من أتمتة المهام، وتوسيع الوظائف، والتكامل مع الأدوات الخارجية. سواء كنت هاويًا، طالبًا، مهندسًا، أو معلمًا، يوفر FreeCAD منصة احترافية للتصميم ثلاثي الأبعاد دون تكاليف ترخيص.
تكمن القوة الأساسية لـ FreeCAD في قدرتها على ربط الرسم الثنائي الأبعاد والنمذجة الثلاثية الأبعاد، مما يسمح للمستخدمين برسم ملفات تعريف ثنائية الأبعاد مقيدة بالهندسة ثم استخراجها إلى ميزات ثلاثية الأبعاد. تشمل محطات عمل متخصصة لتصميم الأجزاء، التجميع، الرسم، الهندسة المعمارية، وأكثر. يعمل التطبيق أصلاً على أنظمة Windows و macOS و Linux، مما يضمن وصولاً واسعاً. بفضل دعم المجتمع النشط، الوثائق الشاملة، وهندسة الإضافات المعيارية، يعتبر FreeCAD مثالياً لكل من المبتدئين والمحترفين في مجال CAD الذين يبحثون عن بديل شفاف، قابل للتخصيص، ومجاني للأدوات المملوكة. إن تكامله مع عمليات المحاكاة والتصنيع يجعله مناسبًا لدورة حياة تطوير المنتج بالكامل.
البدء مع FreeCAD
FreeCAD متاح كحزم مثبتة مسبقًا لأنظمة Windows و macOS و Linux على صفحة الإصدارات الأخيرة. على Linux، يتوفر غالبًا عبر مدير الحزم الخاص بتوزيعتك أو مركز البرامج. للمطورين والمستخدمين المتقدمين، يدعم البناء من المصدر باستخدام CMake. يقدم دليل دليل المطورين الرسمي تعليمات بناء مفصلة. بعد التثبيت، شغّل FreeCAD واستكشف بيئات العمل عبر شريط الأدوات. يتيح وحدة التحكم Python ونظام الماكرو الأتمتة والتخصيص. للحصول على موارد تعلم، زر دليل البدء على ويكي FreeCAD.
تثبيت FreeCAD عبر مدير الحزم (Linux) أو التحميل
# Ubuntu/Debian
sudo apt install freecad
# macOS (Homebrew)
brew install --cask freecad
# Windows: Download from https://github.com/FreeCAD/FreeCAD/releases/latest
نمذجة ثلاثية الأبعاد بارامترية باستخدام API بايثون
يتيح محرك النمذجة البرامترية في FreeCAD للمستخدمين تعريف الكائنات بمعلمات قابلة للتحرير، مما يمكّن من تكرارات التصميم ببساطة عن طريق تعديل القيم. تُظهر واجهة برمجة التطبيقات Python (Python API) كامل طبقة النمذجة، مما يسمح للمطورين بإنشاء أشكال هندسية معقدة برمجياً. باستخدام ورشتي Part و PartDesign، يمكنك إنشاء الأشكال الأولية، إجراء عمليات بوليانية، إضافة الحواف المستديرة/المائلة، وإنشاء ميزات مثل الوسادات (pads)، الجيوب (pockets)، والدورات (revolutions) — كل ذلك عبر Python. هذه القدرة أساسية للتصميم التوليدي، تحسين الطوبولوجيا، وتكامل CAD مع محاكاة أو سير عمل التصنيع. تدعم الواجهة البرمجية كلًا من النهج الكائني والنهج الوظيفي، مما يجعلها مناسبة للبرمجة النصية، الماكرو، والإضافات الكاملة المميزات. مع الوصول إلى نواة OpenCASCADE الأساسية، يقدم FreeCAD عمليات هندسية بمستوى احترافي مع الحفاظ على سهولة الاستخدام للمبتدئين.
إنشاء مكعب بارامتري وتعديل أبعاده عبر بايثون
import FreeCAD as App
import Part
# Create document and object
doc = App.newDocument()
cube = doc.addObject("Part::Box", "Cube")
cube.Length = 10
cube.Width = 20
cube.Height = 30
App.ActiveDocument.recompute()
# Modify dimensions later
cube.Length = 15
App.ActiveDocument.recompute()
محطة عمل الرسم التخطيطي ثنائي الأبعاد والتصميم
يتضمن FreeCAD بيئة رسم تخطيطي ثنائية الأبعاد قوية مدمجة مع خط أنابيب النمذجة ثلاثية الأبعاد. يتيح ورشة عمل Sketcher للمستخدمين رسم ملفات تعريف ثنائية الأبعاد مقيدة بالهندسة باستخدام الخطوط والأقواس والدوائر والمنحنيات. تضمن القيود مثل الأفقية والرأسية والمتوازية والعمودية والقيود البُعدية تحكمًا دقيقًا في هندسة الرسم التخطيطي. بمجرد الانتهاء، تُستخدم هذه الرسومات كأساس للميزات ثلاثية الأبعاد مثل البثق، والدورات، واللوفت. بالإضافة إلى ذلك، توفر ورشة عمل Draft أدوات لإنشاء رسومات متجهة ثنائية الأبعاد بدون قيود، مثالية لخطط الطوابق المعمارية أو الرسوم التوضيحية التقنية. تمكّن ورشة عمل Drawing من توليد الإسقاطات المتعامدة، وواجهات القطع، والرسومات المشروحة من النماذج ثلاثية الأبعاد، داعمةً الوثائق التقنية المتوافقة مع ISO مع ميزات القياس، والتحمل، وقائمة المواد.
إنشاء مخطط، إضافة قيود، وتمديد لتكوين ميزة ثلاثية الأبعاد
import FreeCAD as App
import Sketcher
import PartDesign
doc = App.newDocument()
Part = doc.addObject("PartDesign::Body")
Sketch = doc.addObject("Sketcher::SketchObject", "Sketch")
Sketch.Placement = App.Placement(App.Vector(0,0,0), App.Rotation(App.Vector(0,0,1),0))
# Add geometry
Sketch.addGeometry(Part.LineSegment(App.Vector(-10,0,0),App.Vector(10,0,0)),False)
Sketch.addGeometry(Part.LineSegment(App.Vector(10,0,0),App.Vector(10,10,0)),False)
Sketch.addGeometry(Part.LineSegment(App.Vector(10,10,0),App.Vector(-10,10,0)),False)
Sketch.addGeometry(Part.LineSegment(App.Vector(-10,10,0),App.Vector(-10,0,0)),False)
# Add constraints
Sketch.addConstraint(Sketcher.Constraint('Coincident',0,2,1,1))
Sketch.addConstraint(Sketcher.Constraint('Coincident',1,2,2,1))
Sketch.addConstraint(Sketcher.Constraint('Coincident',2,2,3,1))
Sketch.addConstraint(Sketcher.Constraint('Coincident',3,2,0,1))
Sketch.addConstraint(Sketcher.Constraint('Horizontal',0))
Sketch.addConstraint(Sketcher.Constraint('Vertical',1))
# Extrude
Pad = doc.addObject("PartDesign::Pad", "Pad")
Pad.Profile = Sketch
Pad.Length = 5
doc.recompute()
تصميم التجميع وحل القيود
يدعم FreeCAD نمذجة التجميع المعقدة من خلال ورشتي العمل Assembly4 و Assembly3، مما يتيح للمستخدمين دمج أجزاء متعددة في آليات وظيفية. يتم بناء التجميعات باستخدام قيود مثل المتطابقة، المتوازية، المتعامدة، المماس، والمسافة لتحديد المواقع النسبية والحركات بين المكونات. يقوم المحلل بتحديث التجميع تلقائيًا عندما يتم تعديل أي جزء أو قيد، مما يضمن سلامة التصميم. هذه القدرة حيوية لمهام الهندسة الميكانيكية مثل سلاسل التروس، الروابط، وتصاميم الأغلفة. يمكن تصدير التجميعات كملفات STEP للتعاون مع أنظمة CAD الأخرى، ويمكن محاكاة الحركة من خلال التكامل مع أدوات خارجية مثل Yade أو سكريبتات Python مخصصة. يضمن الطابع البراميتري لـ FreeCAD أن التغييرات في الأجزاء الفردية تنتقل تلقائيًا إلى التجميع، مما يقلل من التحديثات اليدوية ويقلل الأخطاء.
إنشاء تجميع بسيط يتكون من جزأين وتطبيق قيد متطابق
import FreeCAD as App
import Assembly4
doc = App.newDocument("Assembly")
# Add parts
Part1 = doc.addObject("Part::Box", "Block1")
Part1.Length, Part1.Width, Part1.Height = 10, 10, 10
Part2 = doc.addObject("Part::Cylinder", "Cylinder1")
Part2.Radius, Part2.Height = 3, 15
# Create assembly
asm = doc.addObject("App::Part", "Assembly")
asm.Type = "Assembly"
asm.addObject(Part1)
asm.addObject(Part2)
# Apply constraint (simplified)
# In practice, use Assembly4's Constraint class for full functionality
App.ActiveDocument.recompute()
أدوات نمذجة BIM والعمارة
يتضمن FreeCAD أدوات متخصصة لنمذجة معلومات البناء (BIM) والتصميم المعماري عبر بيئة العمل Arch. يمكن للمستخدمين إنشاء الجدران، الأرضيات، الأسقف، النوافذ، الأبواب، والعناصر الهيكلية باستخدام كائنات بارامترية بديهية. تقوم هذه الكائنات بالتحديث تلقائيًا عندما تتغير معلماتها، مما يدعم التصميم التكراري والامتثال للرموز البنائية. تدعم بيئة العمل استيراد/تصدير IFC (Industry Foundation Classes)، مما يتيح التوافق مع برامج BIM القياسية في الصناعة مثل Revit وArchicad. تجعل ميزات مثل تخطيط الموقع، إعداد تحليل الطاقة، واستخراج كميات المواد FreeCAD مناسبًا للتصميم المعماري في مراحله المبكرة والوثائق. بالإضافة إلى ذلك، تتكامل بيئات العمل Draft وSketcher بسلاسة لإنشاء مخططات طوابق وارتفاعات دقيقة، بينما تُنشئ بيئة العمل Drawing مستندات الإنشاء مع التعليقات التوضيحية، الأبعاد، والجداول.
إنشاء جدار وإضافة نافذة باستخدام واجهة برمجة تطبيقات بايثون
import FreeCAD as App
import Arch
doc = App.newDocument("Building")
# Create wall
Wall = Arch.makeWall(length=5000, width=200, height=3000)
Wall.Base = Arch.makeSketch([0,0,0], [5000,0,0], [5000,200,0], [0,200,0])
# Create window
Window = Arch.makeWindow(1200, 1500)
Window.Base = Arch.makeSketch([1000,100,0], [2200,100,0], [2200,1600,0], [1000,1600,0])
Window.Host = Wall
App.ActiveDocument.recompute()
