
FreeCAD
ओपन सोर्स 3D पैरामीट्रिक CAD मॉडलर
मैकेनिकल इंजीनियरिंग, आर्किटेक्चर और प्रोडक्ट डिज़ाइन के लिए Python API के साथ 3D डिज़ाइनों को बनाएं, संशोधित करें और स्वचालित करें।
FreeCAD क्या है?
FreeCAD एक शक्तिशाली, ओपन-सोर्स 3D पैरामीट्रिक CAD मॉडलर है जिसे किसी भी आकार की वास्तविक वस्तुओं को बनाने के लिए डिज़ाइन किया गया है। यह पैरामीट्रिक मॉडलिंग का समर्थन करता है, जिससे उपयोगकर्ता मॉडल इतिहास में पैरामीटर समायोजित करके डिज़ाइन को आसानी से संशोधित कर सकते हैं। OpenCASCADE, Coin3D, Qt, और Python का उपयोग करके निर्मित मजबूत आर्किटेक्चर पर आधारित, FreeCAD मैकेनिकल इंजीनियरिंग, आर्किटेक्चर, प्रोडक्ट डिज़ाइन और अधिक के लिए उपयुक्त है। इसका लचीला Python API डेवलपर्स और पावर यूज़र्स को कार्यों को स्वचालित करने, कार्यक्षमता का विस्तार करने, और बाहरी टूल्स के साथ एकीकृत करने की शक्ति देता है। चाहे आप शौकिया, छात्र, इंजीनियर, या शिक्षक हों, FreeCAD बिना लाइसेंस लागत के 3D डिज़ाइन के लिए एक प्रोफेशनल-ग्रेड प्लेटफ़ॉर्म प्रदान करता है।
FreeCAD की मुख्य ताकत इसकी 2D स्केचिंग और 3D मॉडलिंग को जोड़ने की क्षमता में निहित है, जिससे उपयोगकर्ता ज्यामितीय-सीमित 2D प्रोफ़ाइल बना सकते हैं और उन्हें 3D फीचर में एक्सट्रूड कर सकते हैं। इसमें पार्ट डिज़ाइन, असेंबली, ड्राफ्टिंग, आर्किटेक्चर आदि के लिए विशेष कार्यस्थल (वर्कबेंच) शामिल हैं। यह एप्लिकेशन Windows, macOS और Linux पर मूल रूप से चलता है, जिससे व्यापक पहुँच सुनिश्चित होती है। सक्रिय समुदाय समर्थन, व्यापक दस्तावेज़ीकरण और मॉड्यूलर प्लगइन आर्किटेक्चर के साथ, FreeCAD शुरुआती और अनुभवी CAD पेशेवरों दोनों के लिए एक पारदर्शी, अनुकूलन योग्य और मुफ्त विकल्प है, जो स्वामित्व वाले टूल्स का विकल्प खोज रहे हैं। सिमुलेशन और निर्माण कार्यप्रवाह के साथ इसका एकीकरण इसे पूरे उत्पाद विकास जीवनचक्र के लिए उपयुक्त बनाता है।
FreeCAD के साथ शुरुआत
FreeCAD विंडोज, macOS और लिनक्स के लिए प्री-कम्पाइल्ड इंस्टॉलर्स के रूप में उपलब्ध है, नवीनतम रिलीज़ पेज पर। लिनक्स पर, यह अक्सर आपके वितरण के पैकेज मैनेजर या सॉफ़्टवेयर सेंटर के माध्यम से उपलब्ध होता है। डेवलपर्स और उन्नत उपयोगकर्ताओं के लिए, स्रोत से निर्माण CMake का उपयोग करके समर्थित है। आधिकारिक डेवलपर्स हैंडबुक विस्तृत निर्माण निर्देश प्रदान करता है। इंस्टॉल करने के बाद, FreeCAD लॉन्च करें और टूलबार के माध्यम से वर्कबेंचेज़ का अन्वेषण करें। Python कंसोल और मैक्रो सिस्टम स्वचालन और अनुकूलन को सक्षम बनाते हैं। शिक्षण संसाधनों के लिए, FreeCAD विकी पर शुरुआत गाइड देखें।
पैकेज मैनेजर (Linux) के माध्यम से FreeCAD स्थापित करें या डाउनलोड करें
# Ubuntu/Debian
sudo apt install freecad
# macOS (Homebrew)
brew install --cask freecad
# Windows: Download from https://github.com/FreeCAD/FreeCAD/releases/latest
Python API के साथ पैरामीट्रिक 3D मॉडलिंग
FreeCAD का पैरामीट्रिक मॉडलिंग इंजन उपयोगकर्ताओं को संपादन योग्य पैरामीटर के साथ ऑब्जेक्ट परिभाषित करने की अनुमति देता है, जिससे मानों को सरलता से समायोजित करके डिज़ाइन पुनरावृत्तियों को सक्षम किया जा सकता है। Python API पूरी मॉडलिंग स्टैक को उजागर करता है, जिससे डेवलपर्स प्रोग्रामेटिक रूप से जटिल ज्यामिति बना सकते हैं। Part और PartDesign वर्कबेंच का उपयोग करके, आप प्रिमिटिव्स जेनरेट कर सकते हैं, बूलियन ऑपरेशन्स कर सकते हैं, फ़िलेट्स/चैम्पर्स जोड़ सकते हैं, और पैड, पॉकेट, और रिवोल्यूशन जैसी विशेषताएँ बना सकते हैं—सभी Python के माध्यम से। यह क्षमता जेनरेटिव डिज़ाइन, टोपोलॉजी ऑप्टिमाइज़ेशन, और CAD को सिमुलेशन या मैन्युफैक्चरिंग वर्कफ़्लो के साथ एकीकृत करने के लिए आवश्यक है। API ऑब्जेक्ट-ओरिएंटेड और फंक्शनल दोनों दृष्टिकोणों का समर्थन करता है, जिससे यह स्क्रिप्टिंग, मैक्रो, और पूर्ण-फ़ीचर प्लगइन्स के लिए उपयुक्त बनता है। अंतर्निहित OpenCASCADE कर्नेल तक पहुंच के साथ, FreeCAD पेशेवर-ग्रेड ज्यामितीय ऑपरेशन्स प्रदान करता है जबकि शुरुआती लोगों के लिए उपयोग में आसानी बनाए रखता है।
Python के माध्यम से एक पैरामीट्रिक क्यूब बनाएं और उसके आयाम बदलें
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()
2D स्केचिंग और ड्राफ्टिंग वर्कबेंच
FreeCAD में एक मजबूत 2D स्केचिंग वातावरण शामिल है जो 3D मॉडलिंग पाइपलाइन के साथ एकीकृत है। Sketcher कार्यस्थल उपयोगकर्ताओं को रेखाओं, चापों, वृत्तों और स्प्लाइनों का उपयोग करके ज्यामिति-सीमित 2D प्रोफ़ाइल बनाने की अनुमति देता है। क्षैतिज, लंबवत, समानांतर, लम्बवत और आयामी प्रतिबंध जैसी बाधाएँ स्केच ज्यामिति पर सटीक नियंत्रण सुनिश्चित करती हैं। एक बार पूर्ण होने पर, ये स्केच 3D फीचर्स जैसे एक्सट्रूज़न, रिवोल्यूशन और लॉफ्ट के लिए आधार बनते हैं। अतिरिक्त रूप से, Draft कार्यस्थल बिना प्रतिबंधों के 2D वेक्टर ड्रॉइंग बनाने के उपकरण प्रदान करता है, जो वास्तुशिल्प फ़्लोर प्लान या तकनीकी चित्रण के लिए आदर्श है। Drawing कार्यस्थल 3D मॉडलों से ऑर्थोग्राफिक प्रोजेक्शन, सेक्शन व्यू और एनोटेटेड ड्रॉइंग उत्पन्न करने में सक्षम बनाता है, जो आयाम, टॉलरेंस और बिल‑ऑफ़‑मैटेरियल फीचर्स के साथ ISO‑अनुपालन तकनीकी दस्तावेज़ीकरण का समर्थन करता है।
एक स्केच बनाएं, प्रतिबंध जोड़ें, और 3D फीचर बनाने के लिए एक्सट्रूड करें
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 वर्कबेंच के माध्यम से समर्थन करता है, जिससे उपयोगकर्ता कई भागों को कार्यात्मक तंत्र में संयोजित कर सकते हैं। असेंबलियों को सहसम्बद्ध, समानांतर, लम्बवत, स्पर्शीय और दूरी जैसी बाधाओं का उपयोग करके बनाया जाता है, जो घटकों के बीच सापेक्ष स्थितियों और गति को परिभाषित करती हैं। जब भी कोई भाग या बाधा संशोधित की जाती है, तो सॉल्वर स्वचालित रूप से असेंबली को अपडेट करता है, जिससे डिज़ाइन की अखंडता बनी रहती है। यह क्षमता गियर ट्रेनों, लिंकज और हाउसिंग डिज़ाइनों जैसे यांत्रिक इंजीनियरिंग कार्यों के लिए महत्वपूर्ण है। असेंबलियों को अन्य CAD सिस्टमों के साथ सहयोग के लिए STEP फ़ाइलों के रूप में निर्यात किया जा सकता है, और गति सिमुलेशन 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 में Building Information Modeling (BIM) और आर्किटेक्चरल डिज़ाइन के लिए Arch वर्कबेंच के माध्यम से विशेष उपकरण शामिल हैं। उपयोगकर्ता सहज पैरामीट्रिक ऑब्जेक्ट्स का उपयोग करके दीवारें, फ़्लोर, छतें, खिड़कियाँ, दरवाज़े और संरचनात्मक तत्व बना सकते हैं। इन ऑब्जेक्ट्स के पैरामीटर बदलने पर वे स्वतः अपडेट हो जाते हैं, जिससे आवर्ती डिज़ाइन और बिल्डिंग कोड्स के अनुपालन को समर्थन मिलता है। यह वर्कबेंच IFC (Industry Foundation Classes) आयात/निर्यात का समर्थन करता है, जिससे Revit और Archicad जैसे उद्योग‑मानक BIM सॉफ़्टवेयर के साथ इंटरऑपरेबिलिटी संभव होती है। साइट प्लानिंग, ऊर्जा विश्लेषण सेटअप, और सामग्री टे‑ऑफ़ जैसी सुविधाएँ FreeCAD को प्रारंभिक चरण के आर्किटेक्चरल डिज़ाइन और दस्तावेज़ीकरण के लिए उपयुक्त बनाती हैं। अतिरिक्त रूप से, Draft और Sketcher वर्कबेंच सटीक फ़्लोर प्लान और एलिवेशन बनाने के लिए सहजता से एकीकृत होते हैं, जबकि Drawing वर्कबेंच एनोटेशन, आयाम और शेड्यूल के साथ निर्माण दस्तावेज़ उत्पन्न करता है।
Python API का उपयोग करके एक दीवार बनाएं और एक खिड़की जोड़ें
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()
