FreeCAD Changelog

What's new in FreeCAD 0.21.1

Sep 1, 2023
  • [Tests] Fix build of "tests" on macOS for v0.21 by @jbaehr in #10209
  • [Sketcher] Fix minor icon missing bug... by @Syres916 in #10280
  • [Core] escape filepath characters in FreeCAD.loadFile by @bdieterm in #10367
  • [Gui] Py311 Initialization of locales... by @Syres916 in #10428
  • [Path] backport commits for Path WB by @sliptonic in #10412

New in FreeCAD 0.21.0 (Aug 2, 2023)

  • Improvements:
  • General
  • User interface:
  • Further user interface improvements
  • Core system and API:
  • Core
  • API:
  • New Python API
  • Removed Python API
  • Addon Manager
  • Arch Workbench:
  • Further Arch improvements
  • Draft Workbench:
  • Further Draft improvements
  • FEM Workbench:
  • Further FEM improvements
  • Export
  • Mesh:
  • Further Mesh improvements
  • OpenSCAD Workbench
  • Part Workbench:
  • Further Part improvements
  • PartDesign Workbench:
  • Further PartDesign improvements
  • Path Workbench
  • Plot module
  • Sketcher Workbench:
  • Further Sketcher improvements
  • Spreadsheet Workbench:
  • Further Spreadsheet improvements
  • Surface Workbench
  • TechDraw Workbench:
  • Further TechDraw improvements
  • Web
  • External workbenches:
  • A2plus
  • Assembly3
  • Assembly4
  • FCGear
  • Ship
  • Compilation

New in FreeCAD 0.21.1 RC 1 (Jul 31, 2023)

  • QMessage should not be used to notify that. Here we should use the requireRestart functionality.

New in FreeCAD 0.20.2.29601 (Dec 5, 2022)

  • Addon Manager fixes:
  • a8cb4e7: Fix bug in dependency resolver
  • #7356: Minor bugfix with Mod folder
  • 83f4b2c: Fix failures with Unicode characters in filenames
  • d1ad3b4: Add try/except to integer conversion
  • 9bf0c58: Fix formatting in error handler
  • Arch fixes:
  • #6140: fix wrong line spacing in 3D-view
  • #6178: External Reference does not load Windows nested in Walls
  • #7370: Wall not visible when base sketch lines overlap
  • #7528: Fix crash related to SoBrepEdgeSet
  • #7591: Improve handling of window hosts
  • #7859: Fix CutPlane color
  • Core (App and Gui) fixes:
  • 746a56f: Don't show non-existing and unusual directories in file dialog
  • ff876bf: Clear combo boxes before re-filling them and fix handling of icon size in preferences packs
  • 6395465: make FreeCAD 0.20.x to compile with Python 3.11
  • #7388: Prevent crash when trying to create ExpressionBinding without arguments
  • #7422: Allow set up expression even if property value is currently being edited
  • #7444: Assure message boxes appear and stay on top of main window
  • #7507: Allow None parameter again in drag and drop methods in Python ViewProviderPy class
  • #7539: TinkerCAD navigation was always stopping right mouse button propagation
  • #7277: Write to network drive failed on Windows
  • bc9897c: TreeView selection can not be undone
  • #7628: Fix crash after creating a Sketch for a Body
  • 4d8e615: If expression is set for Euler angles in the placement dialog then evaluate the expression instead of determining the angles from the rotation
  • 6f302d3: Backport class WrapperManager to fix possible crashes when using PySide
  • #7737: Add default JPEG save quality and set it to 90%
  • 7d9b344: Fix memory leak
  • 4067cc1: Fix endless-loop in View3DInventorSelection::checkGroupOnTop
  • 710a470: Fix endless-loop in DocumentObject::getParents
  • #5942: Revit navigation: rotation stop on scroll release
  • #7819: ActionGroup: also get its tooltip title updated
  • Draft fixes:
  • #5765: Clone did not maintain the colours of the original
  • 2b5b7cd: Fix snapper icons
  • #7354: Add tolerance to BoundBox check
  • #7424: Fix working plane auto alignment to front view
  • #7441: Fix flatten wire
  • #7453: Fix alignment of angular dimension arrows
  • #7528: Fix crash related to SoBrepEdgeSet
  • #7616: Make Std_TransformManip work for Point
  • #7670: Fix rectangle with face offset bug
  • #7806: arcFromSpline() function uses wrong parameter
  • FEM fixes:
  • b716644: Fix handling of case fluids + solid materials
  • bd796c9: Fix error for 2D shapes
  • 08af39c: Fix heat flux handling
  • #7360: CalculiX write_constraint_temperature.py outputs incorrect file name format
  • b14a909: Fix flux equation
  • #7538: Fix remaining result object in memory in FemMesh2Mesh
  • c0a45ec: Add standard path for Gmsh on MacOSX
  • PartDesign fixes:
  • #7445: Improve offset handling of SubShapeBinder
  • #7504: Add format parameter for Wedge X-min
  • #7626: Hole cut depth was not recalculated correctly
  • #7674: Improve Helix calculation for straight shape
  • #7629: Keep sketch visible during revolution tasks
  • #7722: assure source sketch is visible when in selection mode of Helix
  • 145c3bf: Fix UTF-8 in filename handling for Hole
  • #7943: Fix check for orthogonality when padding/pocketing along a custom direction
  • Path fixes:
  • #7438: Change Default Drilling Retraction from G99 to G98
  • #7454: Fix for testing verticallity during PathFeedRate generation
  • #7455: Fix for setup-sheet-stepover
  • Sketcher fixes:
  • #7324: Fix WhatsThis for Constrain an arc or circle
  • #7426: Prevent dangling state of Shift key if key released out of Quarter
  • #7429: Some user colors were not taken into account
  • 2d5b874: PointOnObject: do not substitute constraint if conditions are not OK
  • #7641: Correct icon for CreatePointFillet in menu
  • e3cd132: Fix typo in tooltip for Clone
  • #7082: Dimension size on perspective view scales "backwards"
  • #7860: Dimensions became unreadable small if a second sketch is visible
  • Spreadsheet fixes:
  • #7604: Fix multi-screen management of QtColorPicker
  • #7841: Alias field can't be set for empty cells
  • TechDraw fixes:
  • #7351: Fix multiple dimension drag
  • #7362: Fix hatch file default handling
  • ff01905: Fix UTF-8 handling in LineGroup
  • #7463: Fix extent dimension
  • #7555: Encode XML characters in SpreadsheetView
  • #7856: Segfault when opening task on DetailView for which the parent View was deleted
  • Compilation:
  • #7389: Fix MacOSX build of FreeCAD 0.20.x
  • #7434: Fix makeWireString for Windows with Python 3.09 and newer
  • Miscellaneous:
  • #7358: XDGData: fix wrong xml element in mimetype file
  • #7447: StartPage: fix Wiki link to Reverse Engineering workbench

New in FreeCAD 0.20.1.29410 (Sep 5, 2022)

  • Addon Manager fixes:
  • #7112: Addon manager did not work on windows with special characters in username
  • 0e2508c: Fix for non-Github URLs
  • 119a402: Add other_files download for wiki macros
  • 0865b97: Fix thread termination bug
  • Arch fixes:
  • #7135: Invert opening symbol for simple door
  • #7212: Fix getCutVolume
  • #6679: Could not change type of profile after its addition
  • Core (App and Gui) fixes:
  • #7032: Fix expressions assignment for FreeBSD
  • #7044: Set missing angle in Rotation::inverse function
  • #5592: Respect symbolic links
  • 212b140: GuiPy: allow to call setupWithoutGUI more than once
  • 3f8dc1a: Fix crash in ViewProviderLink::currentDraggingPlacement()
  • #7113: Pressing OK button in "Placement Panel" changed color of the Link object
  • c4547c0: Python console: Fix a Latin1 <-> UTF-8 conversion problem
  • Draft fixes:
  • #7058: Draft to sketch does not take placement into account
  • #7105: Fix align working plane to DatumPlane
  • #7109: Fix default fillmode
  • #7138: DisplayStatusbarScaleWidget should be checked in preferences
  • #6734: Join fails when there is a minor difference in coordinates due to rounding
  • #7173: Fix setEdit
  • #7174: Fix EditMode for hatch, facebinder and shapestring
  • #7186: Fix Hatch task panel title
  • #7215: Remove unnecessary DisplayStatusbar preference
  • #7259: Fix handling of groups on move-copy and rotate-copy
  • #7295: Fix Draft Edit AddPoint with BSpline
  • #6181: Ctrl+Z dis not work in Draft_Wire
  • FEM fixes:
  • e8f3227: Fix point filter initialization issue
  • ef08867: Fix wrong console outputs for fluid materials
  • 1f7374e: Fix material task dialog for fluids
  • 5d389e3: Check if solver executables exist
  • #7158: Fix CalculiX multi-threading bug
  • #7160: Fix solver console bugs
  • faa1f96: Check if Gmsh, CalculiX and Mystran solver binaries exist
  • #7230: Color bar for result pipelines and filters not updated in view
  • 057e90b: Add missing info about transparency
  • #7242: Fix regression that result pipeline missed some results
  • 864c9ec: set default selection mode to BoundBox for post objects
  • c4b8983: Fix errors on missing material properties
  • 8303a55: Add missing eigenfrequcy calculation for Elmer
  • 8bb85d2: Use SoAnnotation to highlight result pipeline objects
  • ba85817: Use direct solving as default for stresses
  • 357989c: Allow to edit solver input files also for Elmer and Z88
  • 7e07162: Fix selection issues with electrostatic constraint
  • 90afc19: Fix pipeline recompute bug
  • d438514: Fix another pipeline recompute bug
  • 515584c: Fix warp filter factor
  • 4b2a486: Fix selection issues with flow velocity constraint
  • Material improvements: :
  • c7a2ddb: new material card for plain Aluminum
  • 9c50b54: new material cards for Copper and Invar
  • Mesh fix:
  • #7023: 3mf created with FreeCAD cannot be loaded with PruseSlicer
  • OpenSCAD fix:
  • #7301: Get rid of SCAD-Import error
  • Part fixes:
  • #7083: Fix display "labelfillet" name for Chamfer and Fillet
  • 9de8b33: Fix GeomBSplineCurve::toBiArcs
  • #7154: Rename preferences page to "Part/Part Design"
  • 639ff92: Fix TopoShape.isInside() for faces
  • #7219: Correction of decimal places on creation of primitives
  • #7260: Fix KnotSequence for periodic BSpline surfaces
  • PartDesign fixes:
  • 360b428: Hole dialog fixes
  • 1b2f006: Hole initialization bugfix
  • 6564086: Fix ProfileBased::getSupportFace()
  • 094ae93: Fix Pad/Pocket logic issue
  • #7198: Add property enabling logic for pad/pocket
  • #7201: Improve face selection for Pad/Pocket
  • Path fixes:
  • #6693: LeadInOut dressup breaks simulator
  • #7164: Fix wrong "Please delete and recreate the job" message
  • #6974: Restore drilling op retract value to user supplied Retract Height
  • #7137: Fix Type=Polar regression in PathArray
  • #7278: Fix vcarve c++ exception
  • #7333: Fix external thread issues
  • Sketcher fixes:
  • #7064: "Toggle Construction Geometry Button" is not working in "Custom Workbenches"
  • #7324: Fix "WhatsThis?" for Sketcher_CompConstrainRadDia
  • Spreadsheet fixes:
  • 469e4f1: Fix several memory leaks
  • #7285: Crash if cell value ' is set
  • Stylesheet fixes:
  • #7190: Remove whitespace and add "checked" icon style
  • #6102: Group box lines were not correctly styled
  • TechDraw fixes:
  • fb1a7af: Fix Projection group view spacing
  • 4b47d38: Fix dimension update on change of Projection group scale
  • #7106: Fix Dimension export to DXF
  • #7121: Fix bitmap hatch
  • #7066: Fix Image scaling
  • #7131: Fix multiple open dialogs
  • #7144: Fix bad edge in face finder
  • #7184: Fix crash on body with no shape
  • #7266: Fix symbol recompute and scale
  • Compilation:
  • #7136: Prepend CMAKE_INSTALL_PREFIX if CMAKE_INSTALL_LIBDIR is not absolute
  • b85e9b1: Fix Conda test errors
  • Miscellaneous:
  • e89ebba: Do not exclude widget plugins from tarball

New in FreeCAD 0.20.29177 (Jun 14, 2022)

  • 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 f:reecad.org.
  • Bug/Issue tracker:
  • The FreeCAD bug tracker was moved to GitHub
  • 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.
  • 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.
  • Dependencies-selection relnotes 0.20.png 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:
  • 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. Pull request #6364
  • Note: For 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 OpenSCAD, the other on TinkerCAD. Forum discussion OpenSCAD, Forum discussion TinkerCAD, commit 1, commit 2, commit 3.
  • It is now possible to pan the view of the dependency graph with the mouse. Forum discussion, Pull request #4638.
  • Fixed an issue where using tablet pen devices (e.g. Wacom tablet) was slow to the point of being completely unusable. Forum discussion, Pull request #4687.
  • The coordinate system in the 3D view can be resized in the preferences in the section Display → 3D View. Pull request #5182
  • A new setting in Preferences → General allows to substitute the numerical keypad decimal separator with the appropriate locale separator if they are different. Pull request #3256 Pull request #5150 Pull request 5203
  • It is now possible to set the Backspace key as a standalone shortcut key without the need to specify an additional modifier key. Pull request #5428
  • Core system and API:
  • 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.
  • API:
  • FreeCAD received many new Python API functions: 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 in SketchArch.svg Attach Feature it is now possible to place Arch Window.svg Windows and Arch Equipment.svg Equipment parametrically and intuitively in relation to Arch Wall.svg Walls. To use this feature the experimental external SketchArch Workbench.svg SketchArch Workbench must be installed. Add-on and ReadMe on Github (Not yet available in the Add-on Manager).
  • 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.
  • 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.svg Draft Hatch command was introduced. It creates hatches on the faces of a selected object using patterns from AutoCAD PAT files.
  • The Draft AddNamedGroup.svg Draft AddNamedGroup command was introduced. The Draft AddToGroup.svg Draft AddToGroup command was extended with the same functionality.
  • Work on the Draft SetStyle.svg Draft SetStyle command, still in progress in FreeCAD version 0.19, was completed.
  • A double-click edit option was added for Draft Text.svg Draft Texts. It opens the same edit task panel used when creating a text.
  • For Draft Dimension.svg Draft Dimensions the arch ViewUnit Override for imperial architectural dimensions was introduced.
  • Draft Shape2DView.svg 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.
  • It is now possible to reverse a Draft Wire via the Draft Edit.svg Draft Edit context menu. Forum discussion, Pull request #4811.
  • Further Draft improvements:
  • Fixed Draft Snap Grid when the cursor is over a face. Forum discussion. Git commit.
  • New Draft Texts are now aligned with the working plane, Pull request #5092.
  • Support for two DWG converters was added: LibreDWG and QCAD pro. See Import Export Preferences and FreeCAD and DWG Import for more information.
  • FEM Workbench:.
  • 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.
  • It is now possible to perform buckling analyses using the Calculix solver.
  • There is a new property for the Gmsh mesher. The number of mesh elements per 2 π {displaystyle 2pi } {displaystyle 2pi } 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.
  • 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.
  • Further FEM improvements:
  • Important: Starting from this release, FreeCAD will use SI units (m, kg, s, K, A, mol, cd) to write the Elmer solver input files (case.sif and mesh.nodes). This is independent of the used FreeCAD unit system.
  • Important: Starting from this release, the scale of result pipelines and their 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 unit systems.
  • Solving with the Calculix solver now uses all CPU cores. Pull request #6374
  • Meshing with Gmsh now uses all CPU cores. Pull request #6370
  • The element order of Gmsh meshes can be changed via the mesh dialog. Pull request #4660
  • The 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: Model → Mechanical Constraints → FEM ConstraintCentrif.svg Constraint Centrif. Pull request #4738
  • A new solver was added: Solve → FEM SolverMystran.svg Solver Mystran. Multiple commits.
  • A new constraint was added: Model → Mechanical Constraints → FEM ConstraintSpring.svg Constraint Spring. Pull request #4982
  • It is now possible to have result pipelines with several filters, where some take other filters as input, and some take the results directly from the pipeline. commit 708a300b
  • Material cards can now contain values for the electrical conductivity. Pull request #4647
  • Material cards added for Nitrogen and Argon. Pull request #4649
  • Support for the Gmsh mesh algorithms "HXT" (3D) and "Packing Parallelograms" (2D) added. Pull request #4654
  • Allow to specify an algorithm for the Gmsh property "High Order Optimize". Pull request #4705
  • Nonlinear solid materials with simple hardening can now have an arbitrary number of yield points. Pull request #5024
  • Allow modal adding/removal of geometric entities to constraints acting on boundaries. Pull request #5117
  • Most FEM constraint dialogs now behave uniformly and provide the same 3D object selection features. Pull request #5391
  • Export:
  • DXF: The missing unit block was added to the header14.rub file. Pull request #5793
  • 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 #50
  • 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:
  • 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
  • The dialog to edit Cylinders 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 Face Colors tool now also allows to set the transparency (Alpha channel) of faces. This transparency can be exported, making e.g. STEP files with transparent parts possible.
  • The following commands now support App::Links: Loft, Sweep, Extrude, Revolve, Reverse shapes, Mirror, Offset2D, Offset3D, Check Geometry, Ruled Surface, Cross-sections, and Thickness. Pull request #6478
  • PartDesign Workbench:
  • Padding along an edge from the model. There is a new option to Pad along the direction of an edge in the 3D model.
  • PartDesign Chamfer Face Selection relnotes 0.20.png 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
  • PartDesign Loft Vertex relnotes 0.20.png
  • 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.
  • The dialog for Pad and Pocket offers to set a taper angle for the extrusion.
  • It is now possible to specify the direction for the Pocket extrusion.
  • 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
  • PartDesign Helix Growth relnotes 0.20.png The Helix feature has the new mode Height-Turns-Growth to create flat spirals.
  • PartDesign Islands-Extrude relnotes 0.20.png
  • 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.
  • 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.
  • 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.
  • Further PartDesign improvements
  • In the Helix feature one can now also use the sketch normal as axis. Pull request #5199
  • The Sprocket feature can now also create ISO-normed sprockets. Forum thread Pull request #4478
  • The Loft and Pipe features now allow using the body's faces for sections. Pull request #5155
  • It is now possible to select several faces before calling the Pad or Pocket dialog. In this case the first selected face will be used to determine the default padding/pocketing direction. commit d34a5616
  • It is possible to offset SubShapeBinders if they are based on edges, wires or faces. Pull request #6338
  • SubShapeBinders now have the Refine property like all other PartDesign objects. Pull request #6550
  • In the Chamfer and Fillet dialogs all edges of a body can be selected via the context menu while in Add mode. Pull request #5269
  • When you selected a 3D object before clicking the icon to create a fillet or chamfer, all object edges will automatically be selected. Pull request #5328
  • Chamfer and 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 because then all of the edges of the base object are used regardless of how many edges there are. Pull request #5340
  • Plane selection when adding a new sketch can now be achieved with a single-click in the 3D View. Pull request Forum discussion
  • When a PartDesign tool is run without an active body, FreeCAD now offers to activate a body or create a new one. Pull request #4949
  • The Face Colors tool is now also available from the PartDesign workbench.
  • Path Workbench:
  • The Extensions feature was added to the Adaptive operation. Pull request #4388
  • The Helix operation was refactored and Extra offset property was added to it. Pull request #5405
  • The check if the current schema is using minutes for velocity expression and appropriate warning were added. Pull request #6357
  • External threads were added to the thread milling operation. Pull request #6485
  • The stability of engraving on sketches was improved. Pull request #6394
  • The visibility of path objects was made more natural. Pull request #4911
  • 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 Sketcher CreateOblong.svg Rounded rectangle tool to create rectangles with rounded corners.
  • Centered rectangle tool to define rectangles via a center point.
  • 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.
  • Remove Axes Alignment constraint tool to remove axes alignment while trying to preserve the constraint relationship of the selection
  • 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.
  • New Sketcher BSplineInsertKnot.svg Insert Knot tool to insert a knot in an existing B-spline.
  • Further Sketcher improvements:
  • Refactored Trim support. Pull request #4330 Forum discussion
  • The behavior of the Sketcher CreateSlot.svg Slot tool has changed. Slots can now be created by defining the center of both semicircles. Pull request Forum discussion
  • Visibility automation allows to open Sketcher in Section mode when entering edit mode. Pull request #4742 Forum discussion
  • Visibility automation allows to force camera in Orthographic mode when entering edit mode. Pull request #4778 Forum discussion
  • Option to display the dimensional constraint name and use a custom format for it. Pull request #4966 Forum discussion
  • When sketching a 3-point arc with Autoconstraint enabled, tangent constraint is proposed for all 3 points when hovering a line/curve. Pull request #4945 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. Pull request #4934 Forum discussion
  • It is now possible to fix the angle of the direction when using the Rectangular array tool. commitc9eaa239 Forum discussion
  • It is now possible to fix the angle of the direction when using the tools Clone, Copy and Move. commit Forum discussion
  • By right-clicking a sketch in the Tree view you will now get a context menu entry "Attachment editor" that opens the Attachment dialog to modify the attachment. commit c3511ba2f0
  • Constraint selection is disabled when using a geometry or constraint tool. It can also be disabled manually at any time by pressing Shift key. Pull request #5398 Forum discussion
  • A versatile view filter has been added in the Sketcher task panel to ease constraints visibility management Forum discussion
  • It is now possible to set the degree of a B-Spline (Pull request #6463) and undo the last defined control point (Pull request #6476) at creation time.
  • Revised the default shortcuts to remove conflicting shortcuts and make shortcuts easier to remember. Forum discussion; Screenshots of the shortcuts for constraints, geometry and various tools
  • Spreadsheet Workbench:
  • The workbench now has Std DlgPreferences.svg Preferences. They are used by the Spreadsheet Import.svg Spreadsheet Import and Spreadsheet Export.svg Spreadsheet Export commands
  • It is now possible to setup configuration tables. This way one can define different parameter sets for the same part.
  • Cells can now be bound to other cells of the same or a different spreadsheet.
  • 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.
  • 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.
  • 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 workbench since it is now provided by FreeCAD.
  • Ship:
  • The Ship Workbench is back to life!
  • A new tool to compute the static sink and trim has been added.
  • A new tool to compute the response amplitude operators has been added on top of capytaine.

New in FreeCAD 0.19.24267 +148 (Mar 10, 2022)

  • Arch fixes:
  • #5388: Fix Wall onBeforeChange
  • #5465: Fix dimensions in profiles.csv
  • Core (App and Gui) fixes:
  • #5299: MainWindow document camera position bugfix
  • #5492: Fix bug in matrix multiplication
  • Draft fixes:
  • #5233: Fix Part_Line offset issue
  • 8585149a: Added INSUNITS to exported DXF
  • 1742d7ff: Security vulnerability in DWG import when using ODA file converter
  • #5280: Commands acting on subelements did not load the Draft module
  • #5297: Fix SVG import for ellipses
  • #5233: Fix several issues with importAirfoilDAT.py
  • 325c5ec8: DXF import failed for trivial circle
  • #5449: PointArray: set Count property during execute
  • #5476: Entering a Y=0 coordinate when editing points caused an error
  • #6444: Fix Line length is zero bug
  • Import/Export fix:
  • #6470: Fix that mm to inch calculation was performed twice on DXF import
  • Part fixes:
  • 782f9c93: Unhandled unknown exception caught when mouse gets over a datum plane
  • #5348: Improve performance of BOPcheck
  • PartDesign fixes:
  • 6167e9f7: Bad error message when creating pad with 0 length
  • #5149: MultiTransform dialog cannot be cancelled
  • Path fixes:
  • #5306: Use subprocess.Popen() to avoid executing arbitrary code
  • #5343: Fix open edge zero value start point
  • Sketcher fix:
  • #5197: Fix CarbonCopy when XZ plane mapping
  • TechDraw fixes:
  • #5013: Prevent crash where user duplicates page without also duplicating dependencies
  • #5016: Prevent crash where user has duplicated page without dependencies and then tries to remove a view from one of the pages by editing the Views property
  • #5283: Adding a new Drawing Page leaved the Page in "touched, but must be executed state".
  • #5477: Improvement and bug fixes of weld symbol selection
  • Web fix:
  • 18b3c59d: Fix storage paths of web content
  • Compilation:
  • 6ad156b6
  • 833868bd
  • 6d2aa6ac
  • 5fba9cec
  • Miscellaneous:
  • 76c611ae: Remove unnecessary Unicode characters

New in FreeCAD 0.18.4 Revision 980bf90 (Nov 4, 2019)

  • 980bf90 pre-select name filter in import/export file dialog
  • f972b01 [TD]Fix slow GC of QGIPrimPath
  • 5a1527f Merge pull request #2489 from Jantek/patch-1
  • dea7d20 [Spreadsheet] Excel File Import fix Py3 bug
  • a4a42b3 Merge pull request #2541 from Syres916/patch-4
  • 7fa0eea Fix xrange bug in PathSurface.py
  • 2b28c50 Fix xrange bug in PathCircularHoleBaseGui.py
  • 31d9283 fix print preview function for >= Qt 5.9
  • f07b6e3 Follow-up: Fixed thumbnail for problematic FEM example file
  • 38e0e99 Merge pull request #2490 from Jantek/patch-2
  • 2483c46 Backport: startwb files restored in 0.18.3 to display thumbs correctly
  • d9b8faf Fixed problems with 'pythonopen'
  • 102b97a Correction of drill speed calculation
  • 1e9f9fa Material: py2 fix in depreciated mat file parser (back port from 0.19)
  • 7320c4c [TD]Fix #4017 Crash on bad hatch scale

New in FreeCAD 0.17 Revision 7745 Dev (Aug 4, 2017)

  • These snapshots are provided for testing purposes and bug reporting. This development cycle brings huge changes to many workbenches, in particular the Part Design Workbench, which has a new workflow. New bugs have been introduced and it will take some time to stabilize this version. Also much of the currently available learning material becomes outdated. For this reason we recommend that beginners install the 0.16 release at this time.
  • The FEM and Path Workbenches are also under heavy, fast development, testing is always welcome.
  • In addition 0.17_pre brings the introduction of a new Workbench, TechDraw. This Workbench aims to offer full fledged support for technical drawings, auto-updating with changes to the 3D geometry,

New in FreeCAD 0.17 Revision 10807 Dev (Apr 14, 2017)

  • This development cycle brings huge changes to many workbenches, in particular the Part Design Workbench, which has a new workflow. New bugs have been introduced and it will take some time to stabilize this version. Also much of the currently available learning material becomes outdated. For this reason we recommend that beginners install the 0.16 release at this time.
  • he FEM and Path Workbenches are also under heavy, fast development, testing is always welcome.
  • In addition 0.17_pre brings the introduction of a new Workbench, TechDraw. This Workbench aims to offer full fledged support for technical drawings, auto-updating with changes to the 3D geometry,

New in FreeCAD 0.17 Revision 10686 Dev (Apr 5, 2017)

  • This development cycle brings huge changes to many workbenches, in particular the Part Design Workbench, which has a new workflow. New bugs have been introduced and it will take some time to stabilize this version. Also much of the currently available learning material becomes outdated. For this reason we recommend that beginners install the 0.16 release at this time.
  • The FEM and Path Workbenches are also under heavy, fast development, testing is always welcome.
  • In addition 0.17_pre brings the introduction of a new Workbench, TechDraw. This Workbench aims to offer full fledged support for technical drawings, auto-updating with changes to the 3D geometry,