FreeCAD 0.21 is under development, there is no expected released date yet.
{{Message| Are features missing? Mention them in the [https://forum.freecadweb.org/viewtopic.php?f=10&t=69438 Release notes for v0.21] forum thread.
See Help FreeCAD for ways to contribute to FreeCAD. }}
{{Message|All images on this page must use the _relnotes_0.21 suffix}}
FreeCAD 0.21 was released on DD MM 2023, 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.
Placeholder for an eye-catching image selected by the admins from the user showcases forum.
The Navigation Cube has been updated. The cube is no longer shown in perspective if the 3D view is in orthographic view mode. Corner faces have been made hexagonal and larger so that they are easier to click. Borders have been added around the buttons. Default font selection and sizing has been improved. The Mini-cube menu now includes a checkbox to toggle the movability of the cube. Several new parameters have been added, see the Navigation Cube page for more information.Pull request #7876, Pull request #8266, Pull request #8646 and Pull request #9356.
+++ | Persistent section cut of intersecting objects.Click on the image to see the animation. | The Section Cut tool now allows to cut intersecting objects. This is useful for assemblies where intersections of touching objects can sometimes not be avoided due to numerical issues. | | | Pull request #8252. | +++
The display style of measurement results created using the Part or PartDesign workbench can now be changed in the preferences. Pull request #7148
The workbench selector can now optionally be put in the menubar instead of the toolbar area. Pull request #7679
- The buttons for Print and Edit Mode have been removed from the File toolbar. They can be re-added by customizing your toolbar. Pull request #7570 and commit ea9a04e
- The File toolbar has been split. The buttons for Undo, Redo and Refresh have been moved to the new Edit toolbar. The buttons for Cut, Copy and Paste have been moved to the new Clipboard toolbar. The button for What's This? has been moved to the new Help toolbar. Pull request #7620
- Commands to store and recall a temporary working view have been added. Pull request #7525
- Value changes with the mouse wheel in 'input fields' (a widget type used to enter values in task panels, for example by Draft Line) are disabled if the widget doesn't have the focus and the ComboBoxWheelEventFilter parameter is enabled. This prevents unwanted value changes while scrolling, as was already the case for spin and combo boxes. Pull request #7561
- It is now possible to set a default transparency for new Part or PartDesign objects in the Preferences. Pull request #7103
- There is the new orbit style Free Turntable. It can either be enabled in the Preferences or by pressing the [ button in the Status bar and then using the menu Settings → Orbit). Pull Request #8048
- The Std SetAppearance task panel now also has a button to set the Point Color property. Pull request #7708
- A button has been added to switch the colors of the 3D view background gradient in the Preferences. Pull request #7155
- All transparency settings use now the uniform spin button step of 5%: One click on the button in a dialog or the property editor changes the transparency by 5%. Keep the button pressed to change several 5% steps at once. Pull request #7723
- The Output window has been renamed to Report view for uniformity with the UI. Pull Request #7739
- The Image Workbench has been removed. To insert an Image Plane the Std Import command can now be used. Double-click an Image Plane to change its orientation and scale. The new Std ViewLoadImage command replaces the Image Open command. Pull Request #8955
- The deprecated Raytracing Workbench has been removed. The external Render Workbench should be used instead. Pull Request #9420
- The function cbrt(x) for cubic roots was added for use in Expressions. Pull request #8629
- Many new Properties are available for scripting. Pull request #6717
- Added object creation functions {{Incode|vector}}, {{Incode|matrix}}, {{Incode|rotation}}, {{Incode|placement}} as well as matrix functions {{Incode|mrotate}}, {{Incode|mrotatex}}, {{Incode|mrotatey}}, {{Incode|mrotatez}}, {{Incode|mtranslate}} for use in Expressions. Pull request #8603.
- ShapeFix_EdgeConnectPy: Root class for fixing operations. commit 4d4adb93
- ShapeFix_EdgePy: Fixing invalid edge. commit 4089cbfb
- ShapeFix_FaceConnectPy: Rebuilds connectivity between faces in shell. commit a0eb2e9d
- ShapeFix_FacePy: Class for fixing operations on faces. commit b6cd635c
- ShapeFix_FixSmallFacePy: Class for fixing operations on faces. commit 4c2946c8
- ShapeFix_FixSmallSolidPy: Fixing solids with small size. commit b70d8d37
- ShapeFix_FreeBoundsPy: Intended to output free bounds of the shape. commit 1ee1aee1
- ShapeFix_RootPy: Root class for fixing operations. commit f3e941a3
- ShapeFix_ShapePy: Class for fixing operations on shapes. commit 87db9dcc
- ShapeFix_ShapeTolerancePy: Modifies tolerances of sub-shapes (vertices, edges, faces). commit 125d5b63
- ShapeFix_ShellPy: Root class for fixing operations. commit f3e941a3
- ShapeFix_SolidPy: Root class for fixing operations. commit 8d568793
- ShapeFix_SplitCommonVertexPy: Class for fixing operations on shapes. commit 4b44c54c
- ShapeFix_SplitToolPy: Tool for splitting and cutting edges. commit bbecc3f2
- ShapeFix_WireframePy: Provides methods for fixing wireframe of shape. commit 6843a461
- ShapeFix_WirePy: Class for fixing operations on wires. commit 94f6279a
- ShapeFix_WireVertexPy: Fixing disconnected edges in the wire. commit 8c6ffc99
- FreeCAD.EndingAdd: replaced by FreeCAD.addImportType. Pull request #7167
- FreeCAD.EndingGet: replaced by FreeCAD.getImportType. Pull request #7167
- Several Arch Profile categories have been added: IS RHS, IS SHS, IS Angle and IS Tee. Pull request #7181 and Pull request #7217
- Arch Profile objects now support modification of the profile type after creation. Pull request #7217
- Several edit mode issues have been fixed and the Tree view context menus for Arch objects have been improved. Objects that can be edited now have an Edit option in that menu. The Set colors option was removed for objects without a face or that can only have a single face. Pull request #8122
- Arch SectionPlane objects now handle non-solid objects the same as solid objects. Pull request #8688
- The Invert hinge position tool has been improved. For all rectangular wires the opposite edge is now correctly detected. Pull request #8199
- The Terrain of an Arch Site can now also be a solid. Pull request #8409
- An Arch Site no longer shows a phantom representation of the objects in its Group. Pull request #8409
- The inaccuracy of Draft Snap Near when snapping to curves was fixed. In addition, Draft Snap Perpendicular can now also snap to faces and find multiple points. To snap to a vertex (e.g. a Draft Point) Draft Snap Endpoint must now be used instead of Draft Snap Near. Pull request #7132
- To make working with layers easier their drag and drop behavior was modified. If you drop an object from a Std Group, or a group-like object such as an Arch BuildingPart, on a layer, it is no longer removed from the group, and vice versa. This works without holding down the Ctrl key. Pull request #7462
- The Draft PointArray command now supports more point object types. Any object with a shape and vertices, as well as a mesh and a point cloud can be used. Pull request #7597
- The Tree view context menus for Draft objects have been improved. Objects that can be edited with the Draft Edit command, or that have a dedicated edit solution, now have an Edit option in that menu. The Set colors option was removed for objects without a face or that can only have a single face. Pull request #7970
- The properties of Draft annotation objects have been unified. Draft Text, Draft Dimension and Draft Label objects now all have a Font Name, a Font Size and a Text Color property. The Display Mode options have been made consistent as well and are now: Screen and World. Issue #7861 and Pull request #8081
- In the task panel of the Draft SetStyle command the Texts/dims button has been replaced by the Annotations button. Pressing this button will process all annotations, including Draft Labels. Dim overshoot, Ext lines and Ext overshoot parameters have been added. Several minor additional issues were also fixed. Pull request #8190, Pull request #8195, Pull request #8196 and Pull request #9514.
- Undo/Redo did not work properly for the Draft modification commands on Windows. Pull request #8267
- The LayerManager command has been migrated from the BIM Workbench to the Draft Workbench. Pull request #8795
- When aligning the working plane with a face it was only rotated to match the global axes if the face was a quad. Pull request #7249
- Several Draft PathArray related issues have been fixed. Pull request #7506 and Pull request #7662
- The Draft Edit command has received several improvements. For wires, B-splines and Bézier curves a Close/Open option has been added to the edge context menu. For B-splines and Bézier curves a Reverse option has been added to the same menu as well. The task panels have been cleaned up. Pull request #7527 and Pull request #7541
- Using Esc to exit a command no longer switches off continue mode. Pull request #7611
- The Draft Snap toolbar was changed to a standard toolbar. Keyboard shortcuts can now be assigned to snaps. But using them during a command only works if none of the input boxes in the task panel has the focus as they 'catch' the so-called in-command shortcuts. Pull request #7656
- Several Draft AnnotationStyleEditor bugs have been fixed. The Text color and Text spacing parameters have been added. Pull request #8207 and Pull request #9702
- Start and End Offset properties have been added to Draft PathArray objects. Pull request #8295
- A Count property has been added to the arrays that lacked this property: the non-Link versions of Draft OrthoArray, Draft PolarArray and Draft CircularArray. Pull request #8433
- The on/off behavior of the grid has been fixed. Pull request #8818
- The handling of DWG converters has been improved. Pull request #9444 and Pull request #9830
Iso-contours, depicting the y-component of the absolute magneticflux density in and around a copper wire that is flown through byelectric current at a frequency of 100 kHz.For more info about this model, see section 14 of the Elmer Tutorials. There is the new Contours filter filter that allows to draw iso-lines or iso-contours. Iso-contours are connected mesh nodes that have the same result field value. A typical example are electric field lines. Pull request #8462
Simulation result (of flowing water being heated) where 8 mesh regionsare visible (one for every CPU core used). It is now possible to run the solver Elmer using multiple CPU cores. For more info about the caveats, see this forum post Pull request #7159
Simulation result of the imaginary part of the current density ina crucible that was heated electrically by a surrounding coil.This model is available via the FEM Examples.For more info about this model, see section 16 of the Elmer Tutorials. The Magnetodynamic 2D equation was added. With this it is possible to perform electromagnetic simulations in 2D. Pull request #8355
Simulation result of the imaginary part of the magnetic flux density inand around a copper wire that is flown through by electric current ata frequency of 100 kHz.This model is available via the FEM Examples.For more info about this model, see section 14 of the Elmer Tutorials. The Magnetodynamic equation was added. With this it is possible to perform electromagnetic simulations. Pull request #8380
Simulation result of an iron U-wire that is deformedby pressing the ends of the U together.For more info about this model, see section 8 of the Elmer Tutorials. The Deformation equation was added. With this it is possible to perform nonlinear elasticity analyses (deformation). Pull request #8981
- When performing analyses using the CalculiX solver, there is now also a results pipeline created to visualize the results. Pull request #8525 and Pull request #8903
- It is now possible to perform transient analyses when using the Elmer solver. Pull request #9056
- The initial pressure constraint was added to set the initial internal pressure of fluids. Pull request #7364
- The current density constraint was added to set current densities for bodies and faces. Pull request #8348
- The magnetization constraint was added to set magnetizations for bodies and faces. Pull request #8393
- The flow velocity constraint and initial flow velocity constraint were completely rewritten. It is now also possible to specify a velocity via a math formula (to define a velocity profile). Pull request #8963 and Pull request #8964Note: This is a breaking change. Analyses with existing flow velocity and initial flow velocity constraints will not work anymore. You have to create new flow velocity constraints in the analysis to make existing analyses work.Also note: until FreeCAD 0.21 the results of the flow solver were wrong (fluid density and viscosity were a factor 1000 too high). Therefore the necessary recreation of the velocity constraint also assures the results will be correct.
- It is now possible to define in the displacement constraint displacements as equations (displacement according to the current solver time).
- The body heat source constraint has now a task panel and it is possible to set the heat for several bodies or to use several constraints for different bodies in one analysis. Pull request #7367
- The spring constraint was not used by any solver. Now it can be used by the Elmer solver via the equations Deformation and Elasticity. Pull request #9005
- The result mesh cut function Filter function cylinder was added. Pull request #8735
- The result mesh cut function Filter function box was added. Pull request #8825
- It is now possible to open (and this way visualize) *.pvtu files (partitioned VTK unstructured grid data). A *.pvtu file is also the result of an Elmer simulation, when more than one CPU core is used for calculations. Pull request #7159
- Critical Strain Ratio has been added to the VTK result pipeline. It gives an indication of ductile rupture for materials with a "MaterialMechanicalNonlinear" object. Pull request #7467
- FEM mesh to mesh has the new parameter scale to define the scale of deformed mesh using Python. Forum thread and Pull request #7715
- The preferences have a new option to define which solver should automatically be added when creating a new analysis.
- Usability improvements:
- If you are in the FEM workbench when loading a FreeCAD file containing an analysis, the analysis gets activated automatically (you have immediate access to all FEM toolbar buttons).
- The toolbar only has buttons for solvers installed on your system. Unavailable solvers are no longer displayed.
- New example files for the following equations are available via the FEM Examples: Deformation, Flow, Flux, Heat, Magnetodynamic and Magnetodynamic 2D. Pull requests #8550, #8569, #8579, #8597, #8630 and #9004.
- New material card for carbon dioxide and a titanium alloy. Pull request #8332 and Pull request #8636
- Support to add transparencies to a mesh. Forum thread and Commit f88305e
- The Part PointsFromMesh command has been extended to accept any geometric object as input. Pull request #8730
A counterdrill hole. The Hole dialog supports the screw head type Counterdrill. Pull request #7562
The UX on multiple PartDesign task dialogs for selecting geometries has been improved, now no longer requiring the use of separate buttons for adding or removing geometries to the selection. Pull request #8990
- In the Hole dialog, the deprecated screw head types (cheese head, cap screw etc.) have been removed. They were deprecated since FreeCAD 0.19. Holes using these types are transformed to custom countersinks/counterbore holes with the diameter and depth used by the types. Pull request #7654
- In the Additive Loft and Subtractive Loft dialogs, the previously non-functional option Closed does now create a closed loft (like a ring). Pull request #8748
- The Validate sketch command was added to Helper toolbar. Pull request #7700
- The unusable Leave sketch and View sketch commands were removed from the menu. The Edit sketch, Merge sketches and Mirror sketch commands were added to the menu. Pull request #7700
- The involute gear profile has new properties to change the tooth length. This now allows adjustments for certain types of interferences and to use the profile to create involute splines too. Pull request #8184
- The involute gear profile now offers profile shifting. Issue #5618 and Pull request #8934
- When creating a Clone it will now inherit the colors of the cloned object. Pull request #9547
-
Camotics integration. If camotics (version 1.2.2 or later) is installed, a new icon will be added to the Path toolbar. Select a Path Job and press the button to open the Camotics dialog. Then drag the slider to generate a simulated solid at any point in the job. You can also launch the full camotics application to run the animated simulaton. This results in a silent post-processing of the job and creation of a camotics project file. Pull request #6637
-
Additional substitution strings for automatic output naming. If output is being split into multiple files, the filenames can automatically substitute the toolcontroller label, Work Coordinate Systems (WCS), or operation label. This is in addition to the other existing substitution strings like date, job name, etc.
-
Implemented Chipbreaking option for peck style drill cycles. Chipbreaking emits a G73 cycle which causes the control to make a very small retraction move to break the chip without fully retracting the bit from the hole. G73 is supported natively by LinuxCNC. Some other postprocessors will have to interpret the G73 and emit control appropriate codes or decompose the retraction into G1/G0 moves. Postprocessor support for G73 decomposition has been added to the "refactored" postprocessors.Pull request #7469
Dragging of B-spline knots.Click on the image to see the animation. B-spline knots can now be dragged around and constrained like any other sketch point. Pull request #7484
Dragging of a B-spline.Click on the image if the animation does not start. Dragging a B-spline now only moves the part between knots. Pull request #7110
Click on the image to see the animation. The Join curves tool has been added. It can combine two curves into a single B-spline. Pull request #6507
Click on the image to see the animation. Sketches can now be seamlessly edited from the front or back. When working from the back, vertices (and all geometries and constraints) are equally selectable and the section view is switched automatically. Pull request #7417
The Sketcher grid has been reworked. The Grid tool has been added. Automatic rescalling of grid option has been added. Pull request #8473
The Sketcher Constraint widget has been reworked to simplify the UI. Pull request #7566
Click on the image to see the animation. The Element widget has been reworked to simplify the UI and enable simpler selection of the different parts of each geometry: Edge, start point, end point and mid point. Pull request #7567
A feature to automatically resize the grid according to the zoom level and other improvements were introduced. Pull request #8473
Basic visual layers functionality was introduced, for now only 3 hardcoded layers are supported. Expect further improvements down the road. This PR also removes the "Edit controls" widget from the task panel as all it's contents have been moved to other places or removed. The rendering order options have been moved to the Sketcher edit tools toolbar. Pull request #8716 and Pull request #9590
Circle to circle distance constraint was introduced. Pull request #8896
Circle to line distance constraint was introduced. Pull request #9044
Click on the image to see the animation. Snap Manager, snapping at angle and midpoint snap were added. Pull request #8387
Coincident constraint can now act as a concentric constraint when selecting 2 or more circles, arcs, ellipses or arcs of ellipses. Pull request #7703
B-spline by knots tool was added. Pull request #8530
Periodic B-spline by knots tool was added. Pull request #8530
- The toolbar button for Constrain refraction (Snell's law) has been removed. Commit ef62fc3
- Split now supports more curves (ellipses, parabolas, hyperbolas and B-splines). Pull request #6971
- The Dimensional Constraints and Quantity Spin Boxes now support the same math as Expressions (Evaluated in place). Pull Request #7124
- The toolbar buttons for Select redundant constraints and Select conflicting constraints have been removed. Pull request #7568
- The toolbar button for Stop operation has been removed. Pull request #7569
- The toolbar button for Select unconstrained DoF has been removed. Pull request #7603
- The Sketcher toolbar has been split in two: 'Sketcher-edit-mode' and 'Sketcher' (i.e. 'not edit mode'). The Sketcher toolbars that are only for edit-mode are hidden in non-edit-mode, and those only for non-edit-mode are hidden in edit-mode. The Structure toolbar is also hidden in Sketcher. Pull request #7655
- Carbon copy if possible now uses constraint names in the expressions it creates instead of an index based reference, making it more reliable. Pull request #7688
- The Constrain internal alignment tool has been removed. It was obsolete since the introduction of the Show/hide internal geometry tool. Pull request #8863
- The Sketcher 'Solver Message' taskbox has been simplified. The auto-remove-redundant checkbox has been moved to the Constraint taskbox setting button menu. The auto-update checkbox has been moved to the menu of the update button. Pull request #8864
The Blend Curve tool was added. Pull request #7339
The SurfaceFinishSymbol tool was added to allow for the creation of surface finish symbols describing roughness, lay and waviness, but also denoting the type of surface treatment. It supports both ISO and ASME styles. As shown in the image, the existing LeaderLine tool can be used to properly refer oriented symbols to the edges of an object. Pull request #7227 The ComplexSection tool was added to allow for the creation of half, offset and aligned sections. Pull request #7658 The HoleShaftFit tool was added. Pull request #8455 The AxoLengthDimension tool was added. Pull request #8359
- Navigation modes have been updated to match those used in the 3D view. Pull request #7081 and Pull request #7107
- Bitmap hatching was fixed. Issue #6582 and Pull request #7121
- Support for adjustable gaps for extension lines of dimensions was added. Pull request #7133
- Multithreading was introduced for hidden line removal and face finding. Pull request #7377
- The face detection algorithm was improved. Pull request #7448
- The PrintAll tool was added. Pull request #7460
- Four tools to control the stacking order of views were added. Issue #6012 and Pull request #7460
- ActiveView now creates a screen capture instead of an SVG image. Pull request #7471
- All Latin script templates have been converted to "plain svg". Pull request #7472
- A preview was added to the task panel of the SectionView tool. Pull request #7658
- Deprecated DrawViewPart functions were removed: replaceCenterLine, replaceCosmeticEdge, replaceCosmeticVertex and replaceGeomFormat.
- 3D dimensions can now be created in the same way as 2D dimensions (apart from the fact that the geometry has to be selected in a 3D view). This eliminates the need to link them manually to 3D geometry. Pull request #8141
- The DimensionRepair tool was added. Pull request #8141
- A function to remove overlapping edges returned by the hidden line removal algorithm was added, including a new setting (in advanced preferences) for the number of passes of this function. Pull request #9280
Since this release FreeCAD can only be compiled using Qt 5.x and Python 3.x. The lowest supported Qt version is 5.12, the lowest supported Python version is 3.8.
To compile FreeCAD see the instructions for Windows, Linux and macOS.
The supported operating systems are:
- Windows 7, 8, 10 and 11
- Linux Ubuntu Focal Fossa (20.04) and newer
- macOS: 10.12 Sierra or newer
Since FreeCAD 0.19 we no longer officially support 32bit Windows. FreeCAD might work on these systems, but no support is given.
Depending on the OpenGL graphics capabilities of a computer, it might be that one encounters a crash when running FreeCAD via remote desktop. To fix this upgrade your OpenGL driver. Only if this doesn't help:
- Download this OpenGL library for 64bit Windows and extract it.
- Rename the DLL file to opengl32sw.dll and copy it to the bin subfolder of FreeCAD's installation folder (overwrite the existing DLL there).
If the Start Workbench shows only a blank page, you must enable the option Use software OpenGL in the menu FreeCAD-0.21 → Preferences → Display.
⏵ documentation index > News > Documentation > Releases > Release notes 0.21