FreeCAD

 
 

ওপেন সোর্স 3D প্যারামেট্রিক CAD মডেলার

মেকানিক্যাল ইঞ্জিনিয়ারিং, আর্কিটেকচার এবং প্রোডাক্ট ডিজাইনের জন্য পাইথন 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 পেশাদার উভয়ের জন্যই স্বচ্ছ, কাস্টমাইজযোগ্য এবং ফ্রি বিকল্প হিসেবে আদর্শ, যা মালিকানাধীন টুলের বিকল্প। সিমুলেশন এবং ম্যানুফ্যাকচারিং ওয়ার্কফ্লোয়ের সঙ্গে এর ইন্টিগ্রেশন পুরো পণ্য উন্নয়ন চক্রের জন্য উপযুক্ত করে তোলে।

Previous Next

FreeCAD দিয়ে শুরু করা

FreeCAD Windows, macOS, এবং Linux এর জন্য পূর্ব-সংকলিত ইনস্টলার হিসেবে উপলব্ধ সর্বশেষ রিলিজ পৃষ্ঠা তে। Linux-এ, এটি প্রায়শই আপনার ডিস্ট্রিবিউশনের প্যাকেজ ম্যানেজার বা সফটওয়্যার সেন্টারের মাধ্যমে পাওয়া যায়। ডেভেলপার এবং উন্নত ব্যবহারকারীদের জন্য, CMake ব্যবহার করে সোর্স থেকে বিল্ড করা সমর্থিত। অফিসিয়াল ডেভেলপারস হ্যান্ডবুক বিস্তারিত বিল্ড নির্দেশনা প্রদান করে। ইনস্টল করার পরে, FreeCAD চালু করুন এবং টুলবারের মাধ্যমে ওয়ার্কবেঞ্চগুলো অন্বেষণ করুন। পাইথন কনসোল এবং ম্যাক্রো সিস্টেম স্বয়ংক্রিয়তা এবং কাস্টমাইজেশন সক্ষম করে। শিক্ষার সম্পদগুলির জন্য, 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 ওয়ার্কবেঞ্চের মাধ্যমে সমর্থন করে, যা ব্যবহারকারীদের একাধিক অংশকে কার্যকর মেকানিজমে সংযুক্ত করতে সক্ষম করে। অ্যাসেম্বলি গঠন করা হয় কোইনসিডেন্ট, প্যারালেল, পারপেন্ডিকুলার, ট্যানজেন্ট এবং ডিস্ট্যান্সের মতো কনস্ট্রেইন্ট ব্যবহার করে, যা উপাদানগুলির আপেক্ষিক অবস্থান ও গতিবিধি নির্ধারণ করে। কোনো অংশ বা কনস্ট্রেইন্ট পরিবর্তিত হলে সলভার স্বয়ংক্রিয়ভাবে অ্যাসেম্বলি আপডেট করে, যা ডিজাইনের অখণ্ডতা নিশ্চিত করে। এই সক্ষমতা গিয়ার ট্রেন, লিঙ্কেজ এবং হাউজিং ডিজাইনের মতো মেকানিক্যাল ইঞ্জিনিয়ারিং কাজের জন্য অপরিহার্য। অ্যাসেম্বলি গুলি STEP ফাইল হিসেবে রপ্তানি করা যায় অন্যান্য CAD সিস্টেমের সঙ্গে সহযোগিতার জন্য, এবং মুভমেন্ট সিমুলেশন সম্ভব হয় Yade বা কাস্টম পাইথন স্ক্রিপ্টের মতো বাহ্যিক টুলের ইন্টিগ্রেশনের মাধ্যমে। 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) ইম্পোর্ট/এক্সপোর্ট সমর্থন করে, যা Revit এবং Archicad এর মতো শিল্প-মানের BIM সফটওয়্যারের সাথে আন্তঃপরিচালনযোগ্যতা সক্ষম করে। সাইট পরিকল্পনা, এনার্জি বিশ্লেষণ সেটআপ এবং উপাদান টেক-অফের মতো বৈশিষ্ট্যগুলি FreeCAD-কে প্রারম্ভিক-পর্যায়ের আর্কিটেকচারাল ডিজাইন এবং ডকুমেন্টেশনের জন্য উপযুক্ত করে তোলে। এছাড়াও, Draft এবং Sketcher ওয়ার্কবেঞ্চগুলি নির্ভুল ফ্লোর প্ল্যান এবং এলিভেশন তৈরি করার জন্য নিখুঁতভাবে সংযুক্ত হয়, যখন Drawing ওয়ার্কবেঞ্চ অ্যানোটেশন, ডাইমেনশন এবং শিডিউলসহ নির্মাণ নথি তৈরি করে।

পাইথন 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()
 বাংলা