
FreeCAD
Åpen kildekode 3D parametrisk CAD-modellering
Lag, endre og automatiser 3D-design med Python API for maskinteknikk, arkitektur og produktdesign.
Hva er FreeCAD?
FreeCAD er en kraftig, åpen kildekode 3D parametrisk CAD-modellering som er designet for å lage virkelige objekter av enhver størrelse. Den støtter parametrisk modellering, som gjør det enkelt for brukere å endre design ved å justere parametere i modellhistorikken. Bygget på en robust arkitektur som bruker OpenCASCADE, Coin3D, Qt og Python, retter FreeCAD seg mot maskinteknikk, arkitektur, produktdesign og mer. Dens fleksible Python‑API gir utviklere og avanserte brukere mulighet til å automatisere oppgaver, utvide funksjonalitet og integrere med eksterne verktøy. Enten du er hobbyist, student, ingeniør eller lærer, gir FreeCAD en profesjonell plattform for 3D‑design uten lisenskostnader.
FreeCADs kjerne styrke ligger i evnen til å bygge bro mellom 2D-skissering og 3D-modellering, slik at brukere kan skisse geometrisk begrensede 2D-profiler og ekstrudere dem til 3D-funksjoner. Den inkluderer spesialiserte arbeidsbenker for Part Design, Assembly, Drafting, Architecture og mer. Programmet kjører native på Windows, macOS og Linux, og sikrer bred tilgjengelighet. Med aktivt fellesskapsstøtte, omfattende dokumentasjon og en modulær plugin-arkitektur, er FreeCAD ideell både for nybegynnere og erfarne CAD-profesjonelle som søker et gjennomsiktig, tilpassbart og gratis alternativ til proprietære verktøy. Integrasjonen med simulerings- og produksjonsarbeidsflyter gjør den egnet for hele produktutviklingslivssyklusen.
Kom i gang med FreeCAD
FreeCAD er tilgjengelig som forhåndskompilerte installasjonsprogrammer for Windows, macOS og Linux på siden for siste utgivelser. På Linux er det ofte tilgjengelig via distribusjonens pakkebehandler eller programvaresenter. For utviklere og avanserte brukere støttes bygging fra kildekode ved hjelp av CMake. Den offisielle Utviklerhåndbok gir detaljerte byggeinstruksjoner. Når den er installert, start FreeCAD og utforsk arbeidsbenkene via verktøylinjen. Python‑konsollen og makrosystemet muliggjør automatisering og tilpasning. For læringsressurser, besøk Kom i gang-veiledningen på FreeCAD-wikien.
Installer FreeCAD via pakkebehandler (Linux) eller last ned
# Ubuntu/Debian
sudo apt install freecad
# macOS (Homebrew)
brew install --cask freecad
# Windows: Download from https://github.com/FreeCAD/FreeCAD/releases/latest
Parametrisk 3D-modellering med Python API
FreeCADs parametriske modelleringsmotor gjør det mulig for brukere å definere objekter med redigerbare parametere, slik at designiterasjoner kan utføres ved enkelt å justere verdier. Python‑API‑et eksponerer hele modelleringsstabelen, og lar utviklere lage komplekse geometriske former programmatisk. Ved å bruke Part‑ og PartDesign‑arbeidsbenkene kan du generere primitive former, utføre boolske operasjoner, legge til avrundinger/fasetter, og lage funksjoner som pads, pockets og revolusjoner – alt via Python. Denne funksjonaliteten er essensiell for generativ design, topologioptimalisering og integrering av CAD med simulerings‑ eller produksjonsarbeidsflyter. API‑et støtter både objektorienterte og funksjonelle tilnærminger, noe som gjør det egnet for skripting, makroer og fullverdige plugins. Med tilgang til den underliggende OpenCASCADE‑kjernen leverer FreeCAD profesjonelle geometriske operasjoner samtidig som det beholder brukervennlighet for nybegynnere.
Lag en parametrisk kube og endre dimensjonene 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-skissering og tegnearbeidsbenk
FreeCAD inkluderer et robust 2D-skissemiljø integrert med 3D-modelleringsprosessen. Sketcher-arbeidsbenken lar brukere tegne geometribegrensede 2D-profiler ved hjelp av linjer, buer, sirkler og splines. Begrensninger som horisontal, vertikal, parallell, vinkelrett og dimensjonsbegrensninger sikrer presis kontroll over skissegeometrien. Når de er fullført, fungerer disse skissene som grunnlaget for 3D-funksjoner som ekstrusjoner, revolusjoner og lofts. I tillegg gir Draft-arbeidsbenken verktøy for å lage 2D-vektortegninger uten begrensninger, ideelt for arkitektoniske plantegninger eller tekniske illustrasjoner. Drawing-arbeidsbenken gjør det mulig å generere ortografiske projeksjoner, snittvisninger og annoterte tegninger fra 3D-modeller, og støtter ISO-kompatibel teknisk dokumentasjon med dimensjonering, toleranser og materiallistefunksjoner.
Opprett en skisse, legg til begrensninger, og ekstruder for å lage en 3D‑funksjon
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()
Monteringsdesign og løsing av begrensninger
FreeCAD støtter kompleks samlebysmodellering gjennom Assembly4- og Assembly3-arbeidsbenkene, og gjør det mulig for brukere å kombinere flere deler til funksjonelle mekanismer. Samlinger bygges ved hjelp av begrensninger som sammenfallende, parallelle, vinkelrette, tangent og avstand for å definere relative posisjoner og bevegelser mellom komponenter. Løseren oppdaterer automatisk samlingen når en del eller begrensning endres, og sikrer designintegritet. Denne funksjonaliteten er avgjørende for maskintekniske oppgaver som tannhjulstrekk, ledd og husdesign. Samlinger kan eksporteres som STEP-filer for samarbeid med andre CAD-systemer, og bevegelsessimulering er mulig gjennom integrasjon med eksterne verktøy som Yade eller tilpassede Python‑skript. Den parametriske naturen i FreeCAD sikrer at endringer i individuelle deler automatisk propagere til samlingen, noe som reduserer manuelle oppdateringer og minimerer feil.
Opprett en enkel samling med to deler og påfør en samsvarende begrensning
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- og arkitektoniske modelleringsverktøy
FreeCAD inkluderer spesialiserte verktøy for Building Information Modeling (BIM) og arkitektonisk design gjennom Arch-arbeidsbenken. Brukere kan lage vegger, gulv, tak, vinduer, dører og strukturelle elementer ved hjelp av intuitive parametriske objekter. Disse objektene oppdateres automatisk når deres parametere endres, og støtter iterativt design og overholdelse av byggforskrifter. Arbeidsbenken støtter IFC (Industry Foundation Classes) import/eksport, noe som muliggjør interoperabilitet med bransjestandard BIM-programvare som Revit og Archicad. Funksjoner som tomteplanlegging, energi‑analyseoppsett og materialuttak gjør FreeCAD egnet for tidlig fase av arkitektonisk design og dokumentasjon. I tillegg integreres Draft‑ og Sketcher‑arbeidsbenkene sømløst for å lage presise plantegninger og fasader, mens Drawing‑arbeidsbenken genererer konstruksjonsdokumenter med merknader, dimensjoner og tidsplaner.
Opprett en vegg og legg til et vindu ved hjelp av 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()
