
FreeCAD
Öppen källkod 3D parametrisk CAD-modellering
Skapa, modifiera och automatisera 3D‑designer med Python‑API för maskinteknik, arkitektur och produktdesign.
Vad är FreeCAD?
FreeCAD är en kraftfull, öppen källkod 3D parametrisk CAD-modellerare som är utformad för att skapa verkliga objekt av vilken storlek som helst. Den stödjer parametrisk modellering, vilket gör det enkelt för användare att ändra designer genom att justera parametrar i modellhistoriken. Byggd på en robust arkitektur med OpenCASCADE, Coin3D, Qt och Python, riktar sig FreeCAD till maskinteknik, arkitektur, produktdesign och mer. Dess flexibla Python‑API ger utvecklare och avancerade användare möjlighet att automatisera uppgifter, utöka funktionalitet och integrera med externa verktyg. Oavsett om du är hobbyist, student, ingenjör eller lärare, erbjuder FreeCAD en professionell plattform för 3D‑design utan licenskostnader.
FreeCAD:s kärnstyrka ligger i dess förmåga att förena 2D-skissning och 3D-modellering, vilket gör att användare kan skissa geometriskt begränsade 2D-profiler och extrudera dem till 3D-funktioner. Den inkluderar specialiserade arbetsbänkar för Part Design, Assembly, Drafting, Architecture och mer. Applikationen körs nativt på Windows, macOS och Linux, vilket säkerställer bred tillgänglighet. Med aktivt communitystöd, omfattande dokumentation och en modulär plugin-arkitektur är FreeCAD idealisk för både nybörjare och erfarna CAD-professionella som söker ett transparent, anpassningsbart och gratis alternativ till proprietära verktyg. Dess integration med simulerings- och tillverkningsarbetsflöden gör den lämplig för hela produktutvecklingslivscykeln.
Komma igång med FreeCAD
FreeCAD är tillgängligt som förkompilerade installationsprogram för Windows, macOS och Linux på sidan för senaste utgåvor. På Linux är det ofta tillgängligt via din distributions paket‑hanterare eller programvarucenter. För utvecklare och avancerade användare stöds byggning från källkod med CMake. Den officiella Developers Handbook ger detaljerade bygginstruktioner. När det är installerat, starta FreeCAD och utforska arbetsbänkarna via verktygsfältet. Python‑konsolen och makrosystemet möjliggör automatisering och anpassning. För lärresurser, besök Komma igång-guiden på FreeCAD‑wikin.
Installera FreeCAD via paket‑hanterare (Linux) eller ladda ner
# 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
FreeCAD:s parametriska modelleringsmotor gör det möjligt för användare att definiera objekt med redigerbara parametrar, vilket möjliggör designiterationer genom att helt enkelt justera värden. Python-API:et exponerar hela modelleringsstacken och låter utvecklare skapa komplexa geometrier programmässigt. Genom att använda arbetsbänkarna Part och PartDesign kan du generera primitiva former, utföra boolska operationer, lägga till avrundningar/fasningar och skapa funktioner som pads, fickor och rotationer – allt via Python. Denna funktion är avgörande för generativ design, topologisk optimering och för att integrera CAD med simulerings- eller tillverkningsarbetsflöden. API:et stödjer både objektorienterade och funktionella tillvägagångssätt, vilket gör det lämpligt för skript, makron och fullständiga plugins. Med tillgång till den underliggande OpenCASCADE-kärnan levererar FreeCAD professionella geometriska operationer samtidigt som det behåller användarvänlighet för nybörjare.
Skapa en parametrisk kub och ändra dess dimensioner 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-skissning & ritningsarbetsbänk
FreeCAD inkluderar en robust 2D-skisseringsmiljö integrerad med 3D-modelleringspipeline. Sketcher-arbetsbänken låter användare rita geometriskt begränsade 2D-profiler med linjer, bågar, cirklar och splines. Begränsningar såsom horisontell, vertikal, parallell, vinkelrät och dimensionella begränsningar säkerställer exakt kontroll över skissens geometri. När de är färdiga fungerar dessa skisser som grund för 3D-funktioner som extruderingar, rotationer och loft. Dessutom erbjuder Draft-arbetsbänken verktyg för att skapa 2D-vektortegningar utan begränsningar, idealiska för arkitektoniska planritningar eller tekniska illustrationer. Drawing-arbetsbänken möjliggör generering av ortografiska projektioner, sektioner och annoterade ritningar från 3D-modeller, vilket stödjer ISO-kompatibel teknisk dokumentation med dimensionering, toleranser och materiallistfunktioner.
Skapa en skiss, lägg till begränsningar och extrudera för att skapa ett 3D-element
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 & begränsningslösning
FreeCAD stöder komplex monteringmodellering genom arbetsbänkarna Assembly4 och Assembly3, vilket möjliggör för användare att kombinera flera delar till funktionella mekanismer. Monteringarna byggs med hjälp av begränsningar såsom sammanfallande, parallella, vinkelräta, tangenta och avstånd för att definiera relativa positioner och rörelser mellan komponenter. Lösaren uppdaterar automatiskt monteringen när någon del eller begränsning ändras, vilket säkerställer designintegritet. Denna funktion är avgörande för mekaniska ingenjörsuppgifter som kuggkedjor, länkage och höljesdesign. Monteringarna kan exporteras som STEP-filer för samarbete med andra CAD-system, och rörelsesimulering är möjlig genom integration med externa verktyg som Yade eller anpassade Python-skript. Den parametriska naturen hos FreeCAD säkerställer att förändringar i enskilda delar automatiskt sprids till monteringen, vilket minskar manuella uppdateringar och minimerar fel.
Skapa en enkel montering med två delar och tillämpa en sammanfallande begränsning
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- & arkitekturmodelleringsverktyg
FreeCAD inkluderar specialiserade verktyg för Building Information Modeling (BIM) och arkitektonisk design genom Arch-arbetsbänken. Användare kan skapa väggar, golv, tak, fönster, dörrar och strukturella element med intuitiva parametriska objekt. Dessa objekt uppdateras automatiskt när deras parametrar ändras, vilket stödjer iterativ design och efterlevnad av byggnormer. Arbetsbänken stödjer IFC (Industry Foundation Classes) import/export, vilket möjliggör interoperabilitet med branschstandard BIM-programvara som Revit och Archicad. Funktioner som platsplanering, energianalysinställning och materialuppskattning gör FreeCAD lämplig för tidig arkitektonisk design och dokumentation. Dessutom integreras Draft- och Sketcher-arbetsbänkarna sömlöst för att skapa precisa planritningar och elevationer, medan Drawing-arbetsbänken genererar byggdokument med kommentarer, dimensioner och scheman.
Skapa en vägg och lägg till ett fönster med 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()
