============================================ This is a new concept which originates from the new ability of sketcher geometry to store a geometry state via geometry extensions. The idea is that some geometry state is enforced via constraints (InternalAlignment constraints and Block constraint) which effectively set the state. However, it is convenient to have direct access of the geometry state from the geometry for representation (ViewProvider) and for the solver. This is the constraint-driven geometry state concept. The addition/removal of the constraint defines the life cycle of the geometry state and is responsible for setting and removing the state, so that geometry state and constraint are kept synchronised. The life cycle is completed with proper serialisation of the geometry state. In summary: 1. Upon restore, the stored state is restored and any migration is handled to set the status for legacy files (backwards compatibility) 2. Functionality adding constraints (of the relevant type) calls addGeometryState to set the status 3. Functionality removing constraints (of the relevant type) calls removeGeometryState to remove the status 4. Save mechanism will ensure persistance of the geometry state
Your own 3D parametric modeler
Website • Documentation • Forum • Bug tracker • Git repository
This project receives generous infrastructure support from
Overview
-
Freedom to build what you want FreeCAD is an open-source parametric 3D modeler made primarily to design real-life objects of any size. Parametric modeling allows you to easily modify your design by going back into your model history to change its parameters.
-
Create 3D from 2D and back FreeCAD lets you to sketch geometry constrained 2D shapes and use them as a base to build other objects. It contains many components to adjust dimensions or extract design details from 3D models to create high quality production-ready drawings.
-
Designed for your needs FreeCAD is designed to fit a wide range of uses including product design, mechanical engineering and architecture, whether you are a hobbyist, programmer, experienced CAD user, student or teacher.
-
Cross platform FreeCAD runs on Windows, macOS and Linux operating systems.
-
Underlying technology
- OpenCASCADE A powerful geometry kernel, the most important component of FreeCAD
- Coin3D library Open Inventor-compliant 3D scene representation model
- Python FreeCAD offers a broad Python API
- Qt Graphical user interface built with Qt
Installing
Precompiled (installable) packages are available for Windows and macOS on the Releases page.
On most Linux distributions, FreeCAD is directly installable from the software center application.
Other options are described at the wiki Download page.
Build Status 
| Master | 0.18 | Translation |
|---|---|---|
Compiling
Compiling FreeCAD requires installation of several libraries and their development files such as OCCT (Open Cascade), Coin and Qt, listed in the pages below. Once this is done, FreeCAD can be compiled with CMake. On Windows, these libraries are bundled and offered by the FreeCAD team in a convenient package. On Linux, they are usually found in your distribution's repositories, and on macOS and other platforms, you will usually have to compile them yourself.
The pages below contain up-to-date build instructions:
Usage & Getting help
The FreeCAD wiki contains documentation on general FreeCAD usage, Python scripting, and development. These pages might help you get started:
The FreeCAD forum is also a great place to find help and solve specific problems you might encounter when learning to use FreeCAD.
