Release notes 0.20: Difference between revisions

From FreeCAD Documentation
(Reworded Arch Attach Feature section.)
(Part_ReverseShape)
 
(293 intermediate revisions by 19 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<translate>


<!--T:1-->
{{VeryImportantMessage|This page tracks new features as they are added to the development version of FreeCAD, which is currently 0.20. When the 0.20 feature freeze happens, delete these messages, and don't add more features to this page. FreeCAD 0.20 is expected to be released in 202x.}}

<!--T:74-->
{{VeryImportantMessage|!!! All images on this page must use the {{FileName|_relnotes_0.20}} suffix !!!}}

<!--T:2-->
{{Message|
Are features missing? Mention them in the [https://forum.freecadweb.org/viewtopic.php?f&#61;10&t&#61;56135 Release notes for v0.20] forum thread.

<!--T:3-->
See [[Help_FreeCAD|Help FreeCAD]] for ways to contribute to FreeCAD.
}}

</translate>
{{TOCright}}
{{TOCright}}
<translate>
<translate>


<!--T:4-->
<!--T:4-->
'''FreeCAD 0.20''' was released on '''DD Month 202x''', get it from the [[Download|Download]] page. This is a summary of the most interesting changes. The complete list of changes can be found in the [https://www.freecadweb.org/tracker/changelog_page.php?version_id=78 MantisBT bugtracker FC 0.20 changelog].
'''FreeCAD 0.20''' was released on '''14 June 2022''', get it from the [[Download|Download]] page. This page lists all new features and changes.


<!--T:5-->
<!--T:5-->
Older FreeCAD release notes can be found in [[Feature list#Release_notes|Feature list]].
Older FreeCAD release notes can be found in the [[Feature list#Release_notes|Feature list]].

== Highlights == <!--T:6-->


<!--T:7-->
<!--T:7-->
{| cellpadding=5
<!-- These are highlight images therefore they must appear big, and not the same size as the other images. -->
| [[File:FreeCAD_highlight _relnotes_0.20.gif]]
<!-- Extra spacing is added between the images-->
| ''Model of a 775 DC motor by user "jimmihenry", see [https://forum.freecadweb.org/viewtopic.php?p=551765#p551765 Users Showcase].</br>The model was made completely with the weekly [https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds development snapshots] of FreeCAD 0.20. The pictures for the animated graphic were made with the FreeCAD macro [[Macro_Screen_Wiki| Screen Wiki]]. The animated GIF itself was made using [https://en.wikipedia.org/wiki/GIMP GIMP]. For the release notes it was cropped and resized using [https://ezgif.com/crop ezgif].''
|}


== General == <!--T:8-->
== General == <!--T:8-->


=== Python 3 and Qt5 === <!--T:9-->
=== freecad.org === <!--T:135-->


=== Some issues === <!--T:10-->
<!--T:136-->
We are happy that the [https://www.kicad.org/ KiCAD project], through the [https://www.kipro-pcb.com/ KiCAD services corp.], sponsored us the domain freecad.org. Now all FreeCAD websites are available under [https://freecadweb.org freecadweb.org] and [https://freecad.org freecad.org].


=== Development === <!--T:11-->
=== Bug/Issue tracker === <!--T:132-->


<!--T:12-->
<!--T:133-->
The FreeCAD bug tracker was moved to GitHub: https://github.com/FreeCAD/FreeCAD/issues
To [[Compile_on_Windows|compile FreeCAD under Windows]], there are different Libpacks (prepackaged libraries) available:
* Libpack for Windows with Qt xx, OCC yy, and Python zz

<!--T:80-->
Lowest supported Python version is 3.6.9 according to https://forum.freecadweb.org/viewtopic.php?f=10&t=62701

<!--T:81-->
Supported Operating Systems:
* Windows 7, 8 and 10
* Linux Ubuntu Bionic Beaver (18.04) and Focal Fossa (20.04)
* MacOS minimum version 10.12 Sierra


<!--T:13-->
<!--T:134-->
'''Note:''' Only bug reports with a prior forum discussion will be considered. Reports without this will be closed.
Other development news:


=== Documentation === <!--T:14-->
=== New help system === <!--T:174-->


=== Known limitations === <!--T:15-->
<!--T:175-->
The help system was rewritten and upgraded to display information directly from our [[User_hub|Wiki]]. The system now relies on the [https://github.com/FreeCAD/FreeCAD-Help Help Addon]. When you first use the [[Std_Help|Help]] tool or the [[Std_WhatsThis|What's this?]] tool you will be asked to install it.


== User interface == <!--T:16-->
== User interface == <!--T:16-->
Line 65: Line 41:
{|cellpadding=5
{|cellpadding=5
| [[File:Navi_Cube_relnotes_0.20.gif]]
| [[File:Navi_Cube_relnotes_0.20.gif]]
| The navigation cube was reworked to enable these new features:
| The navigation cube was reworked:
* There are now edge faces to view the scene at angles of 45°.
* There are now edge faces to rotate the 3D view 45°.
* The new preferences option [[Preferences_Editor#Navigation|Rotate to nearest]] allows to view the scene at the nearest sensible state. When it is off, clicking to a cube face will end up always to the same position, no matter in what cube state you were when you clicked the face. See the animation at the left to understand what this means. Try the same click sequence as in the animation without the option ''Rotate to nearest'' to experience the difference.
* A new preference [[Preferences_Editor#Navigation|Rotate to nearest]] has been introduced. If selected, the 3D view is rotated to the nearest most logical position, based on the current orientation of the cube, when a cube face is clicked. Else clicking a face will always result in the same rotation. To experience the difference try the same click sequence as in the animation with and without the option ''Rotate to nearest''.
* By clicking at the dot at the upper right of the cube you can quickly see the backview of the current scene.
* By clicking the new round button in the top right corner you can quickly switch to the backview of the current scene.
* The size of the cube can be adjusted by the preferences option [[Preferences_Editor#Navigation|Cube size]].
* The size of the cube can now be adjusted with the [[Preferences_Editor#Navigation|Cube size]] preference.
[https://forum.freecadweb.org/viewtopic.php?f=3&t=52118 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/4502 Pull request #4502 ].
[https://forum.freecadweb.org/viewtopic.php?f=3&t=52118 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/4502 Pull request #4502 ].
|}
|}
Line 82: Line 58:
{|cellpadding=5
{|cellpadding=5
| [[File:Std_UserEditMode_relnotes_0.20.gif|384px]]
| [[File:Std_UserEditMode_relnotes_0.20.gif|384px]]
| The new [[Std_UserEditMode|Std UserEditMode]] command allows the user to choose an edit mode that will be used when an object is double-clicked in the [[Tree_view|Tree view]]. Click the image at the left so see an animation of the selection. If a selected edit mode is not applicable, the object's default edit mode is used instead. [https://github.com/FreeCAD/FreeCAD/pull/5110 Pull request #5110].
| The new [[Std_UserEditMode|Std UserEditMode]] command allows the user to choose an edit mode that will be used when an object is double-clicked in the [[Tree_view|Tree view]]. Click the image on the left so see an animation of the selection. If a selected edit mode is not applicable, the object's default edit mode is used instead. [https://github.com/FreeCAD/FreeCAD/pull/5110 Pull request #5110].
|}
|}


Line 91: Line 67:


<!--T:83-->
<!--T:83-->
In the image the ''Hole001'' object was selected by the user and then<br>
In the image the ''Hole001'' object was selected and then its<br>
its dependencies were added to the selection via the context menu.
dependencies were added to the selection via the context menu.
|}

<!--T:137-->
{|cellpadding=30
| [[File:Part_SectionCut_example_relnotes_0.20.png|200px]]
| The new tool [[Part_SectionCut|Section Cut]] allows to get non-hollow and also persistent cuts of parts and assemblies.<br>[https://forum.freecadweb.org/viewtopic.php?f=27&t=52441 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/4118 Pull request #4118].
|}
|}


Line 98: Line 80:


<!--T:19-->
<!--T:19-->
* It is now possible to use the decimal separator belonging to the language specified for the FreeCAD interface. For example on a German Windows, when you set the interface language to '''English''' and select the new option '''Use selected language number format''', the dot will be used as the decimal separator. See [[Preferences_Editor#General|Preferences]]. [https://github.com/FreeCAD/FreeCAD/pull/6364 Pull request #6364]</br>'''Note''': For [[FEM_Workbench|FEM]] simulations using the dot as decimal separator is highly recommended to get correct results.
* Two new mouse navigation styles have been added. One based on '''[[Mouse_navigation#OpenSCAD_navigation|OpenSCAD]]''', the other on '''[[Mouse_navigation#TinkerCAD_navigation|TinkerCAD]]'''. [https://forum.freecadweb.org/viewtopic.php?f=8&t=60975 Forum discussion OpenSCAD], [https://forum.freecadweb.org/viewtopic.php?p=544639#p544376 Forum discussion TinkerCAD], [https://github.com/FreeCAD/FreeCAD/commit/a1c9ab658c commit 1], [https://github.com/FreeCAD/FreeCAD/commit/ef100d55e9d50 commit 2], [https://github.com/FreeCAD/FreeCAD/commit/549e5b5650 commit 3].
* Two new mouse navigation styles have been added. One based on [[Mouse_navigation#OpenSCAD_navigation|OpenSCAD]], the other on [[Mouse_navigation#TinkerCAD_navigation|TinkerCAD]]. [https://forum.freecadweb.org/viewtopic.php?f=8&t=60975 Forum discussion OpenSCAD], [https://forum.freecadweb.org/viewtopic.php?p=544639#p544376 Forum discussion TinkerCAD], [https://github.com/FreeCAD/FreeCAD/commit/a1c9ab658c commit 1], [https://github.com/FreeCAD/FreeCAD/commit/ef100d55e9d50 commit 2], [https://github.com/FreeCAD/FreeCAD/commit/549e5b5650 commit 3].
* It is now possible to pan the view of the [[Std_DependencyGraph|dependency graph]] with the mouse. [https://forum.freecadweb.org/viewtopic.php?f=3&t=34791 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/4638 Pull request #4638].
* It is now possible to pan the view of the [[Std_DependencyGraph|dependency graph]] with the mouse. [https://forum.freecadweb.org/viewtopic.php?f=3&t=34791 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/4638 Pull request #4638].
* Fixed an issue where using a tablet pen devices (e.g. Wacom tablet) was slow to the point of being completely unusable. [https://forum.freecadweb.org/viewtopic.php?f=8&t=45046 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/4687 Pull request #4687].
* Fixed an issue where using tablet pen devices (e.g. Wacom tablet) was slow to the point of being completely unusable. [https://forum.freecadweb.org/viewtopic.php?f=8&t=45046 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/4687 Pull request #4687].
* The coordinate system in the 3D view can be resized in the preferences in the section [[Preferences_Editor#3D_View|Display → 3D View]]. [https://github.com/FreeCAD/FreeCAD/pull/5182 Pull request #5182]
* The coordinate system in the 3D view can be resized in the preferences in the section [[Preferences_Editor#3D_View|Display → 3D View]]. [https://github.com/FreeCAD/FreeCAD/pull/5182 Pull request #5182]
* A new setting in [[Preferences_Editor#General|Preferences → General]] allows to substitute the numerical keypad decimal separator with the appropriate locale separator if they are different. [https://github.com/FreeCAD/FreeCAD/pull/3256 Pull request #3256] [https://github.com/FreeCAD/FreeCAD/pull/5150 Pull request #5150] [https://github.com/FreeCAD/FreeCAD/pull/5203 Pull request 5203]
* A new setting in [[Preferences_Editor#General|Preferences → General]] allows to substitute the numerical keypad decimal separator with the appropriate locale separator if they are different. [https://github.com/FreeCAD/FreeCAD/pull/3256 Pull request #3256] [https://github.com/FreeCAD/FreeCAD/pull/5150 Pull request #5150] [https://github.com/FreeCAD/FreeCAD/pull/5203 Pull request 5203]
* It is now possible to set the {{KEY|Backspace}} key as a standalone shortcut key without the need to specify an additional modifier key. [https://github.com/FreeCAD/FreeCAD/pull/5428 Pull request #5428]


== Core system, App, Base, and Gui namespaces == <!--T:21-->
== Core system and API == <!--T:21-->

=== Core === <!--T:176-->


<!--T:76-->
<!--T:76-->
{|cellpadding=5
{|cellpadding=5
| [[File:Object_selection_relnotes_0.20.png|384px]]
| [[File:Object_selection_relnotes_0.20.png|384px]]
| When using {{MenuCommand|Edit → Copy}} or {{MenuCommand|Edit → Duplicate selection}} for an object with dependencies there is a new {{Button|Use Original Selections}} button in the object selection dialog. Click this button to copy/duplicate only the objects you originally selected prior to opening the dialog, ignoring dependencies and ignoring any actions you might have taken while the dialog was open, such as checking or unchecking some of the checkboxes. The effect is the same as if you had unchecked all the checkboxes next to the objects you did not originally select and pressed OK. Note: special care should be taken when copying/duplicating TechDraw Pages. It is recommended to also copy/duplicate all of the children of the Page (Templates, Views, Dimensions, etc.). Otherwise changes to one of the Pages will also impact the other page, for example, deleting one of the Views in one Page also removes it from the other Page. Deleting one of the pages will also remove all the content from the other Page if copies of the content are not also made.
| When using {{MenuCommand|Edit → Copy}} or {{MenuCommand|Edit → Duplicate selection}} for an object with dependencies there is a new {{Button|Use Original Selections}} button in the object selection dialog. Click this button to copy/duplicate only the objects you originally selected prior to opening the dialog, ignoring dependencies and ignoring any actions you might have taken while the dialog was open, such as checking or unchecking some of the checkboxes. The effect is the same as if you had unchecked all the checkboxes next to the objects you did not originally select and pressed OK. Note: special care should be taken when copying/duplicating TechDraw Pages. It is recommended to also copy/duplicate all children of the Page (Templates, Views, Dimensions, etc.). Otherwise changes to one Page will also impact the other page. For example, deleting a View on one Page also removes it from the other Page, or deleting a page will also remove all its content from the other Page.
|}
|}


<!--T:103-->
<!--T:103-->
{|cellpadding=5
* A new type of add-on called a [[Preference_Packs|Preference Pack]] was added, allowing a subset of a user preferences (user.cfg) file to be distributed and applied. [https://forum.freecadweb.org/viewtopic.php?f=17&t=62477 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/4787 Pull request #4787]
| [[File:PrefPacks_relnotes_0.20.png|384px]]
| A new type of add-on called a [[Preference_Packs|Preference Pack]] was added, allowing a subset of a user preferences file (user.cfg) to be saved, distributed, and easily applied by other users. Preference Packs can be use to distribute "Themes," for example, by allowing a developer to include both a Qt stylesheet for widgets as well as a set of other colors and styles for items in the user interface that cannot be set using a stylesheet (e.g. text colors in the Python editor or report view, etc.). Anything that can be configured via a user.cfg file can be set using a Preference Pack. [https://forum.freecadweb.org/viewtopic.php?f=17&t=62477 Forum discussion]
|}

<!--T:127-->
{|cellpadding=5
| [[File:Autoload_relnotes_0.20.png|384px]]
| The "Workbenches" preference panel was modified to support the ability to "autoload" workbenches on FreeCAD startup.
|}

<!--T:177-->
On Linux, the default location of FreeCAD's configuration, data and cache files was changed to follow the [https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html XDG Base Directory Specification]. [https://forum.freecadweb.org/viewtopic.php?f=9&t=63648 Forum discussion]. Here is a comparison of the old and new locations:
{| class="wikitable"
!style="width: 25%;"|Description
!style="width: 25%;"|Old location
!style="width: 25%;"|New location
!style="width: 25%;"|Defaults to
|-
| Configuration files
| $HOME/.FreeCAD
| $XDG_CONFIG_HOME/FreeCAD
| $HOME/.config/FreeCAD
|-
| Data files
| $HOME/.FreeCAD
| $XDG_DATA_HOME/FreeCAD
| $HOME/.local/share/FreeCAD
|-
| Cache files
| /tmp
| $XDG_CACHE_HOME/FreeCAD
| $HOME/.cache/FreeCAD
|}

<!--T:178-->
If you wish to keep using the old locations you may start FreeCAD with the {{incode|--keep-deprecated-paths}} option.

=== API === <!--T:108-->

<!--T:168-->
FreeCAD received many new Python API functions:

</translate>
<div class="mw-collapsible mw-collapsed toccolours">
<translate>

==== New Python API ==== <!--T:109-->

</translate>
<div class="mw-collapsible-content">
<translate>

<!--T:169-->
* ''ChFi2d_AnaFilletAlgoPy'': An analytical algorithm for the calculation of fillets. [https://github.com/FreeCAD/FreeCAD/commit/f94ab3ec commit f94ab3ec]
* ''ChFi2d_ChamferAPIPy'': Algorithm that creates a chamfer between two linear edges. [https://github.com/FreeCAD/FreeCAD/commit/30f8015e7 commit 30f8015e7]

<!--T:110-->
* ''Circle2dPy::getCircleCenter'': Gets the circle center defined by three points. [https://github.com/FreeCAD/FreeCAD/commit/3dc91fa2 commit 3dc91fa2]

<!--T:111-->
* ''ComplexGeoDataPy::applyRotation'': Applies an additional rotation to the placement. [https://github.com/FreeCAD/FreeCAD/commit/32592de8 commit 32592de8]
* ''ComplexGeoDataPy::applyTranslation'': Applies an additional translation to the placement. [https://github.com/FreeCAD/FreeCAD/commit/32592de8 commit 32592de8]
* ''ComplexGeoDataPy::countSubElements'': Returns the number of elements of a type. [https://github.com/FreeCAD/FreeCAD/commit/32592de8 commit 32592de8]
* ''ComplexGeoDataPy::getElementTypes'': Returns a list of element types. [https://github.com/FreeCAD/FreeCAD/commit/32592de8 commit 32592de8]
* ''ComplexGeoDataPy::getFaces'': Returns a tuple of points and triangles with a given accuracy. [https://github.com/FreeCAD/FreeCAD/commit/32592de8 commit 32592de8]
* ''ComplexGeoDataPy::getLines'': Returns a tuple of points and lines with a given accuracy. [https://github.com/FreeCAD/FreeCAD/commit/32592de8 commit 32592de8]
* ''ComplexGeoDataPy::getLinesFromSubelement'': Returns vertexes and lines from a sub-element. [https://github.com/FreeCAD/FreeCAD/commit/32592de8 commit 32592de8]
* ''ComplexGeoDataPy::getPoints'': Returns a tuple of points and normals with a given accuracy. [https://github.com/FreeCAD/FreeCAD/commit/32592de8 commit 32592de8]
* ''ComplexGeoDataPy::transformGeometry'': Applies a transformation to the underlying geometry. [https://github.com/FreeCAD/FreeCAD/commit/32592de8 commit 32592de8]

<!--T:112-->
* ''ControlPy::showModelView'': Shows the model view. [https://github.com/FreeCAD/FreeCAD/commit/033bf619 commit 033bf619]

<!--T:113-->
* ''DocumentPy::clearDocument'': Clears the whole document. [https://github.com/FreeCAD/FreeCAD/commit/526dc1a0 commit 526dc1a0]
* ''DocumentPy::getFileName'': For a regular document it returns its file name property. For a temporary document it returns its transient directory. [https://github.com/FreeCAD/FreeCAD/commit/526dc1a0 commit 526dc1a0]
* ''DocumentPy::getProgramVersion'': Gets the program version that a project file was created with. [https://github.com/FreeCAD/FreeCAD/commit/526dc1a0 commit 526dc1a0]
* ''DocumentPy::isClosable'': Checks if the document can be closed. [https://github.com/FreeCAD/FreeCAD/commit/526dc1a0 commit 526dc1a0]
* ''DocumentPy::isSaved'': Checks if the document is saved. [https://github.com/FreeCAD/FreeCAD/commit/526dc1a0 commit 526dc1a0]
* ''DocumentPy::isTouched'': Checks if any object is in touched state. [https://github.com/FreeCAD/FreeCAD/commit/526dc1a0 commit 526dc1a0]
* ''DocumentPy::mustExecute'': Checks if any object must be recomputed. [https://github.com/FreeCAD/FreeCAD/commit/526dc1a0 commit 526dc1a0]
* ''DocumentPy::purgeTouched'': Purges the touched state of all objects. [https://github.com/FreeCAD/FreeCAD/commit/526dc1a0 commit 526dc1a0]
* ''DocumentPy::setClosable'': Sets a flag that allows or forbids to close a document. [https://github.com/FreeCAD/FreeCAD/commit/526dc1a0 commit 526dc1a0]

<!--T:114-->
* ''DrawPagePy::requestPaint'': Paints a TechDraw page. [https://github.com/FreeCAD/FreeCAD/commit/79f9fb68 commit 79f9fb68]

<!--T:115-->
* ''HLRBRep_AlgoPy'': To access Part's hidden line removal (HLR). [https://github.com/FreeCAD/FreeCAD/commit/73a98671 commit 73a98671]
* ''HLRBRep_PolyAlgoPy'': To access Part's poly hidden line removal (HLR). [https://github.com/FreeCAD/FreeCAD/commit/ea85cf5e commit ea85cf5e]
* ''HLRToShapePy'': To access Part's hidden line removal (HLR). [https://github.com/FreeCAD/FreeCAD/commit/73a98671 commit 73a98671]
* ''PolyHLRToShapePy'': To access Part's poly hidden line removal (HLR). [https://github.com/FreeCAD/FreeCAD/commit/ea85cf5e commit ea85cf5e]

<!--T:116-->
* ''MDIViewPy::printPdf'': Prints a PDF. [https://github.com/FreeCAD/FreeCAD/commit/c93031da commit c93031da]
* ''MDIViewPy::printPreview'': Prints a preview. [https://github.com/FreeCAD/FreeCAD/commit/c93031da commit c93031da]
* ''MDIViewPy::printView'': Prints a view. [https://github.com/FreeCAD/FreeCAD/commit/c93031da commit c93031da]
* ''MDIViewPy::redoActions'': Redoes actions. [https://github.com/FreeCAD/FreeCAD/commit/c93031da commit c93031da]
* ''MDIViewPy::undoActions'': Undoes actions. [https://github.com/FreeCAD/FreeCAD/commit/c93031da commit c93031da]

<!--T:117-->
* ''PrecisionPy'': To access the precision defined by the OpenCascade kernel. [https://github.com/FreeCAD/FreeCAD/commit/20b86e55 commit 20b86e55]

<!--T:118-->
* ''PropertyContainerPy::setDocumentationOfProperty'': Sets the documentation string of a dynamic property of this class. [https://github.com/FreeCAD/FreeCAD/commit/8cf3cf33 commit 8cf3cf33]
* ''PropertyContainerPy::setGroupOfProperty'': Set the name of the group of a dynamic property. [https://github.com/FreeCAD/FreeCAD/commit/8cf3cf33 commit 8cf3cf33]

<!--T:128-->
* ''PythonWorkbenchPy::reloadActive'': Reload the active workbench after changing menus or toolbars. [https://github.com/FreeCAD/FreeCAD/commit/0bbc253d commit 0bbc253d]

<!--T:119-->
* ''RotationPy::fromEuler'': Sets the Euler angles of a rotation or gets the Euler angles in a given sequence for a rotation. [https://github.com/FreeCAD/FreeCAD/commit/951a0be9 commit 951a0be9]
* ''RotationPy::toEulerAngles'': Gets the Euler angles in a given sequence for this rotation.. [https://github.com/FreeCAD/FreeCAD/commit/c1454dfb commit c1454dfb]

<!--T:120-->
* ''SpreadsheetViewPy'': To access spreadsheets. [https://github.com/FreeCAD/FreeCAD/commit/6e713628 commit 6e713628]

<!--T:129-->
* ''UnitsApi::sToNumber'': Converts a quantity or float to a string. [https://github.com/FreeCAD/FreeCAD/commit/befbd95d commit befbd95d]

<!--T:121-->
* ''View3DInventorPy::getCornerCrossSize'': Returns current corner axis cross size. [https://github.com/FreeCAD/FreeCAD/commit/9d15df29 commit 9d15df29]
* ''View3DInventorPy::setPopupMenuEnabled'': Enables popup menu. [https://github.com/FreeCAD/FreeCAD/commit/9def811a commit 9def811a]
* ''View3DInventorPy::isCornerCrossVisible'': Returns current corner axis cross visibility. [https://github.com/FreeCAD/FreeCAD/commit/9d15df29 commit 9d15df29]
* ''View3DInventorPy::isPopupMenuEnabled'': Returns if popup menu is enabled. [https://github.com/FreeCAD/FreeCAD/commit/9def811a commit 9def811a]
* ''View3DInventorPy::projectPointToLine'': Projects the given 2d point to a line. [https://github.com/FreeCAD/FreeCAD/commit/b6527a70 commit b6527a70]
* ''View3DInventorPy::setCornerCrossSize'': Defines corner axis cross size. [https://github.com/FreeCAD/FreeCAD/commit/9d15df29 commit 9d15df29]
* ''View3DInventorPy::setCornerCrossVisible'': Defines corner axis cross visibility. [https://github.com/FreeCAD/FreeCAD/commit/9d15df29 commit 9d15df29]

<!--T:122-->
* ''ViewProviderSpreadsheetPy'': To handle spreadsheet cells.[https://github.com/FreeCAD/FreeCAD/commit/16bbe123 commit 16bbe123] and [https://github.com/FreeCAD/FreeCAD/commit/093f15dc commit 093f15dc]

</translate>
</div>
<translate>

==== Changed Python API ==== <!--T:123-->

<!--T:124-->
* ''MeshObject::trim(base, normal)'' was changed to ''MeshPy::trimByPlane(base, normal)'': Trims the mesh with a given plane. [https://github.com/FreeCAD/FreeCAD/commit/837de28e commit 837de28e]

</translate>
</div>
<translate>


== Addon Manager == <!--T:22-->
== Addon Manager == <!--T:22-->


<!--T:130-->
{|cellpadding=5
| [[File:AddonManagerExpanded_relnotes_0.20.png|400px]]
| The [[Std_AddonMgr|Addon Manager]] was modified to support the distribution of Preference Packs, and to display information found in an addon's metadata. The Addon Manager also includes improved support for Addons whose source code is located at several different git hosting locations. Networking support was improved to provide more robust handling of SSL connections and support for proxies requiring authentication. Support was added for automatically adding macro buttons to the toolbar after installing, for disabling Addons without removing them, and for switching which git branch of an Addon is checked out. Finally, the user interface was modified to improve searching and display of different list filters.
|}


== Arch Workbench == <!--T:23-->
== Arch Workbench == <!--T:23-->


<!--T:105-->
{|cellpadding=5
{|cellpadding=5
| [[File:ArchWindow_Placement_1r_relnotes_0.20.png|250px]]
| [[File:ArchWindow_Placement_1r_relnotes_0.20.png|250px]]
| [[File:ArchWindow Placement_2r_relnotes_0.20.png|250px]]
[[File:ArchWindow Placement_2r_relnotes_0.20.png|250px]]
| '''SketchArch workbench'''
|

* With the [[Image:Attach in SketchArch.svg|20px]] [https://github.com/paullee0/FreeCAD_SketchArch Attach Feature] it is now possible to place [[Image:Arch_Window.svg|20px|link=Arch_Window]] [[Arch_Window|Windows]] and [[Image:Arch_Equipment.svg|20px|link=Arch_Equipment]] [[Arch_Equipment|Equipment]] parametrically and intuitively in relation to [[Image:Arch_Wall.svg|20px|link=Arch_Wall]] [[Arch_Wall|Walls]]. To use this feature the experimental external [[File:SketchArch Workbench.svg|20px]] [https://github.com/paullee0/FreeCAD_SketchArch SketchArch Workbench] must be installed.
<!--T:138-->
* [https://forum.freecadweb.org/viewtopic.php?f=23&t=50802 Forum discussion], [https://github.com/paullee0/FreeCAD_SketchArch Add-on and ReadMe on Github] (Not yet available in the [[Std AddonMgr|Add-on Manager]]).
With the [[Image:Attach in SketchArch.svg|20px]] [https://github.com/paullee0/FreeCAD_SketchArch Attach Feature] it is now possible to place [[Image:Arch_Window.svg|20px|link=Arch_Window]] [[Arch_Window|Windows]] and [[Image:Arch_Equipment.svg|20px|link=Arch_Equipment]] [[Arch_Equipment|Equipment]] parametrically and intuitively in relation to [[Image:Arch_Wall.svg|20px|link=Arch_Wall]] [[Arch_Wall|Walls]]. To use this feature the experimental external [[File:SketchArch Workbench.svg|20px]] [https://github.com/paullee0/FreeCAD_SketchArch SketchArch Workbench] must be installed.
[https://github.com/paullee0/FreeCAD_SketchArch Add-on and ReadMe on Github] (Not yet available in the [[Std_AddonMgr|Add-on Manager]]).

<!--T:139-->
[https://forum.freecadweb.org/viewtopic.php?f=23&t=50802 Forum discussion]
|}

<!--T:140-->
{|cellpadding=5
| [[File:NewArchStructureProperties_relnotes_0.20.jpg|250px]]
| '''New properties for Arch Structure objects''':

<!--T:141-->
* '''BasePerpendicularToTool''': it creates a copy of the Base (extrusion profile) at the beginning of the Tool (extrusion path) and places it perpendicular to the first edge of the tool. It is the same as attaching the Base with MapMode=NormalToEdge, but it is automatic and allows to reuse the same Base object for multiple Structures. When BasePerpendicularToTool = True, more properties control the placement of the Base relative to the Tool axis. They are shown in the attached image.

<!--T:142-->
* '''ToolOffsetFirst''' and '''ToolOffsetLast''': extend/trim the Structure at the start and end respectively (the real length of the Structure is available in the ComputedLength read-only property).

<!--T:170-->
* '''BaseRotation''': rotate the Base (the rotation is around the Base's "(0,0)" point which is the center for [[Arch_Profile|Arch Profiles]], the origin for Sketches and usually the first point for [[Draft_Wire|Draft Wires]]).

<!--T:171-->
* '''BaseOffsetX''' and '''BaseOffsetY''': move the Base (extrusion profile).

<!--T:172-->
* '''BaseMirror''': mirror the Base (extrusion profile).

<!--T:143-->
A new command '''Create multiple Arch Structure''' was also added. It uses the first selected object as a Base, and creates Arch Structures objects for every Edge of the other selected objects. Then, the properties of individual Structure objects can be adjusted in the Property editor. This command was added for workflow with a master Sketch (there is risk of topological naming problem unless you create non-parametric copy of the master Sketch or use Realthunder's version).

<!--T:160-->
Support for '''2D data''' such as linework, hatches, texts and dimensions is now enabled in IFC import and export, which contributes to making the IFC format more and more suitable for traditional 2D CAD work. A similar effort is being made in [https://blenderbim.org BlenderBIM]. More 2D workflow improvements are documented [https://forum.freecadweb.org/viewtopic.php?p=563067#p563067 in this forum thread].

<!--T:144-->
[https://forum.freecadweb.org/viewtopic.php?f=23&t=43228&start=60 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/3229 Pull request #3229]
|}
|}


Line 169: Line 340:
<!--T:27-->
<!--T:27-->
{| cellpadding=5
{| cellpadding=5
| [[Image:FEM_Z88-settings_relnotes_0.20.png|384px]]</br>The new Z88 settings and their default values
| The [[FEM_SolverZ88|Z88 solver]] is now fully usable. You can specify the solver method and change the memory settings. The new default values allow you to perform also complex simulations directly.
[https://github.com/FreeCAD/FreeCAD/commit/d035bbc1ca commit d035bbc1ca and following]
|-
| [[Image:FEM_buckling-analysis_relnotes_0.20.gif|384px]]</br>Result of a linear buckling analysis.</br>Click on the image to see the animation.
| It is now possible to perform buckling analyses using the [[FEM_SolverCalculixCxxtools|Calculix]] solver. [https://github.com/FreeCAD/FreeCAD/pull/4379 Pull request #4379]
|-
| [[Image:FEM_Gmsh-MeshSizeFromCurvature_relnotes_0.20.png|384px]]</br>Effect of ''Mesh Size From Curvature''; left: set to 12, right: deactivated
| [[Image:FEM_Gmsh-MeshSizeFromCurvature_relnotes_0.20.png|384px]]</br>Effect of ''Mesh Size From Curvature''; left: set to 12, right: deactivated
| There is a new property for the [[FEM_MeshGmshFromShape|Gmsh]] mesher. The number of mesh elements per <math>2\pi</math> times the radius of the curvature can be specified. The default is 12 and to get a finer mesh at small corners or holes, this value can be increased for better results. This feature requires Gmsh 4.8 or newer.
| There is a new property for the [[FEM_MeshGmshFromShape|Gmsh]] mesher. The number of mesh elements per <math>2\pi</math> times the radius of the curvature can be specified. The default is 12 and to get a finer mesh at small corners or holes, this value can be increased for better results. This feature requires Gmsh 4.8 or newer.
[https://forum.freecadweb.org/viewtopic.php?f=18&t=56401 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/4596 Pull request #4596]
[https://forum.freecadweb.org/viewtopic.php?f=18&t=56401 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/4596 Pull request #4596]
|-
|-
| [[Image:FEM_Gmsh-RecombinationAlgorithm_relnotes_0.20.png|384px]]</br>Effect of the rcombination algorithm; left: using ''Simple'', right: using ''Simple full-quad''
| [[Image:FEM_Gmsh-RecombinationAlgorithm_relnotes_0.20.png|384px]]</br>Effect of the recombination algorithm; left: using ''Simple'', right: using ''Simple full-quad''
| FreeCAD allows now to select an algorithm as well as 3D mesh recombination for the [[FEM_MeshGmshFromShape|Gmsh]] mesher. For more details about the mesh element recombination see [[FEM_MeshGmshFromShape#Element_Recombination|FEM MeshGmshFromShape]].
| FreeCAD now allows to select an algorithm as well as 3D mesh recombination for the [[FEM_MeshGmshFromShape|Gmsh]] mesher. For more details about mesh element recombination see [[FEM_MeshGmshFromShape#Element_Recombination|FEM MeshGmshFromShape]].
[https://github.com/FreeCAD/FreeCAD/pull/4706 Pull request #4706]
[https://github.com/FreeCAD/FreeCAD/pull/4706 Pull request #4706]
|}
|}
Line 181: Line 359:


<!--T:29-->
<!--T:29-->
* '''Important:''' Starting from this release, FreeCAD will use [https://en.wikipedia.org/wiki/International_System_of_Units SI units] (m, kg, s, K, A, mol, cd) to write the [[FEM_SolverElmer|Elmer solver]] input files (''case.sif'' and ''mesh.nodes''). This is independent of the used FreeCAD [[Preferences_Editor#Units|unit system]].
* A new solver was added: {{MenuCommand|Solve → [[File:FEM_SolverMystran.svg|16px]] [[FEM_SolverMystran|Solver Mystran]]}}. Multiple commits.
* '''Important:''' Starting from this release, the scale of [[FEM_PostPipelineFromResult|result pipelines]] and their [[FEM_Workbench#Menu:_Results|filters]] will use SI units (m, kg, s, K, A, mol, cd). So the displacement is given in meter, the stress in Pascal. This applies to all SI-derived FreeCAD [[Preferences_Editor#Units|unit systems]].
* A new constraint was added: {{MenuCommand|Model → Geometrical Constraints → [[File:FEM_ConstraintSpring.svg|16px]] [[FEM_ConstraintSpring|Constraint Spring]]}}. [https://github.com/FreeCAD/FreeCAD/pull/4982 Pull request #4982]
* Solving with the [[FEM_SolverCalculixCxxtools|Calculix]] solver now uses all CPU cores. [https://github.com/FreeCAD/FreeCAD/pull/6374 Pull request #6374]
* Meshing with [[FEM_MeshGmshFromShape|Gmsh]] now uses all CPU cores. [https://github.com/FreeCAD/FreeCAD/pull/6370 Pull request #6370]
* The element order of [[FEM_MeshGmshFromShape|Gmsh]] meshes can be changed via the mesh dialog. [https://github.com/FreeCAD/FreeCAD/pull/4660 Pull request #4660]
* The element order of [[FEM_MeshGmshFromShape|Gmsh]] meshes can be changed via the mesh dialog. [https://github.com/FreeCAD/FreeCAD/pull/4660 Pull request #4660]
* The [[FEM_PostFilterDataAtPoint|Data at point clip]] result filter is now actually working: One gets info from result meshes by clicking into them or by specifying a mesh coordinate.
* A new constraint was added: {{MenuCommand|Model → Mechanical Constraints → [[File:FEM_ConstraintCentrif.svg|16px]] [[FEM_ConstraintCentrif|Constraint Centrif]]}}. [https://github.com/FreeCAD/FreeCAD/pull/4738 Pull request #4738]
* A new solver was added: {{MenuCommand|Solve → [[File:FEM_SolverMystran.svg|16px]] [[FEM_SolverMystran|Solver Mystran]]}}. Multiple commits.
* A new constraint was added: {{MenuCommand|Model → Mechanical Constraints → [[File:FEM_ConstraintSpring.svg|16px]] [[FEM_ConstraintSpring|Constraint Spring]]}}. [https://github.com/FreeCAD/FreeCAD/pull/4982 Pull request #4982]
* It is now possible to have [[FEM_PostPipelineFromResult|result pipelines]] with several filters, where some take other filters as input, and some take the results directly from the pipeline. [https://github.com/FreeCAD/FreeCAD/commit/708a300b commit 708a300b]
* Material cards can now contain values for the electrical conductivity. [https://github.com/FreeCAD/FreeCAD/pull/4647 Pull request #4647]
* Material cards can now contain values for the electrical conductivity. [https://github.com/FreeCAD/FreeCAD/pull/4647 Pull request #4647]
* Material cards added for Nitrogen and Argon. [https://github.com/FreeCAD/FreeCAD/pull/4649 Pull request #4649]
* Material cards added for Nitrogen and Argon. [https://github.com/FreeCAD/FreeCAD/pull/4649 Pull request #4649]
* Support for the [[FEM_MeshGmshFromShape|Gmsh]] mesh algorithms "HXT" (3D) and "Packing Parallelograms" (2D) added. [https://github.com/FreeCAD/FreeCAD/pull/4654 Pull request #4654]
* Support for the [[FEM_MeshGmshFromShape|Gmsh]] mesh algorithms ''"HXT"'' (3D) and ''"Packing Parallelograms"'' (2D) added. [https://github.com/FreeCAD/FreeCAD/pull/4654 Pull request #4654]
* Allow to set for the [[FEM_MeshGmshFromShape#Properties|Gmsh]] property '''High Order Optimize''' a certain algorithm. [https://github.com/FreeCAD/FreeCAD/pull/4705 Pull request #4705]
* Allow to specify an algorithm for the [[FEM_MeshGmshFromShape#Properties|Gmsh]] property ''"High Order Optimize"''. [https://github.com/FreeCAD/FreeCAD/pull/4705 Pull request #4705]
* Nonlinear solid materials with simple hardening can now have an arbitrary number of yield points. [https://github.com/FreeCAD/FreeCAD/pull/5024 Pull request #5024]
* Nonlinear solid materials with simple hardening can now have an arbitrary number of yield points. [https://github.com/FreeCAD/FreeCAD/pull/5024 Pull request #5024]
* Allow modal adding/removal of geometric entities to constraints acting on boundaries. [https://github.com/FreeCAD/FreeCAD/pull/5117 Pull request #5117]
* Allow modal adding/removal of geometric entities to constraints acting on boundaries. [https://github.com/FreeCAD/FreeCAD/pull/5117 Pull request #5117]
* Most FEM constraint dialogs now behave uniformly and provide the same 3D object selection features. [https://github.com/FreeCAD/FreeCAD/pull/5391 Pull request #5391]


== Import == <!--T:30-->
== Export == <!--T:154-->


== Material handling == <!--T:31-->
<!--T:155-->
* DXF: The missing unit block was added to the header14.rub file. [https://github.com/FreeCAD/FreeCAD/issues/5793 Pull request #5793]


== Mesh == <!--T:32-->
== Mesh == <!--T:32-->
Line 211: Line 398:
<!--T:69-->
<!--T:69-->
Interoperability with OpenSCAD has been improved, adding support for several operations missing from earlier versions (linear extrude with rotations, rotational extrusions). Several operations are modified to provide improved FreeCAD object equivalents, particularly for twisted extrusions. Surface generation from discrete data was modified to give more OpenSCAD-like results, rather than splined surfaces.
Interoperability with OpenSCAD has been improved, adding support for several operations missing from earlier versions (linear extrude with rotations, rotational extrusions). Several operations are modified to provide improved FreeCAD object equivalents, particularly for twisted extrusions. Surface generation from discrete data was modified to give more OpenSCAD-like results, rather than splined surfaces.

<!--T:131-->
New options were added to support running either FreeCAD, OpenSCAD, or both, in sandboxed environments such as AppImages and Snap packages: data can now be transferred to and from OpenSCAD via the standard temporary directory mechanism, via a user-specified temp directory that both executables have access to, or new to OpenSCAD 2021.1, via a "stdout pipe" mechanism, bypassing temporary files entirely.


<!--T:77-->
<!--T:77-->
{| cellpadding=5
'''Add OpenSCAD element''' - now has additional options
| [[Image:OpenSCAD_AddElement_relnotes_0.20.png|384px]]
| The following options were added to the task panel of the [[OpenSCAD_AddOpenSCADElement|Add OpenSCAD element]] feature:
Load - load a scad file
Load - load a scad file
Save - save a scad file
Save - save a scad file
Line 219: Line 411:
Clear - Clear text input
Clear - Clear text input


<!--T:78-->
<!--T:173-->
There is also a text box for feedback of OpenSCAD errors.
A new text box gives feedback about OpenSCAD errors.
|}


== Part Workbench == <!--T:34-->
== Part Workbench == <!--T:34-->

<!--T:126-->
{| cellpadding=5
| [[Image:Part_Extrusion-inner-structures_relnotes_0.20.png|384px]]</br>Tapered extrusion of a sketch with an inner structure.
| A tapered [[Part_Extrude|extrusion]] of inner structures now creates usable results. Previously, inner structures were extruded as if they were stand-alone and not part of a structure.
[https://github.com/FreeCAD/FreeCAD/pull/5367 Pull request #5367]
|}


=== Further Part improvements === <!--T:35-->
=== Further Part improvements === <!--T:35-->


<!--T:36-->
<!--T:36-->
* The dialog to edit [[Part_Cylinder|Cylinders]] allows now to specify an angle in respect to the normal of the chosen attachment plane. This way one can create skew cylinders. [https://github.com/FreeCAD/FreeCAD/pull/4708 Pull request #4708]
* The dialog to edit [[Part_Cylinder|Cylinders]] now allows to specify an angle relative to the normal of the chosen attachment plane. This way one can create skew cylinders. [https://github.com/FreeCAD/FreeCAD/pull/4708 Pull request #4708]
* The [[Part_FaceColors|Face Colors]] tool now also allows to set the transparency (''Alpha channel'') of faces. This transparency can be [[Import_Export|exported]], making e.g. STEP files with transparent parts possible.
* The following commands now support App::Links: [[Part_Loft|Loft]], [[Part_Sweep|Sweep]], [[Part_Extrude|Extrude]], [[Part_Revolve|Revolve]], [[Part_ReverseShape|Reverse shapes]], [[Part_Mirror|Mirror]], [[Part_Offset2D|Offset2D]], [[Part_Offset|Offset3D]], [[Part_CheckGeometry|Check Geometry]], [[Part_RuledSurface|Ruled Surface]], [[Part_CrossSections|Cross-sections]], and [[Part_Thickness|Thickness]]. [https://github.com/FreeCAD/FreeCAD/pull/6478 Pull request #6478]


== PartDesign Workbench == <!--T:37-->
== PartDesign Workbench == <!--T:37-->
Line 233: Line 435:
<!--T:38-->
<!--T:38-->
{| cellpadding=5
{| cellpadding=5
| [[Image:PD_Pocket-direction_relnotes_0.20.gif|384px]]</br>Pocketing along different directions.</br>Click on the image to show the animation.
| [[Image:PD_Pad-Length-along-reference_relnotes_0.20.gif|384px]]</br>Padding along an edge from the model.</br>Click on the image to see the animation.
| It is now possible to specify the direction for the pocket extrusion.
| There is a new option to [[PartDesign_Pad|Pad]] along the direction of an edge in the 3D model.
[https://github.com/FreeCAD/FreeCAD/pull/5164 Pull request #5164]
|-
| [[Image:PD_Pad-Length-along-reference_relnotes_0.20.gif|384px]]</br>Padding along an edge from the model.</br>Click on the image to show the animation.
| There is a new option to pad along the direction of an edge in the 3D model.
[https://github.com/FreeCAD/FreeCAD/pull/4685 Pull request #4685]
[https://github.com/FreeCAD/FreeCAD/pull/4685 Pull request #4685]
|-
| [[Image:PD_Pad-Length-alog-direction_relnotes_0.20.gif|384px]]</br>Effect of the new option ''Length along sketch normal''.</br>Click on the image to show the animation.
| There is a new option to pad a certain length along the direction. The length is either measured along the sketch normal or along the custom direction.
[https://forum.freecadweb.org/viewtopic.php?f=17&t=50466 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/3893 Pull request #3893]
|-
| [[File:PartDesign_Cylinder_direction_relnotes_0.20.png|384px]]
| The dialog to edit [[PartDesign_AdditiveCylinder|Cylinder]] (additive and subtractive) allows now to specify an angle in respect to the normal of the chosen attachment plane. This way one can create skew cylinders.
[https://github.com/FreeCAD/FreeCAD/pull/4708 Pull request #4708]
|-
|-
| [[File:PartDesign_Chamfer_Face_Selection_relnotes_0.20.png|384px]]
| [[File:PartDesign_Chamfer_Face_Selection_relnotes_0.20.png|384px]]
Line 254: Line 444:
[https://forum.freecadweb.org/viewtopic.php?f=19&t=62084 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/5039 Pull request #5039]
[https://forum.freecadweb.org/viewtopic.php?f=19&t=62084 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/5039 Pull request #5039]
|-
|-
| [[File:PartDesign_Loft_Vertex_relnotes_0.20.png|384px]]
| [[File:PartDesign_Loft_Vertex_relnotes_0.20.png|384px]]</br>A loft with multiple sections, the final one is a vertex.
| It is now possible to create an [[PartDesign_AdditiveLoft|Additive Loft]], [[PartDesign_SubtractiveLoft|Subtractive Loft]], [[PartDesign_AdditivePipe|Additive Pipe]] or [[PartDesign_SubtractivePipe|Subtractive Pipe]] towards or from a [[Glossary#V|Vertex]] of either a sketch or a body. This allows for example to create pyramids.
| It is now possible to create an [[PartDesign_AdditiveLoft|Additive]] or [[PartDesign_SubtractiveLoft|Subtractive Loft]], or an [[PartDesign_AdditivePipe|Additive]] or [[PartDesign_SubtractivePipe|Subtractive Pipe]] towards, or from, a [[Glossary#V|Vertex]] of either a sketch or a body. This allows to create pyramids for example.</br>'''Note''': Vertices in sketches are created as construction geometry. To use them as endpoints of lofts, you must first [[Sketcher_ToggleConstruction|change them to normal geometry]].
[https://github.com/FreeCAD/FreeCAD/pull/5170 Pull request #5170] (for lofts), [https://github.com/FreeCAD/FreeCAD/pull/5193 Pull request #5193] (for pipes)
[https://github.com/FreeCAD/FreeCAD/pull/5170 Pull request #5170] (for lofts), [https://github.com/FreeCAD/FreeCAD/pull/5193 Pull request #5193] (for pipes)
|-
| [[Image:PD_Pad-Taper-angle_relnotes_0.20.png|384px]]</br>A tapered pocket within a non-tapered pad.
| The dialog for [[PartDesign_Pad|Pad]] and [[PartDesign_Pocket|Pocket]] offers to set a taper angle for the extrusion.
[https://github.com/FreeCAD/FreeCAD/pull/5357 Pull request #5357]
|-
| [[Image:PD_Pocket-direction_relnotes_0.20.gif|384px]]</br>Pocketing along different directions.</br>Click on the image to see the animation.
| It is now possible to specify the direction for the [[PartDesign_Pocket|Pocket]] extrusion.
[https://github.com/FreeCAD/FreeCAD/pull/5164 Pull request #5164]
|-
| [[File:PartDesign_Cylinder_direction_relnotes_0.20.png|384px]]
| The dialog to edit [[PartDesign_AdditiveCylinder|Cylinders]] (additive and subtractive) now allows to specify an angle relative to the normal of the chosen attachment plane. This way one can create skew cylinders. [https://github.com/FreeCAD/FreeCAD/pull/4708 Pull request #4708]
|-
|-
| [[File:PartDesign_Helix_Growth_relnotes_0.20.png|384px]]
| [[File:PartDesign_Helix_Growth_relnotes_0.20.png|384px]]
| The [[PartDesign_AdditiveHelix|Helix]] feature has the new mode '''Height-Turns-Growth''' to create flat spirals.
| The [[PartDesign_AdditiveHelix|Helix]] feature has the new mode '''Height-Turns-Growth''' to create flat spirals.
[https://forum.freecadweb.org/viewtopic.php?f=19&t=56378 Forum thread] [https://github.com/FreeCAD/FreeCAD/pull/4590 Pull request #4590]
[https://forum.freecadweb.org/viewtopic.php?f=19&t=56378 Forum thread] [https://github.com/FreeCAD/FreeCAD/pull/4590 Pull request #4590]
|-
| [[File:PartDesign_Islands-Extrude_relnotes_0.20.png|384px]]</br>A single Pad and a single [[PartDesign_Revolution|Revolution]] with nested profiles. The base block is only there to ensure that the part is a single solid.
| All PartDesign features that can extrude sketches can now handle sketches with nested profiles that form islands. For example it is possible to [[PartDesign_Revolution|Revolve]] a sketch consisting of 3 nested circles with the same center point.<br>'''Note''': Extruding nested profiles only works if the result is still a single body.
[https://github.com/FreeCAD/FreeCAD/pull/6381 Pull request #6381]
|-
| [[Image:PD_Pad-Length-alog-direction_relnotes_0.20.gif|384px]]</br>Effect of the new option ''Length along sketch normal''.</br>Click on the image to see the animation.
| There is a new option to [[PartDesign_Pad|Pad]] a certain length along the direction. The length is either measured along the sketch normal or along the custom direction.
[https://forum.freecadweb.org/viewtopic.php?f=17&t=50466 Forum discussion], [https://github.com/FreeCAD/FreeCAD/pull/3893 Pull request #3893]
|-
| [[File:PartDesign_Hole_thread_relnotes_0.20.PNG|384px]]
| The [[PartDesign_Hole|Hole]] feature can now model true threads.
[https://forum.freecadweb.org/viewtopic.php?f=34&t=54240 Forum thread] [https://github.com/FreeCAD/FreeCAD/pull/4274 Pull request #4274]
|-
|}
|}


Line 267: Line 481:
<!--T:40-->
<!--T:40-->
* In the [[PartDesign_AdditiveHelix|Helix]] feature one can now also use the sketch normal as axis. [https://github.com/FreeCAD/FreeCAD/pull/5199 Pull request #5199]
* In the [[PartDesign_AdditiveHelix|Helix]] feature one can now also use the sketch normal as axis. [https://github.com/FreeCAD/FreeCAD/pull/5199 Pull request #5199]
* The [[PartDesign_Sprocket|Sprocket]] feature can now create also ISO-normed sprockets. [https://forum.freecadweb.org/viewtopic.php?f=22&t=44525#p478369 Forum thread] [https://github.com/FreeCAD/FreeCAD/pull/4478 Pull request #4478]
* The [[PartDesign_Sprocket|Sprocket]] feature can now also create ISO-normed sprockets. [https://forum.freecadweb.org/viewtopic.php?f=22&t=44525#p478369 Forum thread] [https://github.com/FreeCAD/FreeCAD/pull/4478 Pull request #4478]
* The [[PartDesign_AdditiveLoft|Loft]] and [[PartDesign_AdditivePipe|Pipe]] features now allow using the body's faces for sections. [https://github.com/FreeCAD/FreeCAD/pull/5155 Pull request #5155]
* The [[PartDesign_AdditiveLoft|Loft]] and [[PartDesign_AdditivePipe|Pipe]] features now allow using the body's faces for sections. [https://github.com/FreeCAD/FreeCAD/pull/5155 Pull request #5155]
* It is now possible to select several faces before calling the [[PartDesign_Pad|Pad]] or [[PartDesign_Pocket|Pocket]] dialog. In this case the first selected face will be used to determine the default padding/pocketing direction. [https://github.com/FreeCAD/FreeCAD/commit/d34a5616a2b38c96ad05f9a0763ba7504dfb814d commit d34a5616]
* It is now possible to select several faces before calling the [[PartDesign_Pad|Pad]] or [[PartDesign_Pocket|Pocket]] dialog. In this case the first selected face will be used to determine the default padding/pocketing direction. [https://github.com/FreeCAD/FreeCAD/commit/d34a5616a2b38c96ad05f9a0763ba7504dfb814d commit d34a5616]
* It is possible to offset [[PartDesign_SubShapeBinder|SubShapeBinders]] if they are based on edges, wires or faces. [https://github.com/FreeCAD/FreeCAD/pull/6338 Pull request #6338]
* In the [[PartDesign_Chamfer|Chamfer]] and [[PartDesign_Fillet|Fillet]] dialogs all edges of a body can be selected via the context menu while being in the Add mode. [https://github.com/FreeCAD/FreeCAD/pull/5269 Pull request #5269] </br> When you selected a 3D object before clicking the icon to create a fillet or chamfer, all object edges will automatically be selected. [https://github.com/FreeCAD/FreeCAD/pull/5328 Pull request #5328]
* [[PartDesign_SubShapeBinder|SubShapeBinders]] now have the ''Refine'' property like all other PartDesign objects. [https://github.com/FreeCAD/FreeCAD/pull/6550 Pull request #6550]
* In the [[PartDesign_Chamfer|Chamfer]] and [[PartDesign_Fillet|Fillet]] dialogs all edges of a body can be selected via the context menu while in Add mode. [https://github.com/FreeCAD/FreeCAD/pull/5269 Pull request #5269]<br>When you selected a 3D object before clicking the icon to create a fillet or chamfer, all object edges will automatically be selected. [https://github.com/FreeCAD/FreeCAD/pull/5328 Pull request #5328]
* [[PartDesign_Chamfer|Chamfer]] and [[PartDesign_Fillet|Fillet]] dialogs now each have a new Use all edges checkbox, which is connected to the Use All Edges property for these objects. When the box is checked the property is set to True, when unchecked the property is set to False. When Use All Edges is True there is protection against the [[Topological_naming_problem|topological naming problem]] because then all of the edges of the base object are used regardless of how many edges there are. [https://github.com/FreeCAD/FreeCAD/pull/5340 Pull request #5340]
* Plane selection when [[PartDesign_NewSketch|adding a new sketch]] can now be achieved with a single-click in the 3D View. [https://github.com/FreeCAD/FreeCAD/pull/5408 Pull request] [https://forum.freecadweb.org/viewtopic.php?f=19&t=65020 Forum discussion]
* When a PartDesign tool is run without an active body, FreeCAD now offers to activate a body or create a new one. [https://github.com/FreeCAD/FreeCAD/pull/4949 Pull request #4949]
* The [[Part_FaceColors|Face Colors]] tool is now also available from the PartDesign workbench.


== Path Workbench == <!--T:41-->
== Path Workbench == <!--T:41-->


== Render Workbench == <!--T:42-->
<!--T:145-->
* The Extensions feature was added to the [[Path_Adaptive|Adaptive]] operation. [https://github.com/FreeCAD/FreeCAD/pull/4388 Pull request #4388]
* The [[Path_Helix|Helix]] operation was refactored and Extra offset property was added to it. [https://github.com/FreeCAD/FreeCAD/pull/5405 Pull request #5405]
* The check if the current schema is using minutes for velocity expression and appropriate warning were added. [https://github.com/FreeCAD/FreeCAD/pull/6357 Pull request #6357]
* External threads were added to the thread milling operation. [https://github.com/FreeCAD/FreeCAD/pull/6485 Pull request #6485]
* The stability of engraving on sketches was improved. [https://github.com/FreeCAD/FreeCAD/pull/6394 Pull request #6394]
* The visibility of path objects was made more natural. [https://github.com/FreeCAD/FreeCAD/pull/4911 Pull request #4911]

== Plot module == <!--T:146-->

<!--T:147-->
* FreeCAD now provides the Plot module by default, so any other module/workbench may create plots without requiring external tools [https://github.com/FreeCAD/FreeCAD/pull/4971 Pull request #4971].


== Sketcher Workbench == <!--T:43-->
== Sketcher Workbench == <!--T:43-->
Line 301: Line 532:
|-
|-
| [[File:SketcherSnapSlot_relnotes_0.20.gif]]
| [[File:SketcherSnapSlot_relnotes_0.20.gif]]
| [[Sketcher_CreateSlot|Sketcher CreateSlot]] can be constrained horizontally or vertically either by snapping it manually with the {{KEY|Ctrl}} key, or by using the '''Auto constraints''' option of Sketcher.
| [[Sketcher_CreateSlot|Slots]] can be constrained horizontally or vertically either by snapping it manually with the {{KEY|Ctrl}} key, or by using the '''Auto constraints''' option of Sketcher.
[https://github.com/FreeCAD/FreeCAD/pull/5200 Pull request #5200]
[https://github.com/FreeCAD/FreeCAD/pull/5200 Pull request #5200]
|-
| [[File:SketcherBSplineInsertKnot_relnotes_0.20.gif]]
| New [[File:Sketcher_BSplineInsertKnot.svg|24px]] [[Sketcher_BSplineInsertKnot|Insert Knot]] tool to insert a knot in an existing B-spline.
[https://github.com/FreeCAD/FreeCAD/pull/5311 Pull request #5311] and [https://github.com/FreeCAD/FreeCAD/pull/6356 Pull request #6356]
|}
|}


Line 308: Line 543:


<!--T:46-->
<!--T:46-->
* Refactored Trim support. [https://github.com/FreeCAD/FreeCAD/pull/4330 Pull Request] [https://forum.freecadweb.org/viewtopic.php?f=10&t=54441 Forum discussion] <-- Needs screencasts
* Refactored Trim support. [https://github.com/FreeCAD/FreeCAD/pull/4330 Pull request #4330] [https://forum.freecadweb.org/viewtopic.php?f=10&t=54441 Forum discussion]
* The behavior of the [[File:Sketcher_CreateSlot.svg|24px]] [[Sketcher_CreateSlot|Slot]] tool has changed. Slots can now be created by defining the center of both semicircles. [https://github.com/FreeCAD/FreeCAD/pull/4843 Pull request] [https://forum.freecadweb.org/viewtopic.php?f=17&t=59243&p=508658#p508658 Forum discussion]
* The behavior of the [[File:Sketcher_CreateSlot.svg|24px]] [[Sketcher_CreateSlot|Slot]] tool has changed. Slots can now be created by defining the center of both semicircles. [https://github.com/FreeCAD/FreeCAD/pull/4843 Pull request] [https://forum.freecadweb.org/viewtopic.php?f=17&t=59243&p=508658#p508658 Forum discussion]
* Visibility automation allows to open Sketcher in [[Sketcher_ViewSection|Section mode]] when entering edit mode. [https://github.com/FreeCAD/FreeCAD/pull/4742 Pull request] [https://forum.freecadweb.org/viewtopic.php?f=3&t=57056 Forum discussion]
* Visibility automation allows to open Sketcher in [[Sketcher_ViewSection|Section mode]] when entering edit mode. [https://github.com/FreeCAD/FreeCAD/pull/4742 Pull request #4742] [https://forum.freecadweb.org/viewtopic.php?f=3&t=57056 Forum discussion]
* Visibility automation allows to force camera in [[Std_OrthographicCamera|Orthographic mode]] when entering edit mode. [https://github.com/FreeCAD/FreeCAD/pull/4778 Pull request] [https://forum.freecadweb.org/viewtopic.php?f=22&t=44747 Forum discussion]
* Visibility automation allows to force camera in [[Std_OrthographicCamera|Orthographic mode]] when entering edit mode. [https://github.com/FreeCAD/FreeCAD/pull/4778 Pull request #4778] [https://forum.freecadweb.org/viewtopic.php?f=22&t=44747 Forum discussion]
* Option to display the dimensional constraint name and use a custom format for it. [https://github.com/FreeCAD/FreeCAD/pull/4966 Pull request] [https://forum.freecadweb.org/viewtopic.php?t=61153 Forum discussion]
* Option to display the dimensional constraint name and use a custom format for it. [https://github.com/FreeCAD/FreeCAD/pull/4966 Pull request #4966] [https://forum.freecadweb.org/viewtopic.php?t=61153 Forum discussion]
* When sketching a [[Sketcher_Create3PointArc|3-point arc]] with Autoconstraint enabled, [[Sketcher ConstrainTangent|tangent constraint]] is proposed for all 3 points when hovering a line/curve. [https://github.com/FreeCAD/FreeCAD/pull/4945 Pull request] [https://forum.freecadweb.org/viewtopic.php?f=3&t=60596&p=520217#p520209 Forum discussion]
* When sketching a [[Sketcher_Create3PointArc|3-point arc]] with Autoconstraint enabled, [[Sketcher_ConstrainTangent|tangent constraint]] is proposed for all 3 points when hovering a line/curve. [https://github.com/FreeCAD/FreeCAD/pull/4945 Pull request #4945] [https://forum.freecadweb.org/viewtopic.php?f=3&t=60596&p=520217#p520209 Forum discussion]
* Radius/diameter constraints are displayed using an angular rotation to ease visualization. Angle and optional randomness are user settable through parameters documented in [[Fine-tuning|Fine-tuning]] [https://github.com/FreeCAD/FreeCAD/pull/4934 Pull request] [https://forum.freecadweb.org/viewtopic.php?f=22&t=60370 Forum discussion]
* Radius/diameter constraints are displayed using an angular rotation to ease visualization. Angle and optional randomness are user settable through parameters documented in [[Fine-tuning|Fine-tuning]]. [https://github.com/FreeCAD/FreeCAD/pull/4934 Pull request #4934] [https://forum.freecadweb.org/viewtopic.php?f=22&t=60370 Forum discussion]
* It is now possible to fix the angle of the direction when using the [[Sketcher_RectangularArray|Rectangular array]] tool. [https://github.com/FreeCAD/FreeCAD/commit/c9eaa2393d33 commit] [https://forum.freecadweb.org/viewtopic.php?p=535691#p535691 Forum discussion]
* It is now possible to fix the angle of the direction when using the [[Sketcher_RectangularArray|Rectangular array]] tool. [https://github.com/FreeCAD/FreeCAD/commit/c9eaa239 commitc9eaa239] [https://forum.freecadweb.org/viewtopic.php?p=535691#p535691 Forum discussion]
* It is now possible to fix the angle of the direction when using the tools [[Sketcher_Clone|Clone]], [[Sketcher_Copy|Copy]] and [[Sketcher_Move|Move]]. [https://github.com/FreeCAD/FreeCAD/commit/6e4a09f569cf commit] [https://forum.freecadweb.org/viewtopic.php?f=8&t=62799 Forum discussion]
* It is now possible to fix the angle of the direction when using the tools [[Sketcher_Clone|Clone]], [[Sketcher_Copy|Copy]] and [[Sketcher_Move|Move]]. [https://github.com/FreeCAD/FreeCAD/commit/6e4a09f569cf commit] [https://forum.freecadweb.org/viewtopic.php?f=8&t=62799 Forum discussion]
* By right-clicking a sketch in the Tree view you will now get a context menu entry "Attachment editor" that opens the [[Part_EditAttachment|Attachment dialog]] to modify the attachment. [https://github.com/FreeCAD/FreeCAD/commit/c3511ba2f0 commit c3511ba2f0]
* Constraint selection is disabled when using a geometry or constraint tool. It can also be disabled manually at any time by pressing {{KEY|Shift}} key. [https://github.com/FreeCAD/FreeCAD/pull/5398 Pull request #5398] [https://forum.freecadweb.org/viewtopic.php?f=10&t=65465 Forum discussion]
* A versatile view filter has been added in the Sketcher task panel to ease constraints visibility management [https://forum.freecadweb.org/viewtopic.php?f=17&t=60569 Forum discussion]
* It is now possible to set the degree of a B-Spline ([https://github.com/FreeCAD/FreeCAD/pull/6463 Pull request #6463]) and undo the last defined control point ([https://github.com/FreeCAD/FreeCAD/pull/6476 Pull request #6476]) at creation time.
* Revised the default shortcuts to remove conflicting shortcuts and make shortcuts easier to remember. [https://forum.freecadweb.org/viewtopic.php?f=3&t=41272 Forum discussion]; Screenshots of the shortcuts for [https://wiki.freecadweb.org/images/0/0c/Sketcher_Shortcuts_v0.20_Screenshot_Constraints.png constraints], [https://wiki.freecadweb.org/images/4/48/Sketcher_Shortcuts_v0.20_Screenshot_Geometry.png geometry] and [https://wiki.freecadweb.org/images/9/90/Sketcher_Shortcuts_v0.20_Screenshot_variousTools.png various tools]


== Spreadsheet Workbench == <!--T:47-->
== Spreadsheet Workbench == <!--T:47-->
Line 325: Line 565:
| The workbench now has [[File:Std_DlgPreferences.svg|24px]] [[Spreadsheet_Preferences|Preferences]]. They are used by the [[File:Spreadsheet_Import.svg|16px]] [[Spreadsheet_Import|Spreadsheet Import]] and [[File:Spreadsheet_Export.svg|16px]] [[Spreadsheet_Export|Spreadsheet Export]] commands.
| The workbench now has [[File:Std_DlgPreferences.svg|24px]] [[Spreadsheet_Preferences|Preferences]]. They are used by the [[File:Spreadsheet_Import.svg|16px]] [[Spreadsheet_Import|Spreadsheet Import]] and [[File:Spreadsheet_Export.svg|16px]] [[Spreadsheet_Export|Spreadsheet Export]] commands.
[https://github.com/FreeCAD/FreeCAD/pull/5073 Pull request #5073]
[https://github.com/FreeCAD/FreeCAD/pull/5073 Pull request #5073]
|-
| [[File:Spreadsheet_configuration_table_relnotes_0.20.png|384px]]
| It is now possible to setup [[Spreadsheet_Workbench#Configuration_tables|configuration tables]]. This way one can define different parameter sets for the same part.
Part of [https://github.com/FreeCAD/FreeCAD/pull/2862 Pull request #2862].
|-
| [[File:Spreadsheet_binding-dialog_relnotes_0.20.png]]
| Cells can now be [[Spreadsheet_Workbench#Cell_binding|bound to other cells]] of the same or a different spreadsheet.
Part of [https://github.com/FreeCAD/FreeCAD/pull/2862 Pull request #2862].
|}
|}

<!--T:48-->
* It is now possible to select in the row/column context-menu at what positions new rows/columns will be inserted. [https://github.com/FreeCAD/FreeCAD/pull/4704 Pull request #4704].


=== Further Spreadsheet improvements === <!--T:97-->
=== Further Spreadsheet improvements === <!--T:97-->


<!--T:98-->
<!--T:98-->
* In the row/column context-menu it is now possible to specify the position when inserting rows/columns. [https://github.com/FreeCAD/FreeCAD/pull/4704 Pull request #4704].
* Import XLSX (used by [[Std_Import|Std Import]]): Added support for floor and ceil functions. [https://github.com/FreeCAD/FreeCAD/pull/5015 Pull request #5015].
* Import XLSX (used by [[Std_Import|Std Import]]): Added support for floor and ceil functions. [https://github.com/FreeCAD/FreeCAD/pull/5015 Pull request #5015].
* Improved navigation using the {{KEY|Tab}} and {{KEY|Enter}} keys.
* Cell binding: instruct a set of cells to display the contents of another set of cells. Part of [https://github.com/FreeCAD/FreeCAD/pull/2862 Pull request #2862].
* Improved navigation using the Tab and Enter keys.
* Improved interface for cutting and pasting blocks of cells.
* Improved interface for cutting and pasting blocks of cells.

== Start Workbench == <!--T:49-->

== Surface Workbench == <!--T:50-->


== TechDraw Workbench == <!--T:51-->
== TechDraw Workbench == <!--T:51-->
Line 346: Line 587:
<!--T:99-->
<!--T:99-->
{| cellpadding=5
{| cellpadding=5
| [[File:TechDraw_ExtensionExample_relnotes_0.20.png|400px]]
| [[File:TechDraw_ExtensionExample_relnotes_0.20.png|384px]]
| Several new tools, so-called [[TechDraw_Workbench#Extensions|Extensions]], are now available. They offer new cosmetic features to enhance drawings:
| More than 30 new tools, so-called [[TechDraw_Workbench#Extensions|Extensions]], are now available. They offer new cosmetic features to enhance drawings.
* [[File:TechDraw_ExtensionCircleCenterLines.svg|24px]] [[TechDraw_ExtensionCircleCenterLines|TechDraw ExtensionCircleCenterLines]]
* [[File:TechDraw_ExtensionThreadHoleSide.svg|24px]] [[TechDraw_ExtensionThreadHoleSide|TechDraw ExtensionThreadHoleSide]]
* [[File:TechDraw_ExtensionThreadBoltSide.svg|24px]] [[TechDraw_ExtensionThreadBoltSide|TechDraw ExtensionThreadBoltSide]]
* [[File:TechDraw_ExtensionThreadHoleBottom.svg|24px]] [[TechDraw_ExtensionThreadHoleBottom|TechDraw ExtensionThreadHoleBottom]]
* [[File:TechDraw_ExtensionThreadBoltBottom.svg|24px]] [[TechDraw_ExtensionThreadBoltBottom|TechDraw ExtensionThreadBoltBottom]]
|}
|}


=== Further TechDraw improvements === <!--T:52-->
=== Further TechDraw improvements === <!--T:52-->


<!--T:106-->
* It is now possible to [[TechDraw_ShareView|Share]] and [[TechDraw_MoveView|Move]] [[TechDraw_Workbench#Views|Views]] between pages.
* When there are several [[TechDraw_PageDefault|Pages]] and a [[TechDraw_View|View]], [[TechDraw_ProjectionGroup|ProjectionGroup]] etc. is added, there is now a dialog to ask to what page the view should be added. [https://github.com/FreeCAD/FreeCAD/pull/5309 Pull request #5309].
* When there are several [[TechDraw_PageDefault|Pages]] and a [[TechDraw_View|View]], [[TechDraw_ProjectionGroup|ProjectionGroup]] etc. is added, there is now a dialog to ask to what page the view should be added. [https://github.com/FreeCAD/FreeCAD/pull/5309 Pull request #5309].
* A new format specifier ''%w'' was added to print the given number of digits after dot and remove any trailing zeros. [https://github.com/FreeCAD/FreeCAD/pull/5401 Pull request #5401].
* The new ''%w'' format specifier is now the default. And the format specifier preference was moved from the Advanced tab to the Dimension tab. [https://github.com/FreeCAD/FreeCAD/pull/6504 Pull request #6504].
* Flipped diagonal hatch was added for the [[TechDraw_GeometricHatch|Geometric Hatch]] tool. [https://github.com/FreeCAD/FreeCAD/pull/6429 Pull request #6429].
* There is a new option to show a grid in a [[TechDraw_PageDefault|page]]. Several related [[TechDraw_Preferences#Grid|preferences]] have been introduced. [https://github.com/FreeCAD/FreeCAD/pull/6465 Pull request #6465].
* The unit display in dimensions was fixed according to standards. The degree symbol is always present for the dimension value and tolerances, other units only appear if ShowUnits is set. The unit appears immediately after the dimension value unless there is a tolerance, then it appears after the tolerance. [https://github.com/FreeCAD/FreeCAD/pull/6581 Pull request #6581]


== Web == <!--T:53-->
== Web == <!--T:53-->

<!--T:148-->
Qt WebEngine is now considered the default option instead of Qt WebKit.


== External workbenches == <!--T:54-->
== External workbenches == <!--T:54-->
Line 365: Line 611:
<!--T:104-->
<!--T:104-->
{{Emphasis|Note:}} these are the new workbenches created in this development cycle, or older workbenches that received updates. See [[External_workbenches|external workbenches]] for more workbenches that can be installed, and which cover a wide variety of topics. If you want to see your workbench added, join the [https://forum.freecadweb.org/index.php forum] and present your code.
{{Emphasis|Note:}} these are the new workbenches created in this development cycle, or older workbenches that received updates. See [[External_workbenches|external workbenches]] for more workbenches that can be installed, and which cover a wide variety of topics. If you want to see your workbench added, join the [https://forum.freecadweb.org/index.php forum] and present your code.

=== 3D Printing Tools === <!--T:55-->


=== A2plus === <!--T:56-->
=== A2plus === <!--T:56-->

<!--T:161-->
Several features to view, inspect and edit existing constraints were added. One can now e.g. highlight constraints with a label, suppress a constraint temporarily or run the solver only for a particular constraint.

<!--T:162-->
For more information see [[A2plus_Workbench#Constraint_Handling|the constraint handling description]].


=== Assembly3 === <!--T:57-->
=== Assembly3 === <!--T:57-->


=== Assembly4 === <!--T:58-->
<!--T:163-->
{| cellpadding=5
| [[File:Asm3_relnotes_0.20.jpg|384px]]
| The Assembly3 Workbench is available (as of March 2022) through the [[Std_AddonMgr|AddonManager]]. This makes for easy installation and management of the external dependencies of the workbench.


=== ArchTextures === <!--T:59-->
<!--T:164-->
Assembly3 is used to create assemblies of different bodies contained in a single file or in multiple documents leveraging the full power of FreeCAD’s Link system. Learn more about [[App_Link|Links]] in this [https://www.youtube.com/watch?v=yTDkJ7JZAWs video presentation] from Realthunder.


=== BOLTSFC === <!--T:60-->
<!--T:165-->
Assembly3 Workbench uses [https://solvespace.com SolveSpace] as it’s solver.


=== CurvedShapes Workbench === <!--T:61-->
<!--T:166-->
Extensive documentation can be found at the main FreeCAD [[Assembly3|Assembly3 wiki]] page or Realthunder's GitHub [https://github.com/realthunder/FreeCAD_assembly3/wiki Assembly3 wiki]
|-
| [[File:Asm3_1_relnotes_0.20.jpg|384px]]
| '''Main features:'''
* Dynamic/interactive solver: move parts with the mouse while the solver constrains the motion.
* Links: use one single part multiple times in an assembly.
* External links: allows usage of parts from external documents.
* Hierarchical assemblies: permits the creation of sub assemblies.
* Assembly freeze: assemblies that are not required to remain dynamic can be excluded from calculations and are considered fixed geometry by the asm3 solver.
* And much more.
|}


=== Dodo (formerly Flamingo) === <!--T:62-->
=== Assembly4 === <!--T:58-->


=== Fasteners === <!--T:63-->
<!--T:167-->
{| cellpadding=5
| [[Image:A4_veriant-beam_relnotes_0.20.png|384px]]</br>Different length of a beam as variant.
| New feature to add variants. These are [[App_Link|links]] to a part with varying parameters, meaning that you can insert the same part several times, and adjust the parameters of each instance. For more info see [https://forum.freecadweb.org/viewtopic.php?p=538666#p538666 this forum thread].
|-
| [[Image:A4_veriant-animation_relnotes_0.20.gif|384px]]</br>An animated assembly.</br>Click on the image to see the animation.
| Animations can be exported to the MP4 and GIF format.
|}


=== FCGear === <!--T:100-->
=== FCGear === <!--T:100-->


<!--T:101-->
<!--T:101-->
The [[FCGear_Workbench|FCGear Workbench]] received a couple of improvements
The [[FCGear_Workbench|FCGear Workbench]] received a couple of improvements:


<!--T:102-->
<!--T:102-->
* For involute gears, the outside (aka tip) and root diameter are exposed as properties ([https://github.com/looooo/freecad.gears/pull/69 details])
* For involute gears, the outside (aka tip) and root diameter are exposed as properties ([https://github.com/looooo/freecad.gears/pull/69 details]).
* Gear objects are now [[Part_EditAttachment|attachable]] ([https://github.com/looooo/freecad.gears/pull/72 details])
* Gear objects are now [[Part_EditAttachment|attachable]] ([https://github.com/looooo/freecad.gears/pull/72 details]).
* Gear objects can now be used as additive features in PartDesign Bodies ([https://github.com/looooo/freecad.gears/pull/74 details])
* Gear objects can now be used as additive features in PartDesign Bodies ([https://github.com/looooo/freecad.gears/pull/74 details]).
* The creation of gear objects now appears in the undo stack ([https://github.com/looooo/freecad.gears/pull/83 details])
* The creation of gear objects now appears in the undo stack ([https://github.com/looooo/freecad.gears/pull/83 details]).

=== Plot === <!--T:149-->

<!--T:150-->
* The Plot module has been stripped from the [[Plot_Workbench|Plot Workbench]] since it is now provided by FreeCAD.

=== Ship === <!--T:151-->

<!--T:152-->
The [[Ship_Workbench|Ship Workbench]] is back to life!

<!--T:153-->
* A new tool to compute the [https://github.com/FreeCAD/freecad.ship#static-sink-and-trim static sink and trim] has been added.
* A new tool to compute the [https://github.com/FreeCAD/freecad.ship#raos response amplitude operators] has been added on top of [https://github.com/mancellin/capytaine capytaine].

== Compilation == <!--T:11-->

<!--T:107-->
Since this release FreeCAD can only be compiled using Qt 5.x and Python 3.x. The lowest supported Python version is 3.6.9 according to [https://forum.freecadweb.org/viewtopic.php?f=10&t=62701 this forum thread].

<!--T:12-->
To compile FreeCAD see the instructions for [[Compile_on_Windows|Windows]], [[Compile_on_Linux|Linux]] and [[Compile_on_MacOS|MacOS]].

<!--T:81-->
The supported operating systems are:
* Windows 7, 8, 10 and 11
* Linux Ubuntu Bionic Beaver (18.04) and Focal Fossa (20.04)
* MacOS: 10.12 Sierra or newer

== Known Limitations == <!--T:15-->

===32-bit Windows=== <!--T:156-->

<!--T:157-->
Since FreeCAD 0.19 we no longer officially support 32-bit Windows. FreeCAD might work on these systems, but no support is given.

===Remote Desktop under Windows=== <!--T:158-->


=== MeshRemodel Workbench === <!--T:64-->
<!--T:159-->
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 [https://downloads.fdossena.com/geth.php?r=mesa64-latest 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).


=== MOOC Workbench === <!--T:65-->
===MacOS: Start Workbench shows blank page=== <!--T:179-->


=== NodeEditor (PyFlow) === <!--T:66-->
<!--T:180-->
If the [[Start_Workbench|Start Workbench]] shows only a blank page, you must enable the option '''Use software OpenGL''' in the menu {{MenuCommand|Edit → Preferences → Display}}.


=== Trails, PyTrails, Turns, pivy_trackers, and Geomatics === <!--T:67-->


</translate>
</translate>

Latest revision as of 14:06, 16 November 2023

FreeCAD 0.20 was released on 14 June 2022, 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.

Model of a 775 DC motor by user "jimmihenry", see Users Showcase.
The model was made completely with the weekly development snapshots of FreeCAD 0.20. The pictures for the animated graphic were made with the FreeCAD macro Screen Wiki. The animated GIF itself was made using GIMP. For the release notes it was cropped and resized using ezgif.

General

freecad.org

We are happy that the KiCAD project, through the KiCAD services corp., sponsored us the domain freecad.org. Now all FreeCAD websites are available under freecadweb.org and freecad.org.

Bug/Issue tracker

The FreeCAD bug tracker was moved to GitHub: https://github.com/FreeCAD/FreeCAD/issues

Note: Only bug reports with a prior forum discussion will be considered. Reports without this will be closed.

New help system

The help system was rewritten and upgraded to display information directly from our Wiki. The system now relies on the Help Addon. When you first use the Help tool or the What's this? tool you will be asked to install it.

User interface

The navigation cube was reworked:
  • There are now edge faces to rotate the 3D view 45°.
  • A new preference Rotate to nearest has been introduced. If selected, the 3D view is rotated to the nearest most logical position, based on the current orientation of the cube, when a cube face is clicked. Else clicking a face will always result in the same rotation. To experience the difference try the same click sequence as in the animation with and without the option Rotate to nearest.
  • By clicking the new round button in the top right corner you can quickly switch to the backview of the current scene.
  • The size of the cube can now be adjusted with the Cube size preference.

Forum discussion, Pull request #4502 .

Tooltips now display the command name in the title, making it easier for new users to look for help. At the end of the tooltip the "internal" command name is added in parentheses: (Std_WhatsThis). This is also the name of the page that documents the command in the Wiki. Forum discussion, Pull request #4978 .
The new Std UserEditMode command allows the user to choose an edit mode that will be used when an object is double-clicked in the Tree view. Click the image on the left so see an animation of the selection. If a selected edit mode is not applicable, the object's default edit mode is used instead. Pull request #5110.
The Tree view context menu has the new entry Add dependent objects to selection.
Forum discussion, Pull request #4133.

In the image the Hole001 object was selected and then its
dependencies were added to the selection via the context menu.

The new tool Section Cut allows to get non-hollow and also persistent cuts of parts and assemblies.
Forum discussion, Pull request #4118.

Further user interface improvements

Core system and API

Core

When using Edit → Copy or Edit → Duplicate selection for an object with dependencies there is a new Use Original Selections button in the object selection dialog. Click this button to copy/duplicate only the objects you originally selected prior to opening the dialog, ignoring dependencies and ignoring any actions you might have taken while the dialog was open, such as checking or unchecking some of the checkboxes. The effect is the same as if you had unchecked all the checkboxes next to the objects you did not originally select and pressed OK. Note: special care should be taken when copying/duplicating TechDraw Pages. It is recommended to also copy/duplicate all children of the Page (Templates, Views, Dimensions, etc.). Otherwise changes to one Page will also impact the other page. For example, deleting a View on one Page also removes it from the other Page, or deleting a page will also remove all its content from the other Page.
A new type of add-on called a Preference Pack was added, allowing a subset of a user preferences file (user.cfg) to be saved, distributed, and easily applied by other users. Preference Packs can be use to distribute "Themes," for example, by allowing a developer to include both a Qt stylesheet for widgets as well as a set of other colors and styles for items in the user interface that cannot be set using a stylesheet (e.g. text colors in the Python editor or report view, etc.). Anything that can be configured via a user.cfg file can be set using a Preference Pack. Forum discussion
The "Workbenches" preference panel was modified to support the ability to "autoload" workbenches on FreeCAD startup.

On Linux, the default location of FreeCAD's configuration, data and cache files was changed to follow the XDG Base Directory Specification. Forum discussion. Here is a comparison of the old and new locations:

Description Old location New location Defaults to
Configuration files $HOME/.FreeCAD $XDG_CONFIG_HOME/FreeCAD $HOME/.config/FreeCAD
Data files $HOME/.FreeCAD $XDG_DATA_HOME/FreeCAD $HOME/.local/share/FreeCAD
Cache files /tmp $XDG_CACHE_HOME/FreeCAD $HOME/.cache/FreeCAD

If you wish to keep using the old locations you may start FreeCAD with the --keep-deprecated-paths option.

API

FreeCAD received many new Python API functions:

New Python API

  • ChFi2d_AnaFilletAlgoPy: An analytical algorithm for the calculation of fillets. commit f94ab3ec
  • ChFi2d_ChamferAPIPy: Algorithm that creates a chamfer between two linear edges. commit 30f8015e7
  • Circle2dPy::getCircleCenter: Gets the circle center defined by three points. commit 3dc91fa2
  • ComplexGeoDataPy::applyRotation: Applies an additional rotation to the placement. commit 32592de8
  • ComplexGeoDataPy::applyTranslation: Applies an additional translation to the placement. commit 32592de8
  • ComplexGeoDataPy::countSubElements: Returns the number of elements of a type. commit 32592de8
  • ComplexGeoDataPy::getElementTypes: Returns a list of element types. commit 32592de8
  • ComplexGeoDataPy::getFaces: Returns a tuple of points and triangles with a given accuracy. commit 32592de8
  • ComplexGeoDataPy::getLines: Returns a tuple of points and lines with a given accuracy. commit 32592de8
  • ComplexGeoDataPy::getLinesFromSubelement: Returns vertexes and lines from a sub-element. commit 32592de8
  • ComplexGeoDataPy::getPoints: Returns a tuple of points and normals with a given accuracy. commit 32592de8
  • ComplexGeoDataPy::transformGeometry: Applies a transformation to the underlying geometry. commit 32592de8
  • DocumentPy::clearDocument: Clears the whole document. commit 526dc1a0
  • DocumentPy::getFileName: For a regular document it returns its file name property. For a temporary document it returns its transient directory. commit 526dc1a0
  • DocumentPy::getProgramVersion: Gets the program version that a project file was created with. commit 526dc1a0
  • DocumentPy::isClosable: Checks if the document can be closed. commit 526dc1a0
  • DocumentPy::isSaved: Checks if the document is saved. commit 526dc1a0
  • DocumentPy::isTouched: Checks if any object is in touched state. commit 526dc1a0
  • DocumentPy::mustExecute: Checks if any object must be recomputed. commit 526dc1a0
  • DocumentPy::purgeTouched: Purges the touched state of all objects. commit 526dc1a0
  • DocumentPy::setClosable: Sets a flag that allows or forbids to close a document. commit 526dc1a0
  • HLRBRep_AlgoPy: To access Part's hidden line removal (HLR). commit 73a98671
  • HLRBRep_PolyAlgoPy: To access Part's poly hidden line removal (HLR). commit ea85cf5e
  • HLRToShapePy: To access Part's hidden line removal (HLR). commit 73a98671
  • PolyHLRToShapePy: To access Part's poly hidden line removal (HLR). commit ea85cf5e
  • PrecisionPy: To access the precision defined by the OpenCascade kernel. commit 20b86e55
  • PropertyContainerPy::setDocumentationOfProperty: Sets the documentation string of a dynamic property of this class. commit 8cf3cf33
  • PropertyContainerPy::setGroupOfProperty: Set the name of the group of a dynamic property. commit 8cf3cf33
  • PythonWorkbenchPy::reloadActive: Reload the active workbench after changing menus or toolbars. commit 0bbc253d
  • RotationPy::fromEuler: Sets the Euler angles of a rotation or gets the Euler angles in a given sequence for a rotation. commit 951a0be9
  • RotationPy::toEulerAngles: Gets the Euler angles in a given sequence for this rotation.. commit c1454dfb
  • UnitsApi::sToNumber: Converts a quantity or float to a string. commit befbd95d
  • View3DInventorPy::getCornerCrossSize: Returns current corner axis cross size. commit 9d15df29
  • View3DInventorPy::setPopupMenuEnabled: Enables popup menu. commit 9def811a
  • View3DInventorPy::isCornerCrossVisible: Returns current corner axis cross visibility. commit 9d15df29
  • View3DInventorPy::isPopupMenuEnabled: Returns if popup menu is enabled. commit 9def811a
  • View3DInventorPy::projectPointToLine: Projects the given 2d point to a line. commit b6527a70
  • View3DInventorPy::setCornerCrossSize: Defines corner axis cross size. commit 9d15df29
  • View3DInventorPy::setCornerCrossVisible: Defines corner axis cross visibility. commit 9d15df29

Changed Python API

  • MeshObject::trim(base, normal) was changed to MeshPy::trimByPlane(base, normal): Trims the mesh with a given plane. commit 837de28e

Addon Manager

The Addon Manager was modified to support the distribution of Preference Packs, and to display information found in an addon's metadata. The Addon Manager also includes improved support for Addons whose source code is located at several different git hosting locations. Networking support was improved to provide more robust handling of SSL connections and support for proxies requiring authentication. Support was added for automatically adding macro buttons to the toolbar after installing, for disabling Addons without removing them, and for switching which git branch of an Addon is checked out. Finally, the user interface was modified to improve searching and display of different list filters.

Arch Workbench

SketchArch workbench

With the Attach Feature it is now possible to place Windows and Equipment parametrically and intuitively in relation to Walls. To use this feature the experimental external SketchArch Workbench must be installed. Add-on and ReadMe on Github (Not yet available in the Add-on Manager).

Forum discussion

New properties for Arch Structure objects:
  • BasePerpendicularToTool: it creates a copy of the Base (extrusion profile) at the beginning of the Tool (extrusion path) and places it perpendicular to the first edge of the tool. It is the same as attaching the Base with MapMode=NormalToEdge, but it is automatic and allows to reuse the same Base object for multiple Structures. When BasePerpendicularToTool = True, more properties control the placement of the Base relative to the Tool axis. They are shown in the attached image.
  • ToolOffsetFirst and ToolOffsetLast: extend/trim the Structure at the start and end respectively (the real length of the Structure is available in the ComputedLength read-only property).
  • BaseRotation: rotate the Base (the rotation is around the Base's "(0,0)" point which is the center for Arch Profiles, the origin for Sketches and usually the first point for Draft Wires).
  • BaseOffsetX and BaseOffsetY: move the Base (extrusion profile).
  • BaseMirror: mirror the Base (extrusion profile).

A new command Create multiple Arch Structure was also added. It uses the first selected object as a Base, and creates Arch Structures objects for every Edge of the other selected objects. Then, the properties of individual Structure objects can be adjusted in the Property editor. This command was added for workflow with a master Sketch (there is risk of topological naming problem unless you create non-parametric copy of the master Sketch or use Realthunder's version).

Support for 2D data such as linework, hatches, texts and dimensions is now enabled in IFC import and export, which contributes to making the IFC format more and more suitable for traditional 2D CAD work. A similar effort is being made in BlenderBIM. More 2D workflow improvements are documented in this forum thread.

Forum discussion, Pull request #3229

Draft Workbench

  • A Global checkbox was added to the task panel of many drafting commands. Checking it allows input of coordinates in the global coordinate system even if the working plane is not aligned with the global XY plane.
  • The Draft Hatch command was introduced. It creates hatches on the faces of a selected object using patterns from AutoCAD PAT files.
  • Work on the Draft SetStyle command, still in progress in FreeCAD version 0.19, was completed.
  • A double-click edit option was added for Draft Texts. It opens the same edit task panel used when creating a text.
  • For Draft Dimensions the arch ViewUnit Override for imperial architectural dimensions was introduced.
  • Draft Shape2DView objects now have an DataAuto Update property. Setting it to false can be useful if there are many Draft Shape2DViews in a document or if they are complex.

Further Draft improvements

FEM Workbench


The new Z88 settings and their default values
The Z88 solver is now fully usable. You can specify the solver method and change the memory settings. The new default values allow you to perform also complex simulations directly.

commit d035bbc1ca and following


Result of a linear buckling analysis.
Click on the image to see the animation.
It is now possible to perform buckling analyses using the Calculix solver. Pull request #4379

Effect of Mesh Size From Curvature; left: set to 12, right: deactivated
There is a new property for the Gmsh mesher. The number of mesh elements per times the radius of the curvature can be specified. The default is 12 and to get a finer mesh at small corners or holes, this value can be increased for better results. This feature requires Gmsh 4.8 or newer.

Forum discussion, Pull request #4596


Effect of the recombination algorithm; left: using Simple, right: using Simple full-quad
FreeCAD now allows to select an algorithm as well as 3D mesh recombination for the Gmsh mesher. For more details about mesh element recombination see FEM MeshGmshFromShape.

Pull request #4706

Further FEM improvements

Export

Mesh

Improved support for NASTRAN GRID elements

The Mesh import tool now supports the high-precision "GRID*" element. The standard-precision "GRID" element was also improved, now supporting both space-delimited numeric input as well as fixed-field-width input, per the NASTRAN95 format documentation.

Further Mesh improvements

Fixed false negatives during self-intersection tests when facets are coplanar: Pull request #5002.

OpenSCAD Workbench

Interoperability with OpenSCAD has been improved, adding support for several operations missing from earlier versions (linear extrude with rotations, rotational extrusions). Several operations are modified to provide improved FreeCAD object equivalents, particularly for twisted extrusions. Surface generation from discrete data was modified to give more OpenSCAD-like results, rather than splined surfaces.

New options were added to support running either FreeCAD, OpenSCAD, or both, in sandboxed environments such as AppImages and Snap packages: data can now be transferred to and from OpenSCAD via the standard temporary directory mechanism, via a user-specified temp directory that both executables have access to, or new to OpenSCAD 2021.1, via a "stdout pipe" mechanism, bypassing temporary files entirely.

The following options were added to the task panel of the Add OpenSCAD element feature:
Load    - load a scad file
Save    - save a scad file
Refresh - Update FreeCAD view
Clear   - Clear text input

A new text box gives feedback about OpenSCAD errors.

Part Workbench


Tapered extrusion of a sketch with an inner structure.
A tapered extrusion of inner structures now creates usable results. Previously, inner structures were extruded as if they were stand-alone and not part of a structure.

Pull request #5367

Further Part improvements

PartDesign Workbench


Padding along an edge from the model.
Click on the image to see the animation.
There is a new option to Pad along the direction of an edge in the 3D model.

Pull request #4685

When Distance and Angle is specified in the Chamfer tool and faces are selected, the distance will be applied along the selected faces. Likewise if two distances are specified then Size 1 will be applied along the selected face.

This behaviour can be swapped to the other face using the flip direction button. Forum discussion, Pull request #5039


A loft with multiple sections, the final one is a vertex.
It is now possible to create an Additive or Subtractive Loft, or an Additive or Subtractive Pipe towards, or from, a Vertex of either a sketch or a body. This allows to create pyramids for example.
Note: Vertices in sketches are created as construction geometry. To use them as endpoints of lofts, you must first change them to normal geometry.

Pull request #5170 (for lofts), Pull request #5193 (for pipes)


A tapered pocket within a non-tapered pad.
The dialog for Pad and Pocket offers to set a taper angle for the extrusion.

Pull request #5357


Pocketing along different directions.
Click on the image to see the animation.
It is now possible to specify the direction for the Pocket extrusion.

Pull request #5164

The dialog to edit Cylinders (additive and subtractive) now allows to specify an angle relative to the normal of the chosen attachment plane. This way one can create skew cylinders. Pull request #4708
The Helix feature has the new mode Height-Turns-Growth to create flat spirals.

Forum thread Pull request #4590


A single Pad and a single Revolution with nested profiles. The base block is only there to ensure that the part is a single solid.
All PartDesign features that can extrude sketches can now handle sketches with nested profiles that form islands. For example it is possible to Revolve a sketch consisting of 3 nested circles with the same center point.
Note: Extruding nested profiles only works if the result is still a single body.

Pull request #6381


Effect of the new option Length along sketch normal.
Click on the image to see the animation.
There is a new option to Pad a certain length along the direction. The length is either measured along the sketch normal or along the custom direction.

Forum discussion, Pull request #3893

The Hole feature can now model true threads.

Forum thread Pull request #4274

Further PartDesign improvements

Path Workbench

Plot module

  • FreeCAD now provides the Plot module by default, so any other module/workbench may create plots without requiring external tools Pull request #4971.

Sketcher Workbench

New Split function to split existing lines or arcs.

Forum discussion Pull request #4420

New Rounded rectangle tool to create rectangles with rounded corners.

Forum discussion Main Pull request #4835

New Centered rectangle tool to define rectangles via a center point.

Main commit

New Radiam function to automatically assign weight on B-spline pole, diameter on complete circle, or radius on arc. Support multi-selection as diameter/radius tools.

Forum discussion Main Pull request #4855

New Remove Axes Alignment constraint tool to remove axes alignment while trying to preserve the constraint relationship of the selection.

Main commit

Slots can be constrained horizontally or vertically either by snapping it manually with the Ctrl key, or by using the Auto constraints option of Sketcher.

Pull request #5200

New Insert Knot tool to insert a knot in an existing B-spline.

Pull request #5311 and Pull request #6356

Further Sketcher improvements

Spreadsheet Workbench

The workbench now has Preferences. They are used by the Spreadsheet Import and Spreadsheet Export commands.

Pull request #5073

It is now possible to setup configuration tables. This way one can define different parameter sets for the same part.

Part of Pull request #2862.

Cells can now be bound to other cells of the same or a different spreadsheet.

Part of Pull request #2862.

Further Spreadsheet improvements

  • In the row/column context-menu it is now possible to specify the position when inserting rows/columns. Pull request #4704.
  • Import XLSX (used by Std Import): Added support for floor and ceil functions. Pull request #5015.
  • Improved navigation using the Tab and Enter keys.
  • Improved interface for cutting and pasting blocks of cells.

TechDraw Workbench

More than 30 new tools, so-called Extensions, are now available. They offer new cosmetic features to enhance drawings.

Further TechDraw improvements

  • It is now possible to Share and Move Views between pages.
  • When there are several Pages and a View, ProjectionGroup etc. is added, there is now a dialog to ask to what page the view should be added. Pull request #5309.
  • A new format specifier %w was added to print the given number of digits after dot and remove any trailing zeros. Pull request #5401.
  • The new %w format specifier is now the default. And the format specifier preference was moved from the Advanced tab to the Dimension tab. Pull request #6504.
  • Flipped diagonal hatch was added for the Geometric Hatch tool. Pull request #6429.
  • There is a new option to show a grid in a page. Several related preferences have been introduced. Pull request #6465.
  • The unit display in dimensions was fixed according to standards. The degree symbol is always present for the dimension value and tolerances, other units only appear if ShowUnits is set. The unit appears immediately after the dimension value unless there is a tolerance, then it appears after the tolerance. Pull request #6581

Web

Qt WebEngine is now considered the default option instead of Qt WebKit.

External workbenches

Note: these are the new workbenches created in this development cycle, or older workbenches that received updates. See external workbenches for more workbenches that can be installed, and which cover a wide variety of topics. If you want to see your workbench added, join the forum and present your code.

A2plus

Several features to view, inspect and edit existing constraints were added. One can now e.g. highlight constraints with a label, suppress a constraint temporarily or run the solver only for a particular constraint.

For more information see the constraint handling description.

Assembly3

The Assembly3 Workbench is available (as of March 2022) through the AddonManager. This makes for easy installation and management of the external dependencies of the workbench.

Assembly3 is used to create assemblies of different bodies contained in a single file or in multiple documents leveraging the full power of FreeCAD’s Link system. Learn more about Links in this video presentation from Realthunder.

Assembly3 Workbench uses SolveSpace as it’s solver.

Extensive documentation can be found at the main FreeCAD Assembly3 wiki page or Realthunder's GitHub Assembly3 wiki

Main features:
  • Dynamic/interactive solver: move parts with the mouse while the solver constrains the motion.
  • Links: use one single part multiple times in an assembly.
  • External links: allows usage of parts from external documents.
  • Hierarchical assemblies: permits the creation of sub assemblies.
  • Assembly freeze: assemblies that are not required to remain dynamic can be excluded from calculations and are considered fixed geometry by the asm3 solver.
  • And much more.

Assembly4


Different length of a beam as variant.
New feature to add variants. These are links to a part with varying parameters, meaning that you can insert the same part several times, and adjust the parameters of each instance. For more info see this forum thread.

An animated assembly.
Click on the image to see the animation.
Animations can be exported to the MP4 and GIF format.

FCGear

The FCGear Workbench received a couple of improvements:

  • For involute gears, the outside (aka tip) and root diameter are exposed as properties (details).
  • Gear objects are now attachable (details).
  • Gear objects can now be used as additive features in PartDesign Bodies (details).
  • The creation of gear objects now appears in the undo stack (details).

Plot

  • The Plot module has been stripped from the Plot Workbench since it is now provided by FreeCAD.

Ship

The Ship Workbench is back to life!

Compilation

Since this release FreeCAD can only be compiled using Qt 5.x and Python 3.x. The lowest supported Python version is 3.6.9 according to this forum thread.

To compile FreeCAD see the instructions for Windows, Linux and MacOS.

The supported operating systems are:

  • Windows 7, 8, 10 and 11
  • Linux Ubuntu Bionic Beaver (18.04) and Focal Fossa (20.04)
  • MacOS: 10.12 Sierra or newer

Known Limitations

32-bit Windows

Since FreeCAD 0.19 we no longer officially support 32-bit Windows. FreeCAD might work on these systems, but no support is given.

Remote Desktop under Windows

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

MacOS: Start Workbench shows blank page

If the Start Workbench shows only a blank page, you must enable the option Use software OpenGL in the menu Edit → Preferences → Display.