================================================================================= fixes #9208 Essentially: - The regular mechanism to save toolbar state when changing from one WB to another is not designed to support changes within one WB (e.g. from edit mode and back). - At creation time, toolbars can be initialised with default visible or default hidden state. Additionally, there is third configuration "Unavailable", which refers to a toolbar that is hidden, and the control to enable it is also hidden by default. - The ToolBarManager is extended to enable to set the State of one or more toolbars. - The State refers to changes to be effected on one or more toolbars by client code: * ForceHidden allows to hide a toolbar and also hide its control (a toolbar not available in a mode). * ForceAvailable allows to make a toolbar available by making its control visible, the toolbar itself is visible or not depending on user settings. * RestoreDefault allows to bring the control visibility to the default of the toolbar, the toolbar itself is visible or not depending on user settings. * SaveState allows to store the current visibility state of a toolbar. It enables client code to save the state when appropriate. It provides the only option for default "Unavailable" toolbars, which are fully managed by client code. It provides additional flexibility to save other toolbar visibility on request. For the Sketcher this means: - That edit mode toolbars are not shown outside edit mode. - That edit mode toolbars and non-edit mode toolbars can be configured independently. - that edit mode toolbars' state is saved when leaving edit mode if and only if, the workbench that is selected when leaving edit mode is the Sketcher WB. - it won't save the state if the user manually selected another WB and then left edit mode (why? see limitation above). Limitation: - When switching to another WB while in edit mode, the other WB is activated before the current WB (sketcher WB) is deactivated. This means that at sketcher level, the sketcher has no chance to save states or do other tidy up actions before the tools of the other WB are activated. - This, however, is understood as not relevant enough as to warrant changing the mechanisms in place.
Your own 3D parametric modeler
Website • Documentation • Forum • Bug tracker • Git repository • Blog
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 packages for stable releases are available for Windows, macOS and Linux on the Releases page.
On most Linux distributions, FreeCAD is also directly installable from the software center application.
For development releases check the weekly-builds page.
Other options are described at the wiki Download page.
Build Status
| Master | 0.20 | 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:
Reporting Issues
To report an issue please:
- First post to forum to verify the issue;
- Link forum thread to bug tracker ticket and vice-a-versa;
- Use the most updated stable or development versions of FreeCAD;
- Post version info from eg.
Help > About FreeCAD > Copy to clipboard; - Post a Step-By-Step explanation on how to recreate the issue;
- Upload an example file to demonstrate problem.
For more detail see:
The FPA offers developers the opportunity to apply for a grant to work on projects of their choosing. Check jobs and funding to know more.
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.
This project receives generous infrastructure support from
and KiCad Services Corp.