Release notes 1.0

From FreeCAD Documentation

FreeCAD 1.0 was released on 18 November 2024, get it from the Download page. This page lists all new features and changes.

Older FreeCAD release notes can be found in the Feature list.

In memoriam: Bradley McLean (bgbsww)

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.

General

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.

Pull request #13705

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.

Pull request #10427

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.

Pull request #14284

User interface

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.

Pull request #9909 and Pull request #10790


Click on the image if the animation does not start.
Selection filters were added, facilitating the selection of vertices, edges and faces.

Pull request #10271

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.

Pull request #10681 and Pull request #10848

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.

Pull request #10706

Realthunder's feature allowing for the overlay of dock widgets (tree and task transparency) has been added.

Pull request #7888

The light source position can now be set in the preferences (Preferences → Display).

Pull request #11146 and Pull request #15877

The Preferences window was redesigned to replace the tabs with a tree view.

Pull request #11018

TabBar workbench selector was added. It can be enabled and configured in Preferences → Workbenches.

Pull request #12270

A new universal measurement tool was added, replacing the old Part Measure tools.

Pull request #9750 and following


Click on the image if the animation does not start.
The Align to selection tool was added, making it possible to enter views normal to faces or following edge directions.

Pull request #13906

Further user interface improvements

  • A project unit system was introduced. Pull request #9521
  • The Section Cut tool now also works in a perspective view. Pull request #10143
  • An option to sort workbenches alphabetically (available after right-clicking in Preferences → Workbenches) was added. Pull request #10363
  • A Find file filter and a Find in files filter were added to the Std DlgMacroExecute dialog. Pull request #10714
  • The View menu and the View toolbar have been revised. Pull request #10761
  • The stop button was removed from the Macro toolbar. The record button now switched to a stop button when recording is in progress. Pull request #10836
  • 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
  • Preferences to customize the current theme were added. Pull request #10238
  • 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
  • Default shape color was adjusted to improve the appearance of the models. Pull request #12380 and Pull request #12488
  • 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
  • A command to display the Property View panel was added. Pull request #12024
  • 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
  • The Fit all icon was replaced for clarity. Pull request #14180
  • Multiple core icons (such as New) were improved. Pull request #14278, Pull request #14434 and Pull request #14154
  • Icons of the Sketcher and Part Design task panel headers were improved. Pull request #13968
  • In headless mode the interactive Python console now features tab-completion, provided the readline module is available. Pull request #14213
  • 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

File format changes

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.

Core system and API

Core

  • Vector functions from the Vector API can now be used in Expressions. Pull request #8603.
  • 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

API

New Python API

Changed Python API

  • 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.

Start

The Start Workbench has been replaced by a Start page, a QtWidgets-based app. It can be displayed using the Help → Start option. Pull request #13134

The first two pull requests mentioned below belong to the Start Workbench, but have informed the design of the Start page.

A New file section that includes a number of quick-start buttons has been added to the Start Page.

Pull request #10171

The visual design of the Start Page has been overhauled. It now looks more modern and consistent.

Pull request #10391

A simple first start widget was added and will be extended in the near future.

Pull request #13650

Assembly Workbench

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.

Pull request #10427, Pull request #10764, Pull request #12406 and more

Further Assembly improvements

  • An Exploded View was added. Pull request #12419
  • Assembly icons were updated and the experimental features exposed. Pull request #13866
  • Angle, Perpendicular and Parallel joints were added. Pull request #14008
  • A Bill of Materials feature was added. Pull request #14198
  • Support for the TNP mitigation code was added. Pull request #14674
  • 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

BIM Workbench

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

Further BIM improvements

  • Coming from the BIM workbench, some "all-in-one" Arch tools have been split into different use cases: The Arch BuildingPart tool has been split into the BIM Building and BIM Level tools, the Arch Structure tool has been split into BIM Column, BIM Beam and BIM Slab, and the Arch Window tool has been split into BIM Window and BIM Door. Internally, those tools still produce the same object, only with different IFC types and presets applied. 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 BIM preferences have been checked and improved. The pages in the Preferences Editor have a new layout. Pull request #11940 and Pull request #12038
  • An Opening only preset has been added to the Arch Window command. Pull request #12209
  • 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
  • FreeCAD now has a new BIM example file. Pull request #14937
  • 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

CAM Workbench

Further CAM improvements

  • 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
  • A new CAM simulator based on low-level OpenGL functions (faster and more precise) was added. Pull request #13884 and Pull request #15597
  • 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
  • Machinability material models were added along with several materials. Pull request #14460, Pull request #15910 and Pull request #16021

Draft Workbench

Further Draft improvements

FEM Workbench

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.

Pull request #10552

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.

Pull request #11724

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.

Pull request #12289

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

Further FEM improvements

Material Workbench

The material handling system, including the editor, has been completely reworked. Further improvements in this regard will follow.

Pull request #10690

Appearance preview was added to show the materials in the same way they will be shown in documents.

Pull request #11628

The new material system is now used for appearance properties.

Pull request #13294

Further Material improvements

  • 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 Workbench

Part Scale tool was added to allow for easy scaling of shapes without having to use tools from the Draft Workbench.

Pull request #10583

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.

Pull request #11535

Further Part improvements

  • The Frenet property is now enabled by default for the Part Sweep tool to avoid a common rendering issue. Pull request #11590
  • A new attachment mode called Intersection was added to the Engine Line. It finds the intersection of two planar faces. Pull request #12328
  • The Part ProjectionOnSurface tool is parametric now. Pull request #13158
  • 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

PartDesign Workbench

More modes were added to the revolution and groove features - to first/last, up to face and two dimensions.

Pull request #7193

Pad and pocket task panels were improved (reordered UI elements, Select face option hidden when unnecessary and so on).

Pull request #10392

Offset mode was added for linear and polar pattern. The previous mode was renamed Overall Length.

Pull request #10377

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.

Pull request #13960

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.

Pull request #11392 and Pull request #14433

Further PartDesign improvements

  • The Make thickness inwards option is now enabled by default for the Thickness tool. Pull request #7488
  • Datum points now change color when highlighted or selected (like other datums). Pull request #12439
  • Part Design icons where slightly improved for consistency. Pull request #13109
  • A Suppressed property was added to temporarily disable a feature. Pull request #12096 and Pull request #12412
  • 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
  • The layout of the Hole tool dialog was improved. Pull request #14031
  • The Migrate tool was removed from GUI since it was only useful for migrations between versions that are now highly outdated. Pull request #15196

Sketcher Workbench

Implementation of a circle overlay for arcs (to solve the issue of constraints appearing away from them) was completed with a command to switch them.

Pull request #9703


Click on the image if the animation does not start.
A contextual Dimension constraint tool was added to enable quick and intuitive dimensioning with a single versatile tool.

Pull request #9810


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.

Pull request #11048, Pull request #11174 and following

An Offset tool was added to allow offsetting curves.

Pull request #11174

Three-point rectangle mode was added in two versions - 3 corners or center and 2 corners.

Pull request #11174

An Arc slot tool was added with two modes (arc ends and flat ends) to allow for the creation of curved slots

Pull request #11174


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.

Pull request #11538

Rendering of angle and radius constraints was improved. Angle constraints have full extension lines now.

Pull request #11507

A Polar transform tool was added to allow rotation and circular patterns of sketcher geometries.

Pull request #11264


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).

Pull request #11537

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.

Pull request #11265


Click on the image if the animation does not start.
Tangency to B-spline edge was added, eliminating the need to use endpoints and various workarounds instead.

Pull request #11853

The RectangularArray, Move, Copy and Clone tools were replaced with a single Array transform tool.

Pull request #11267

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.

Pull request #12898


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.

Pull request #11853


Click on the image if the animation does not start.
Symmetric constraint is now applied automatically when the midpoint of a line is picked.

Pull request #13147

Distance dimension constraint can now be used for arc length constraints (circular arc has to be preselected).

Pull request #12602

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).

Pull request #13098


Click on the image if the animation does not start.
The Trim edge tool can now be used in hold and drag mode.

Pull request #13188

Further Sketcher improvements

Spreadsheet Workbench

Further Spreadsheet improvements

TechDraw Workbench

The CosmeticCircle tool was added to allow for the creation of cosmetic circles by selecting the center and inputting the radius.

Pull request #10763

The ArcLengthAnnotation tool was added to create dimension-like annotations of arc length of selected edges.

Pull request #11532

The AddOffsetVertex tool was added to create cosmetic vertices as offsets from selected vertices.

Pull request #11655

The BrokenView tool was added to depict long objects easily.

Pull request #13331


Click on the image if the animation does not start.
A new context dimension tool was added based on the one introduced in the Sketcher.

Pull request #13525

Further TechDraw improvements