As much as we're delighted to present you this new version, we are also sad to announce that our friend and prolific FreeCAD developer bgbsww has passed away a few weeks before this release came out. He was one of the main architects of the topological naming fixing effort, wrote a lot of additional code and tests, and became FreeCAD's TNP specialist. He also helped virtually all other developers out to adapt to the new algorithm. This release is dedicated to him.
The long-standing Topological naming problem has finally been addressed thanks to the joint effort and hard work of several developers. Realthunder's algorithm has been carefully implemented and improved to work in the master version of FreeCAD. The project took over a year, and the initial implementation has been finalized with the following PR enabling the improvements. The TNP problem is not completely solved and further improvements will follow in the next version.
FreeCAD has a new built-in Assembly Workbench, based on the original work done for what we used to call "the other FreeCAD", another software, also named FreeCAD, with motion simulation capabilities created at the same time as ours. The porting has been done by the other FreeCAD's author himself, Dr. Aik-Siong Koh, and with this dramatic move both FreeCADs are now finally united. Read below for more information.
FreeCAD has a new logo. It was selected from the 5 winners of the public contest. Usage guidelines and a logo kit are available on the FreeCAD brand guidelines page.
A rotation center indicator has been added. This indicator is shown when the view is rotated by dragging the mouse. It can optionally be disabled in the preferences. There are also settings for its color, transparency and size.
For more flexibility, the task panel is now a stand-alone widget. It can be docked on top of the Combo view to achieve the compact layout of earlier versions.
The appearance of the Transform tool dragger has been improved. It now also has a set of planar draggers for moving objects along the 3 default planes.
The reset button in the Preferences now shows a menu with options to reset the settings at different levels: all, in the current group or in the current tab. Pull request #10688 and Pull request #11038
The Help Module was merged so that it's no longer necessary to download an add-on to make use of it. Pull request #11008
Default selection settings were changed to make the selection of objects in the 3D window easier. Pull request #11187
A meters-only unit scheme named Meter decimal was added since the MKS (m/kg/s/degree) system doesn't always result in dimensions being displayed in meters - millimeters are still used for values below 0.1 m while for some applications (e.g. civil engineering) a unit system that actually changes the display of all dimensions to meters is useful. Pull request #11365
Additional marker sizes (20, 25 and 30px) were added to Preferences → Display → 3D View → Marker size in order to assist users of 4K screens. Pull request #11524
A Toggle transparency option was added to the View and context menus to quickly switch transparency on or off for selected objects. Pull request #10805
A Lock toolbars command was added. With it toolbar positions can be locked or unlocked. It is available in the View menu and the toolbar area context menu. Pull request #11596
Items within Part and Group containers can now be sorted by drag and drop. Pull request #12293
Visibility icons (eye symbol) are added to tree objects if the Show visibility icon option is checked in Preferences → Display → UI. Pull request #12298
A frozen status (Toggle freeze option in the context menu in the tree) was added, making it possible to turn off the parametric behavior of an object (so that it doesn't change even if the objects it depends on change). Pull request #12580
Navigation animations have been improved. Animations now use an easing function and have a fixed duration which can be changed in Preferences → Display → Navigation. Pull request #10881 and Pull request #12205
The buttons for the default views are now grouped under a single button. The individual buttons are still available in the additional Individual views toolbar. Pull request #12878
The name of the current active document is now also displayed in the window title bar. Pull request #12035
The integration of 3Dconnexion devices with FreeCAD on Windows was improved. Pull request #12929
A Quick Measure feature was added. It uses the Status bar to display key measurement information (edge length, face area, distance/angle between points/edges and radius of circular edges/cylindrical faces) about the current selection in the 3D view. Pull request #12217
Toolbars can now be dragged and dropped to the status and menu bars. Pull request #13571
A Reload stylesheet button was added to aid the stylesheet development. It doesn't belong to any toolbar by default, it has to be added manually from Tools → Customize → Toolbars → View. Pull request #13982
Document icons (including the Open and Save ones, among others) were improved and unified. Pull request #13865
An option to display internal names in the tree view was added. It's disabled by default and can be activated in Preferences → Display → UI → Hide Internal Names. Pull request #14237
The Help button was removed from the Preferences because it was non-functional. Pull request #14695
Default stylesheets were improved significantly and are now offered in two variants other than classic - light and dark. Pull request #13772
The Theme and UI pages in the Display group of the Preferences have been reorganized and combined. Some preferences have been moved to the new Advanced page. Pull request #14974
The Part/Part Design check and refine preferences are now activated by default. Pull request #14406
A new parameter was added - BaseApp/Preferences/Bitmaps/Theme/UseIconTheme (boolean): Set to true to force Qt to use icons from the system's icon theme. The default is false so FreeCAD will use its own icons. It does not affect other Qt icon theme mechanisms such as system dialogs, buttons and others. Those should always use the icons from the system theme. Pull request #16018
Stylesheet, theme and QtStyle information is now included in Help → About FreeCAD. Pull request #16281
Splash screen is now randomly selected on startup from multiple images including user models and presentations of some of the add-on workbenches. Pull request #16071
A safe mode was added and can be activated via Help → Restart in safe mode. It temporarily disables user configurations, addons, themes and other customizations to run FreeCAD in a "factory reset" state for debugging. Pull request #16858
Although precautions have been taken to guarantee that files created with the new 1.0 version can still be opened in older versions of FreeCAD, some new features introduced in 1.0 cannot be understood by earlier versions, and can cause models saved with 1.0 to break or present problems when opened in earlier versions of FreeCAD. Here is a summary of possible issues you might encounter and their solution. The forum community can also provide help in fixing compatibility issues.
the Attachment property has been renamed to AttachmentSupport. This means features relying on that property (most notably models using the Assembly4 addon) will need to be fixed to be opened in an earlier version of FreeCAD. A macro is available here to fix those files.
The Python editor now matches indentation of the previous line when pressing the enter key. Pull request #11356.
The name of the property holding the reference object(s) of an attachment has changed from DataSupport to DataAttachmentSupport. Pull request #12714.
A property container, App::VarSet, has been introduced as a core feature. A VarSet allows users to define properties that can be used in models just as spreadsheet aliases and other previous property containers (Dynamic Data, Path PropertyBags, and Assembly 4 Variables). Pull Request #12135
To save/restore custom data from a Python feature, the previously called methods __getstate__/__setstate__ have been renamed to dumps/loads. This is due to internal changes in Python-3.11. Pull request #10769 and Pull request #12243.
A built-in Assembly workbench was finally added to FreeCAD. It uses the open-source Ondsel solver. Basic functionalities (joints) are already available. Further development is in progress.
Flexible sub-assemblies support was added. Sub-assemblies added to a parent assembly can be defined as rigid (a solid unit) or flexible (allow movement of their individual components). Manual steps are required for those sub-assemblies added during the development cycle prior to merging this feature. Those assemblies will need to be removed and re-added to their parent assembly. Pull request #15629
The Arch Workbench has finally been merged with BIM, becoming the new BIM workbench. The new BIM workbench keeps all the tools from Arch, and adds a few more, and brings many refinements to the whole BIM and architectural design workflow, plus better setup and management tools, and better IFC support. Pull request #13783
NativeIFC has also been merged into the new BIM workbench. With NativeIFC, you can now work on IFC files in FreeCAD natively, with no more translation to and from the FreeCAD file format. Read more on the NativeIFC page. Pull request #13783
The Arch CutPlane command has been improved. It is now nesting and link aware and the selection is more flexible. Edges can also be selected making the Arch CutLine command obsolete. Pull request #11254 and Pull request #11792
The Arch Roof object now has a Subvolume property. This allows to use a custom solid object as the subtraction volume for a roof. Pull request #12346
Furthermore for an Arch Roof object that uses a solid object as its Base an appropriate subtraction volume is now automatically generated. Just as a wire-based roof, such a roof can be subtracted from the walls of a building with Arch Remove. Pull request #13221
The Arch Reference tool has been upgraded: reference objects can now use whole file contents instead of having to choose a part, support for DXF and IFC files has been added. Pull request #13287
The new BIM workbench also offers a series of new management tools, to help you set up your project, or bulk manage IFC properties of your objects. Read more on the BIM Workbench page.
IfcOpenShell, another piece of open-source software needed to work with IFC files in FreeCAD, is now bundled in all official installer packages offered by the FreeCAD team. If you get FreeCAD from a third-party provider, such as your Linux distribution, where IfcOpenShell has not made it yet as an official package, the BIM workbench offers a utility tool to download and install IfcOpenShell. And if you have no use for IFC, the BIM workbench still works 100% without IfcOpenShell.
The toolbars and menus of the BIM Workbench were reworked. Pull request #14087
Rest machining was reimplemented to take input from the G-code of earlier operations (instead of using the internals of Area operations). This enables support for rest machining in Area operations after non-Area ones (most notably Adaptive). Pull request #11939
G43 tool height compensation was added to the centroid CAM post-processor. Pull request #12652
A Feed retract option was added to drilling operation settings for reaming and boring. Pull request #13254
The Vcarve operation was reworked to include features commonly available in other CAM software (Step down, Finishing pass, Head movement optimization and debugVoronoi method) making it possible to drastically improve the carved surface quality while increasing the carving speed up to 50%. Pull request #14093
The behavior of the grid has been improved. Its visibility is now stored per 3D view. When switching to a different workbench all grids are hidden (a fine-tuning parameter is available to disable this). Pull request #11336
A new Mouse delay setting has been added to the General Draft preferences. If it's non-zero (default is 1 s), after entering a number in one of the task panel input fields, mouse movement will be disabled, and thus won't change the value in the input field, for a given time in seconds. Setting a very large value practically disables mouse movement until the command is finished. Pull request #12624
The button of the Toggle grid command now behaves like a toggle button, providing visual feedback of the grid status (visible or hidden). Pull request #14452
Some Draft icons were changed to improve their appearance. Pull request #13585
The Draft Layer object has been updated for the new material handling system. It now has a Shape Appearance property and a Override Shape Appearance Children property. Pull request #13949
The position of the color legend labels was adjusted to make the top ones less likely to be covered by the navigation cube. The default font and color of the labels was changed to increase the visibility and preferences were added to allow label color and size modification.
The FEM PostFilterLinearizedStresses command can now use the stress tensor components for linearized stress computations. Previously, only Von Mises, Tresca and principal (major/intermediate/minor) stresses could be used for this.
Support for cyclic symmetry via tie constraint in CalculiX was added, making it possible to analyze models with rotational periodic symmetry using a single repetitive sector.
Support for 2D (plane stress, plane strain and axisymmetric) analyses was added for the CalculiX solver. They are configured in the same way as simulations with shell elements but there are some additional restrictions described on the aforementioned wiki page. The new Model Space option has to be set properly. Pull request #12562
As the first step towards the support for hexahedral elements, their generation using Gmsh subdivision technique is now possible thanks to the new Gmsh property Subdivision Algorithm. It can also be used to create quadrilateral elements. Pull request #12698
New View properties were added to the results pipeline objects. Mesh edge color and width can now be changed for the Surface with Edges display mode. Node size can be modified for the Nodes mode. There is also a transparency setting for all modes. Pull request #13066
FEM constraints can now be suppressed (right-click on a constraint and select Suppress) and thus ignored by the solvers. This way, it's possible to modify the analysis setup without having to delete the currently not needed constraints. Pull request #12359
Support for the CalculiX's rigid body constraint was added, finally making it possible to simulate torsion of arbitrary components and apply remote loads, among others. Pull request #13900
The Model → Constraints without solver menu was removed from the GUI. The listed constraints could not be used. Pull request #10457 and Pull request #10459
The word "constraint" was removed from the names and descriptions of most features in the FEM workbench to ensure the correct nomenclature. The names were changed in such a way to fit the standards in the FEA industry and to make them intuitive for new users. Pull request #10519 and Pull request #10799
Solver CalculiX (new framework) was removed from the GUI since it's unfinished and unnecessary at the moment. Its examples were also removed. Pull request #10823 and Pull request #12876
The layout of some postprocessing tool task panels was improved to reduce the size of the horizontal space occupied by them. Pull request #11066
Contact and tie constraint were significantly improved. Contact stiffness now uses the correct unit and stick slope value can be specified for friction in contact. Moreover, clearance adjustment can be specified for contact while tie constraint may have adjustment enabled or disabled. Pull request #12133
PaStiX and Pardiso were added to supported CalculiX matrix solvers. They are the fastest ccx solvers but the possibility of using them depends on the CalculiX binary version and available additional libraries. Pull request #12478
The Beam Reduced Integration property (set to true by default) was added to CalculiX solver settings. It enables a reduced integration scheme for beam elements, making it possible to use the pipe beam section and eliminating accuracy issues in analyses with plasticity, among others. Pull request #12513
The Check Mesh CalculiX analysis procedure now generates the results mesh properly. Pull request #12612
It was clarified in the task panel that the diameter used by the pipe beam section is the outer diameter. Pull request #12609
The Beam Shell Result Output 3D property of the CalculiX solver is now set to true by default to provide results for beam elements and provide meaningful results for shell elements. Pull request #12493
Symbols of analysis features are now properly positioned when the Body (or Part container) has modified placement property. Pull request #12527
Pressure load is now working properly for shells regardless of the mesh groups setting. This setting can be changed in the Preferences. Pull request #12437
Now geometric nonlinearity is not automatically activated and required when a nonlinear material is used. Those are independent forms of nonlinearity. Pull request #12703
Mixed meshes consisting of both triangular and quadrilateral elements are now displayed properly in the results pipeline. Pull request #12740
Second-order quadrilateral elements can now be generated. Previously, the 2nd order Gmsh setting was generating 1st order quad elements because of the lack of a SecondOrderIncomplete Gmsh command which is now used internally. Those elements can also be used for 2D analyses. Pull request #12698 and Pull request #12774
The determination of beam cross-section orientation was partially fixed. Due to a bug in the current release of CalculiX, there may still be issues with some orientations. Pull request #12833
Cantilever FEM examples on the Start page were updated and a new one using 1D elements was added. Pull request #12871
The format in which FreeCAD writes the force constraint is now compatible with the CalculiX format, eliminating rare issues with too long numbers. Pull request #12932
New incrementation control properties were added to CalculiX solver settings. Currently, in addition to the initial increment size and time period of the step, one can specify minimum and maximum increment size. Also, the Iterations Thermo Mech Maximum property was renamed to Iterations Maximum as it can now be used for static (non-thermomechanical) analyses too. Pull request #12662
Many FEM icons were significantly improved to reduce their similarity and make it more clear what the tools do. Pull request #13130
The Thermo Mech Type property was added to CalculiX solver settings. It makes it possible to switch a regular (coupled) thermomechanical analysis to uncoupled or a pure heat transfer one. Pull request #13296
Min. Size property was added for Netgen mesher to prevent the generation of too small elements when meshing more complex geometries. Pull request #12794
An old issue with a non-functioning symbol scale property for FEM constraints was finally fixed and the Scale property can now be used to adjust the size of symbols of a selected constraint. Pull request #13274
Automatic scaling of FEM constraints was improved to better handle very small and very large objects. Pull request #13586
A few unused constraint symbol View properties were removed. Pull request #13569
New view properties (with the main one being Color Mode) were added to FEM mesh objects so that custom color and transparency settings for meshes can be saved and restored. Pull request #13698
Now only the last added filter under each results pipeline object is visible by default. Pull request #13820
The task panel tips of several constraints were changed to actually reflect the rules of the geometry selection for those constraints. Pull request #13921 and Pull request #14002
Support for heat flux results from thermomechanical analyses was added to the results pipeline. Pull request #14019
The Section print feature was improved, adding support for heat flux and drag stress (not yet available as 3D fluid analyses with CalculiX haven't been implemented yet) results. Pull request #14046
The three FEM examples on the Start page were replaced with one, containing all three variants of the cantilever beam model (1D, 2D and 3D) in Group containers. Pull request #15786
The behavior of the Cancel buttons in the task panels of the Gmsh and Netgen meshers was fixed so that they can be used to abort ongoing meshing which is particularly important when an initial guess regarding element size is too low. Moreover, the Netgen mesher was reimplemented, finally making it possible to use it on all systems, including Linux. Pull request #16515 and Pull request #16433
The Quasi-structured Quad 2D algorithm missing in the Gmsh mesher was added to it along with other fixes. Pull request #15624
Dialogs to view the Appearance and Material properties of an object were added and available as Inspect Appearance and Inspect Material tools. Pull request #13967
Part Mirror now supports reference objects, such as a Part Plane to define an arbitrary mirror plane in addition to the standard XY, XZ, and YZ planes.
Now all the Part icons use the blue theme and the primitives use the same icon for the toolbar and the tree. Pull request #14074
The Create sketch command was added to the Part toolbar and menu since operations such as extrusion typically use sketches as input. Pull request #14318
A new attachment mode called XY parallel to plane was added to the Engine Plane and Engine 3D. It results in an attachment similar to Object's XY but with the XY plane translated to pass through a selected vertex. In contrast to the Translate origin attachment mode, it does not move the origin in 2D/Sketcher. It can be used with origin planes, datum planes and sketches, but also with any object with a Placement property. Pull request #14372
Experimental support for multiple solids within a Body was added. It can be enabled in the preferences (for new Bodies) or in the properties of an existing Body.
Up to shape mode was added for Pad and Pocket, making it possible to end them on multiple faces, as opposed to Up to face mode which allows the selection of only a single face.
The Part Design toolbars have been updated - datums and sketch-based actions are grouped now, Part CheckGeometry was added to the toolbar and menu, and the toolbars were split into individual ones to make it possible to rearrange them. Pull request #13833
Now all the Part Design features use the same icons for the toolbar and the tree. Pull request #14074
A new Transform body mode was added to Part Design mirror and pattern tools, making it possible to transform the whole base feature's shape instead of the individual tool shapes of additive and subtractive features. Pull request #12589
Click on the image if the animation does not start.
Tool parameters were added to allow dimensioning on the go (when drawing shapes). Depending on the preference setting On-View-Parameters, they can be disabled, reduced to dimensions only (no initial coordinates) or fully enabled. Moreover, modes were added for the shape tools. They can be selected using the M key or a drop-down list in the task panel. Some tools have additional settings in the form of checkboxes in the task panel and additional keyboard shortcuts. Currently, the new features are available for points, lines, arcs, ellipses, rectangles, polygons, slots and B-splines.
Click on the image if the animation does not start.
A Horizontal/Vertical constraint was added. It automatically applies horizontal constraint if a line is closer to horizontal orientation or vertical constraint if it's closer to vertical orientation.
Click on the image if the animation does not start.
It is now possible to copy/cut and paste sketch geometry (with constraints) using typical keyboard shortcuts: Ctrl+C, Ctrl+X and Ctrl+V. Not only within a single sketch but also between different sketches or even different instances of FreeCAD. The geometry is copied in the form of Python commands so it can be used in other ways too (e.g. shared on the forum).
A Scale transform tool was added, making it possible to scale the geometry in the sketch using a selected center point and a scale factor or two reference points.
A Chamfer tool was added with an option to switch to the Fillet mode. Moreover, there is no longer a separate Corner-preserving fillet tool. A Preserve corner option (checked by default) has been added to the Sketcher CreateFillet tool.
Click on the image if the animation does not start.
The Symmetry tool has been reworked. Now it works by preselecting the geometry and picking a line or point about which the geometry will be mirrored. A preview is shown and the behavior of the tool can be controlled through tool settings.
The rendering color of points is now different depending on whether it's a normal point/endpoint (white, now created by default when using the CreatePoint tool), a construction point/center point (blue) or a point coincident with another one (red).
Rendering of arc-angle, line-angle and arc-distance constraints was improved. Pull request #12012
Edge types can now be customized not only by changing the color but also pattern and size. This allows e.g. dashed construction lines. Pull request #11996
Sections based on other sections now use the original (uncut) shape by default. This can be changed in section settings to use the previous section instead. Pull request #10281
Cosmetic objects and centerlines can now be deleted by selecting them and pressing the Delete key. Previously, this resulted in the whole view being deleted. Pull request #10695 and Pull request #10813
A checked state was added for the ToggleFrame button so that a user can see whether the button is activated or not. Pull request #11240
The behavior of the DecorateLine tool was improved. Now double-clicking a line invokes this tool. And line styles are correctly restored if the user presses Cancel. Previously, there was no difference between pressing OK and Cancel. Pull request #11188
Color and transparency of faces can now be set per view. Pull request #11315
Multiselection mode was added and can be enabled in Preferences. In this mode, multiple vertices, edges and faces can be selected by left-clicking on them, without having to keep the Ctrl key pressed. Pull request #11417
Non-continuous lines will now follow the ISO/ANSI standards instead of a Qt line style. A new preference was added to select the standard. Pull request #11594
The behavior of the AxoLengthDimension tool was improved. Now, when dimensioning edges parallel to the global coordinate system axes, the actual (3D) value is calculated automatically and inserted into the Format Spec property (as text). Pull request #11678
Small but important usability improvements were made - double-clicking on the TechDraw page now enters this workbench and the TechDraw MoveView tool was replaced by simple drag and drop in the tree. The TechDraw ClipGroupAdd and TechDraw ClipGroupRemove tools were also replaced by tree drag and drop behavior. Pull request #13063
The drawing templates are now automatically filled with available information (like date and title). Pull request #13005
The Project shape tool was removed from TechDraw as it's inherited from the old Drawing workbench and has nothing to do with a TechDraw page. Pull request #13655
Snapping was added to allow automatic alignment of views and dimensions. Snapping can be temporarily disabled with the Alt key modifier. Pull request #13659