1. Producten
  2.   CAD
  3.   Python
  4.   FreeCAD

FreeCAD

 
 

Open Source 3D Parametrische CAD Modeler

Maak, wijzig en automatiseer 3D-ontwerpen met de Python API voor werktuigbouwkunde, architectuur en productontwerp.

Wat is FreeCAD?

FreeCAD is een krachtige, open‑source 3D‑parametrische CAD‑modelleur ontworpen voor het creëren van objecten uit de echte wereld van elke grootte. Het ondersteunt parametrisch modelleren, waardoor gebruikers ontwerpen eenvoudig kunnen aanpassen door parameters in de modelgeschiedenis te wijzigen. Gebouwd op een robuuste architectuur met OpenCASCADE, Coin3D, Qt en Python, richt FreeCAD zich op werktuigbouwkunde, architectuur, productontwerp en meer. De flexibele Python‑API stelt ontwikkelaars en gevorderde gebruikers in staat taken te automatiseren, functionaliteit uit te breiden en te integreren met externe tools. Of je nu hobbyist, student, ingenieur of docent bent, FreeCAD biedt een professioneel platform voor 3D‑ontwerp zonder licentiekosten.

De kernkracht van FreeCAD ligt in het vermogen om 2D-tekenen en 3D-modellering te verbinden, waardoor gebruikers geometrie-beperkte 2D-profielen kunnen schetsen en deze kunnen extruderen tot 3D-functies. Het bevat gespecialiseerde werkbanken voor Part Design, Assembly, Drafting, Architecture en meer. De applicatie draait native op Windows, macOS en Linux, wat brede toegankelijkheid garandeert. Met actieve community-ondersteuning, uitgebreide documentatie en een modulaire plug-in-architectuur is FreeCAD ideaal voor zowel beginners als ervaren CAD-professionals die op zoek zijn naar een transparant, aanpasbaar en gratis alternatief voor propriëtaire tools. De integratie met simulatie- en productieprocessen maakt het geschikt voor de volledige levenscyclus van productontwikkeling.

Previous Next

Aan de slag met FreeCAD

FreeCAD is beschikbaar als vooraf gecompileerde installers voor Windows, macOS en Linux op de pagina met de nieuwste releases. Op Linux is het vaak beschikbaar via de pakketbeheerder of softwarecentrum van uw distributie. Voor ontwikkelaars en gevorderde gebruikers wordt het bouwen vanuit de bron ondersteund met CMake. Het officiële Developers Handbook biedt gedetailleerde bouwinstructies. Zodra geïnstalleerd, start FreeCAD en verken de werkbanken via de werkbalk. De Python-console en macro‑systeem maken automatisering en aanpassing mogelijk. Voor leermaterialen, bezoek de Aan de slag-gids op de FreeCAD-wiki.

Installeer FreeCAD via pakketbeheer (Linux) of download

# Ubuntu/Debian
sudo apt install freecad

# macOS (Homebrew)
brew install --cask freecad

# Windows: Download from https://github.com/FreeCAD/FreeCAD/releases/latest

Parametrisch 3D-modelleren met Python API

De parametrische modelleringsengine van FreeCAD stelt gebruikers in staat objecten te definiëren met bewerkbare parameters, waardoor ontwerpiteraties mogelijk zijn door simpelweg waarden aan te passen. De Python API maakt de volledige modelleringsstack toegankelijk, zodat ontwikkelaars complex geometrieën programmatisch kunnen creëren. Met de Part- en PartDesign-werkbanken kun je primitieve vormen genereren, Booleaanse bewerkingen uitvoeren, afrondingen/afschuiningen toevoegen en functies maken zoals pads, pockets en revoluties — allemaal via Python. Deze mogelijkheid is essentieel voor generatief ontwerp, topologie-optimalisatie en het integreren van CAD met simulatie- of productieprocessen. De API ondersteunt zowel objectgeoriënteerde als functionele benaderingen, waardoor hij geschikt is voor scripting, macro's en volledige plugins. Met toegang tot de onderliggende OpenCASCADE-kernel levert FreeCAD geometrische bewerkingen van professioneel niveau, terwijl het gebruiksvriendelijk blijft voor beginners.

Maak een parametrische kubus en wijzig de afmetingen via 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-schetsen & tekenwerkbank

FreeCAD bevat een robuuste 2D schetsomgeving die geïntegreerd is met de 3D-modelleringspipeline. De Sketcher-werkbank stelt gebruikers in staat om geometrie-beperkte 2D-profielen te tekenen met lijnen, bogen, cirkels en splines. Beperkingen zoals horizontaal, verticaal, parallel, loodrecht en dimensionale beperkingen zorgen voor nauwkeurige controle over de schetsgeometrie. Zodra ze voltooid zijn, dienen deze schetsen als basis voor 3D-functies zoals extrusies, revoluties en lofts. Daarnaast biedt de Draft-werkbank tools voor het maken van 2D-vectortekeningen zonder beperkingen, ideaal voor architecturale plattegronden of technische illustraties. De Drawing-werkbank maakt het mogelijk om orthografische projecties, doorsnedebeelden en geannoteerde tekeningen te genereren vanuit 3D-modellen, en ondersteunt ISO-conforme technische documentatie met dimensionering, toleranties en stuklijsten.

Maak een schets, voeg beperkingen toe en extrudeer om een 3D-functie te vormen

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()

Assemblageontwerp & constraintoplossing

FreeCAD ondersteunt complexe assemblagemodellering via de Assembly4- en Assembly3-werkbanken, waardoor gebruikers meerdere onderdelen kunnen combineren tot functionele mechanismen. Assemblies worden opgebouwd met behulp van constraints zoals coincident, parallel, perpendicular, tangent en distance om relatieve posities en bewegingen tussen componenten te definiëren. De solver werkt de assemblage automatisch bij wanneer een onderdeel of constraint wordt gewijzigd, waardoor de ontwerpintegriteit wordt gewaarborgd. Deze mogelijkheid is essentieel voor mechanische engineeringtaken zoals tandwieloverbrengingen, koppelingen en behuizingsontwerpen. Assemblies kunnen worden geëxporteerd als STEP-bestanden voor samenwerking met andere CAD-systemen, en bewegingssimulatie is mogelijk via integratie met externe tools zoals Yade of aangepaste Python-scripts. De parametrische aard van FreeCAD zorgt ervoor dat wijzigingen aan individuele onderdelen automatisch naar de assemblage worden doorgevoerd, waardoor handmatige updates worden verminderd en fouten worden geminimaliseerd.

Maak een eenvoudige assemblage met twee onderdelen en pas een coincidente beperking toe

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 & architecturale modelleringstools

FreeCAD bevat gespecialiseerde tools voor Building Information Modeling (BIM) en architectonisch ontwerp via de Arch-werkbank. Gebruikers kunnen muren, vloeren, daken, ramen, deuren en structurele elementen maken met intuïtieve parametrische objecten. Deze objecten worden automatisch bijgewerkt wanneer hun parameters veranderen, wat iteratief ontwerp en naleving van bouwvoorschriften ondersteunt. De werkbank ondersteunt IFC (Industry Foundation Classes) import/export, waardoor interoperabiliteit met industriestandaard BIM-software zoals Revit en Archicad mogelijk is. Functies zoals terreinplanning, opzetten van energieanalyse en materiaalopnamen maken FreeCAD geschikt voor vroegstadium architectonisch ontwerp en documentatie. Bovendien integreren de Draft- en Sketcher-werkbanken naadloos voor het maken van precieze plattegronden en gevelaanzichten, terwijl de Drawing-werkbank constructietekeningen genereert met annotaties, afmetingen en schema's.

Maak een muur en voeg een raam toe met behulp van de 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()
 Dutch