FreeCAD 1.0 – long-awaited revolution in free and open-source CAD environment
Source (modeled in FreeCAD): https://grabcad.com/library/t12-digital-controller-soldering-station-for-ryobi-batteries-1

FreeCAD 1.0 – long-awaited revolution in free and open-source CAD environment

26/11/2024
|

Users of FreeCAD (the best truly free CAD software) had to wait a few years for the revolution bringing the “fix” (at least its major part, more about it in the next paragraph) for the Topological Naming Problem considered the biggest flaw of FreeCAD. This change finally came but the revolution did not end on it – many more goals were achieved.

However, Topological Naming Problem mitigation was the main milestone in modern history of FreeCAD development. Another major goal planned for years was built-in assembly module. Rebuilding the material handling system was also crucial. Achieving those milestones, along with many other large scale changes mentioned further in the article, led to the release of FreeCAD 1.0 instead of 0.22. Even the logo was changed on this occasion. This stable version of FreeCAD was released on November 18, 2024.

Full list of changes can be found on the Release notes page. There are lots of improvements and they span a very broad range. Listing them all here would not make sense so only the most important ones will be discussed.

Major mitigation of the Topological Naming Problem

Major mitigation of the Topological Naming Problem (TNP) is considered the biggest change. In short, this problem causes incorrect recomputation of models subjected to significant changes in intermediate operations. It is causes by the changes in the internal names of geometric features. It could be easily triggered by modeling three simple extrusions one on top of the other. Major change of the middle one was preventing the top one from being properly rebuilt. FreeCAD users are advised to avoid attaching sketches to existing geometry and relying on references to it.

This is also a good practice in commercial CAD software where this issue exists as well to some extent but in FreeCAD it was particularly severe and common. For a few years, there has been an alternative version of FreeCAD – Link Branch, developed by Realthunder. TNP is mostly fixed in it and for a long time there have been preparations to implement this algorithm in the official version. It was a large, multi-stage project but a group of developers eventually completed it and a pull request activating this code was merged on May 21. To put it simply, after each modification in the model tree there is a check for changes in geometric feature names and subsequent operations are updated to account for these changes. It is important to highlight that TNP is not completely eliminated because, as mentioned above, even commercial software may exhibit it in some situations.

Moreover, there are still special cases where this issue is observed to some extent (especially with fillets and chamfers that by themselves are some of the weakest sides of the CAD kernel used by FreeCAD). Selected workbenches, like TechDraw, may require separate changes to make use of the TNP algorithm. Thus, saying that TNP was fixed is just a simplification and one should actually call it (major) mitigation. Because of that, it is still advised to make careful use of references to existing geometry and report any encountered bugs, not only related to TNP. FreeCAD may not always be able to identify the changed names of the geometrical features but there are ongoing works to further improve this algorithm and next releases should work better in this regard. At the moment, the robustness of this algorithm is meant to correspond to the Link version but there may of course be some differences.

Built-in Assembly workbench

Built-in handling of assemblies has always been one of the biggest missing features in FreeCAD. It was necessary to choose between several external assembly modules available for download from Addon Manager. Finally, thanks to Ondsel company, a new assembly solver was published and a workbench using it was added to FreeCAD as an official built-in assembly modeling environment.

It is still very new and thus not complete but it already has many important features such as different types of joints, exploded views and Bill of Materials (BOM). Of course, external assembly workbenches are still available and, because of their longer development, more feature-rich/robust in some ways. However, in the future many of those differences may fade away.

FreeCAD 1

Rebuilt material handling

Complete overhaul of the material handling system, including the material editor, was very important for further development of FreeCAD. Now there is also a preview for the appearance of each material and support for model properties. More improvements are on the way, including automatic calculation and display of model’s mass, assignment of orthotropic properties, textures, display of material information in the tree for Part Design, better usability of the material editor and database interface to share materials more easily.

However, foundations for that are now laid and material handling in FreeCAD is much more advanced. Previously, it was one of the weakest sides of FreeCAD waiting for improvement.

Revolution in the Sketcher

The biggest changes of all the existing FreeCAD modules were made in the Sketcher. Mostly thanks to a new developer who also created the Assembly workbench. First of all, there is a new, convenient, versatile dimensioning tool that can easily replace all the existing tools of this kind making them unnecessary in most cases – thus they are grouped under it by default. There was also a change in the way new geometry is created in the Sketcher – thanks to the On-View-Parameters feature most sketching tools have input fields displayed in the working space and making it possible to enter dimensions on the go while also creating dimensional constraints. Moreover, many tools have additional modes and settings in the task panel.

Sketcher finally got almost all the most important missing tools. One of the most requested ones was offset. What is more, there are new rectangle modes, arc slots, chamfers (previously only fillets were available), scaling and polar patterns. Separate tools for translations/linear copies were replaced with a single linear pattern tool. Mirroring was also improved.

New features in the Sketcher also include copying, cutting and pasting with standard keyboard shortcuts, automatic vertical/horizontal constraint, optionally unified coincident and point on object constraint, automatic creation of symmetry constraints when snapping to midpoints of lines, trimming by dragging the cursor, arc length dimensions and better rendering of angular and arc dimensions. Points in the Sketcher are colored based on their type, the line style can be customized (construction lines are now dashed) while another developer added support for tangency to B-spline edge.

FreeCAD 2

New features in the FEM workbench

The second module with the biggest changes is FEM. Over 80 issues were resolved including bugs and missing capabilities. Especially the support for CalculiX features was extended. New options include cyclic symmetry defined using tie constraints and making it possible to analyze a repetitive segment of a model exhibiting this type of symmetry. This is especially useful for discs, rotors, shafts and other similar parts. Now there is also support for 2D analyses (plane stress/strain and axisymmetric) activated using the Model Space property of the CalculiX solver object. They serve as another way to reduce the computational model size if a problem can be simplified to such a 2D case.

Support for CalculiX’s rigid body constraint is another key change. It cannot be used on whole parts/volumes to make them rigid yet but it is the best way to apply torque, prescribed rotations and remote forces to arbitrary faces. Until now, it was possible to simulate torsion pretty much only using transformation to local cylindrical coordinate system but it is possible only for cylindrical faces. Thanks to the new constraint, one may simulate torsion of any component.

What is more, tie constraints and contact were significantly improved and have new settings. Beam elements with reduced integration (necessary for pipe cross-section and accurate results with plasticity) can now be used and there are options to define the output frequency and minimum/maximum increment size for CalculiX analyses. Gravity load can now have its acceleration magnitude changed while plasticity can be defined with kinematic hardening in addition to isotropic one. There is now also simple generation of hexahedral elements using the subdivision technique offered by Gmsh.

Several improvements were made for thermomechanical analyses. The new Thermo Mech Type property makes it possible to run uncoupled and purely thermal simulations. Heat flux load got support for surface radiation to ambient. Volumetric heat source can be used with CalculiX and has two input modes while available results were extended to support heat flux.

Smaller changes include, among the others, corrected naming of tools in this workbench (most had redundant “constraint” in their names), removal of obsolete tools from the interface, improvement of many icons, better automatic scaling of symbols of analysis features and possibility to rescale them manually, support for more matrix solvers for CalculiX (may require certain solver versions and additional libraries), support for stress tensor components in the stress linearization tool and new properties related to mesh display. Mesh generators were also improved, especially in terms of the Netgen implementation which has always been problematic.

It is also important to mention the possibility to suppress analysis features and hide mesh elements selected with a polygon. Many severe bugs and incorrectly functioning features (e.g. pressure load on shells) were fixed too. There is still a lot of work, mainly because of other missing capabilities (like advanced material models) or postprocessing limitations but working in the FEM workbench is now much more convenient.

FreeCAD 3

TechDraw improvements

Many new features were added to the TechDraw workbench used to create technical drawings from 3D models. One of the most requested changes was introduction of the tool to create broken views, often needed to depict long parts. There is also a new contextual dimensioning tool based on the one implemented in the Sketcher. Views and dimensions can now be snapped for better alignment. Other new features include arc length dimensions, cosmetic circles, vertices defined by offset and new view creation tool combining 6 tools that have only been available individually before. Selection, deletion of cosmetic objects and line appearance modification were also improved. The remaining changes include drawing templates, icons and line styles.

Changes in Part Design

The main solid modeling workbench – Part Design, gained several new capabilities. There are additional modes for revolution and revolved cut, better task panels for extrusion (pad) and extruded cut (pocket), new pattern modes and extrusion to multiple faces. Operations can now be suppressed and there is a new mode for all patterns and mirror tool to perform the transformation on the whole object instead of the tool shapes of the selected additive/subtractive operations. What is more, experimental support for multiple solids within a single Body was added (requires activation in the preferences).

Improvements in other workbenches

Many other workbenches gained new features. Part now has a scale tool and mirroring can use any references as symmetry planes.

Draft has several improvements including changes in working plane and grid handling (now the grid hides automatically when switching to another workbench) as well as preferences.

Arch was merged with add-on BIM workbench forming the new built-in BIM module. Path, used to generate toolpaths for CNC machines, was renamed to CAM for clarity. It also got a new, significantly improved machining simulator.

General changes in the interface

The new version of FreeCAD includes many changes in the user interface independent of specific workbenches. There are so many of them that it is better to just list the most important ones in bullet points:

  • rotation center indicator,
  • simple selection filters (for vertices, edges and faces),
  • optional display of model tree and task panel without background,
  • light position settings,
  • improved layout of the preferences window and possibility to restart them on different levels,
  • optional workbench selector with tabs,
  • new measurement tool – replaces several old tools of this kind, has multiple modes and works in all the workbenches,
  • view normal to a face,
  • project level unit system and meters-only unit scheme,
  • transparency toggle,
  • better default model appearance,
  • visibility icons,
  • frozen object state (disabling parametric behavior),
  • better support for 3D manipulators,
  • quick measure – value for current selection shown in the status bar,
  • VarSet – a container for properties to be used as variables in expressions,
  • improved built-in themes – currently 3 themes are available by default – classic, light and dark,
  • improvement of many icons,
  • start page turned into an application instead of a module, buttons with templates and simple first startup wizard,
  • safe mode temporarily disabling all the add-ons and user configurations.

What next?

As explained above, version 1.0 of FreeCAD is in fact the largest revolution in modern history of this software. The number of changes and their range are huge. Topological Naming Problem was mostly eradicated, there is a new Assembly workbench and overhauled material handling system. Workflow in the Sketcher changed almost completely but many of those changes can be disabled in the preferences if desired. FEM became much more user-friendly and reliable while other workbenches and the whole interface gained many useful options.

Source (modeled in FreeCAD): https://grabcad.com/library/automatic-tool-changer-for-iso20-tool-holders-1

Source (modeled in FreeCAD): https://grabcad.com/library/automatic-tool-changer-for-iso20-tool-holders-1

Because of the level of changes, despite intensive bug fixing, users may encounter some issues with the new and old features (in the latter case mostly due to TNP and Sketcher code). Thus, it is particularly important for the development of FreeCAD to report all the encountered bugs on the forum (if there is a need to discuss the problem) or directly on GitHub (preferred, especially for obvious bugs). The next bug fix release will probably be released sooner than usual.

Intensive development will continue. Further plans include improvement and modernization of the graphical interface that started in this version, increase of its intuitiveness (by reduction of feature/workbench redundancy, among the others) and addition of missing industry standard features known from other CAD software.

From the ongoing works, the ones particularly worth mentioning are enhancement of datum geometries and their independence of Part Design, transform manipulator improvements, introduction of semi-transparent visualizations of 3D operations, easier handling of projected geometry in the Sketcher as well as addition of shadows and ambient occlusion for rendering. Grants for FreeCAD development are still offered, new events are planned and more volunteers keep joining the FreeCAD team to help with various aspects.

On this occasion, it is worth highlighting that making small enhancements does not usually require deep knowledge of the source code and may still be very helpful. Many experienced developers are willing to help. Thanks to that, the author of this article was able to join the development of the FEM workbench. Finally, it remains to encourage readers to become interested in FreeCAD, possibly also from the development side.