
FreeCAD
Open Source 3D parametrický CAD modelér
Vytvářejte, upravujte a automatizujte 3D návrhy pomocí Python API pro strojírenství, architekturu a produktový design.
Co je FreeCAD?
FreeCAD je výkonný, open-source 3D parametrický CAD modelér určený pro tvorbu reálných objektů jakékoli velikosti. Podporuje parametrické modelování, což uživatelům umožňuje snadno upravovat návrhy úpravou parametrů v historii modelu. Postaven na robustní architektuře využívající OpenCASCADE, Coin3D, Qt a Python, FreeCAD slouží pro strojní inženýrství, architekturu, návrh produktů a další. Jeho flexibilní Python API umožňuje vývojářům a pokročilým uživatelům automatizovat úkoly, rozšiřovat funkčnost a integrovat se s externími nástroji. Ať už jste hobbyistou, studentem, inženýrem nebo pedagogem, FreeCAD poskytuje profesionální platformu pro 3D návrh bez licenčních poplatků.
Jádrovou silou FreeCAD je jeho schopnost propojit 2D kreslení a 3D modelování, což uživatelům umožňuje kreslit geometricky omezené 2D profily a vytlačovat je do 3D prvků. Obsahuje specializované pracovní prostředí pro Part Design, Assembly, Drafting, Architecture a další. Aplikace běží nativně na Windows, macOS a Linuxu, což zajišťuje širokou dostupnost. Díky aktivní podpoře komunity, komplexní dokumentaci a modulární architektuře pluginů je FreeCAD ideální jak pro začátečníky, tak pro zkušené CAD profesionály, kteří hledají transparentní, přizpůsobitelnou a zdarma alternativu k proprietárním nástrojům. Jeho integrace se simulačními a výrobními workflow ho činí vhodným pro celý životní cyklus vývoje produktu.
Začínáme s FreeCAD
FreeCAD je k dispozici jako předkompilované instalátory pro Windows, macOS a Linux na stránka posledních vydání. V Linuxu je často dostupný přes správce balíčků nebo centrum softwaru vaší distribuce. Pro vývojáře a pokročilé uživatele je podporováno sestavování ze zdrojových kódů pomocí CMake. Oficiální Příručka vývojáře poskytuje podrobné pokyny k sestavení. Po instalaci spusťte FreeCAD a prozkoumejte pracovní prostředí pomocí panelu nástrojů. Konzole Pythonu a systém maker umožňují automatizaci a přizpůsobení. Pro výukové zdroje navštivte průvodce Začínáme na wiki FreeCAD.
Nainstalujte FreeCAD pomocí správce balíčků (Linux) nebo stáhněte
# Ubuntu/Debian
sudo apt install freecad
# macOS (Homebrew)
brew install --cask freecad
# Windows: Download from https://github.com/FreeCAD/FreeCAD/releases/latest
Parametrické 3D modelování s Python API
Parametrický modelovací engine FreeCAD umožňuje uživatelům definovat objekty s editovatelnými parametry, což umožňuje iterace návrhu pouhým upravením hodnot. Python API odhaluje celý modelovací stack, což vývojářům umožňuje programově vytvářet složité geometrie. Pomocí pracovních ploch Part a PartDesign můžete generovat primitivy, provádět Booleovské operace, přidávat zaoblení/zkosení a vytvářet funkce jako výklenky, kapsy a otáčení – vše pomocí Pythonu. Tato schopnost je nezbytná pro generativní design, topologickou optimalizaci a integraci CAD s simulacemi nebo výrobními workflow. API podporuje jak objektově orientovaný, tak funkcionální přístup, což jej činí vhodným pro skriptování, makra a plnohodnotné pluginy. S přístupem k podkladovému jádru OpenCASCADE FreeCAD poskytuje profesionální geometrické operace a zároveň zachovává snadnost použití pro začátečníky.
Vytvořte parametrickou krychli a upravte její rozměry pomocí Pythonu
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 skicování a výkresová pracovní plocha
FreeCAD zahrnuje robustní 2D skicovací prostředí integrované do 3D modelovacího řetězce. Pracovní plocha Sketcher umožňuje uživatelům kreslit geometricky omezené 2D profily pomocí čar, oblouků, kruhů a spline křivek. Omezení jako vodorovné, svislé, rovnoběžné, kolmé a rozměrové zajišťují přesnou kontrolu nad geometrií skici. Po dokončení slouží tyto skici jako základ pro 3D funkce jako extruze, otáčení a lofty. Navíc pracovní plocha Draft poskytuje nástroje pro tvorbu 2D vektorových výkresů bez omezení, ideální pro architektonické půdorysy nebo technické ilustrace. Pracovní plocha Drawing umožňuje generování ortografických projekcí, řezových pohledů a anotovaných výkresů z 3D modelů, podporující ISO‑kompatibilní technickou dokumentaci s kótováním, tolerancemi a výpisem materiálů.
Vytvořte skicu, přidejte vazby a extrudujte pro vytvoření 3D prvku
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()
Návrh sestav a řešení omezení
FreeCAD podporuje komplexní modelování sestav pomocí pracovních ploch Assembly4 a Assembly3, což uživatelům umožňuje kombinovat více dílů do funkčních mechanismů. Sestavy jsou vytvářeny pomocí vazeb, jako jsou shodné, rovnoběžné, kolmé, tečné a vzdálenost, které definují relativní polohy a pohyby mezi komponentami. Solver automaticky aktualizuje sestavu, když je jakýkoli díl nebo vazba upravena, čímž zajišťuje integritu návrhu. Tato schopnost je zásadní pro úkoly strojního inženýrství, jako jsou ozubené převody, spojky a konstrukce krytů. Sestavy lze exportovat jako STEP soubory pro spolupráci s jinými CAD systémy a simulace pohybu je možná díky integraci s externími nástroji, jako je Yade, nebo vlastním Python skriptem. Parametrická povaha FreeCADu zajišťuje, že změny jednotlivých dílů se automaticky propagují do sestavy, čímž se snižuje ruční aktualizace a minimalizují chyby.
Vytvořte jednoduchou sestavu se dvěma díly a použijte shodnou vazbu
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()
Nástroje BIM a architektonického modelování
FreeCAD obsahuje specializované nástroje pro Building Information Modeling (BIM) a architektonický návrh prostřednictvím pracovního prostředí Arch. Uživatelé mohou pomocí intuitivních parametrických objektů vytvářet zdi, podlahy, střechy, okna, dveře a konstrukční prvky. Tyto objekty se automaticky aktualizují při změně jejich parametrů, což podporuje iterativní návrh a soulad s stavebními předpisy. Pracovní prostředí podporuje import/export IFC (Industry Foundation Classes), což umožňuje interoperabilitu s průmyslovými standardními BIM softwary jako Revit a Archicad. Funkce jako plánování staveniště, nastavení energetické analýzy a výpočty materiálů činí FreeCAD vhodným pro rané fáze architektonického návrhu a dokumentace. Navíc pracovní prostředí Draft a Sketcher se bezproblémově integrují pro tvorbu přesných půdorysů a výškových řezu, zatímco pracovní prostředí Drawing generuje stavební dokumenty s anotacemi, rozměry a rozpisy.
Vytvořte zeď a přidejte okno pomocí 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()
