Introduction
FreeCAD is a general-purpose parametric 3D CAD modeler. It is designed for mechanical engineering, product design, architecture, and other disciplines that require precise 3D modeling with constraint-based parametric geometry. The project is community-driven and extensible through Python scripting and custom workbenches.
What FreeCAD Does
- Creates parametric 3D models using constraint-based sketching and feature-based modeling
- Provides specialized workbenches for Part Design, Assembly, Architecture (BIM), FEM analysis, and CNC paths
- Imports and exports STEP, IGES, STL, OBJ, DXF, and other standard CAD formats
- Supports finite element analysis for structural and thermal simulations
- Generates technical drawings with dimensioning and annotations
Architecture Overview
FreeCAD is written in C++ with Python bindings using PyCXX and Qt for the GUI. The geometry kernel uses Open CASCADE Technology (OCCT) for B-Rep solid modeling. The application follows a workbench architecture where each module (Part Design, Sketcher, FEM, Path) provides its own tools and UI. A document-object model stores parametric features in a dependency graph that recomputes when parameters change.
Self-Hosting & Configuration
- Download binaries from freecad.org or install via system package managers
- Install additional workbenches through the Addon Manager (Tools > Addon Manager)
- Configure units, navigation style, and display settings in Edit > Preferences
- Set up macro paths for Python automation scripts
- Use the Start workbench to access recent files and tutorials
Key Features
- Parametric constraint-based sketcher for precise 2D profile creation
- Modular workbench system with Assembly, FEM, Path (CNC), and BIM modules
- Full Python scripting API for automation, macros, and custom workbench development
- Open CASCADE-based geometry kernel supporting advanced B-Rep operations
- Extensible through community add-ons including rendering, fasteners, and sheet metal
Comparison with Similar Tools
- Fusion 360 — cloud-based with integrated CAM, but proprietary and requires a subscription for commercial use
- SolidWorks — industry standard for mechanical design, but expensive and Windows-only
- OpenSCAD — code-based 3D modeling via CSG, but no interactive GUI modeling workflow
- Blender — powerful 3D modeling and rendering, but focused on artistic rather than engineering workflows
- Onshape — browser-based parametric CAD, but proprietary with limited free tier
FAQ
Q: Can FreeCAD handle assemblies? A: Yes. The Assembly workbench (integrated in FreeCAD 1.0+) supports multi-part assemblies with mates and constraints.
Q: Is FreeCAD suitable for 3D printing? A: Yes. FreeCAD exports STL and 3MF files and includes mesh repair tools for print preparation.
Q: Does FreeCAD support Python scripting? A: Yes. Nearly every feature is accessible through the Python console and scripting API, enabling full automation.
Q: What file formats does FreeCAD support? A: FreeCAD reads and writes STEP, IGES, STL, OBJ, DXF, SVG, and its native .FCStd format (a zipped XML document).