FreeCAD Legacy Migration
Contents
Introduction
This page is meant to document the motivation of why OSE should migrate away from FreeCAD 16 or FreeCAD Legacy.
Motivation
The following are the compelling new features we're missing out on that could vastly transform how we use FreeCAD.
- TODO: Place under section in which it was introduced. Navigation Cube - Helps orient users in the 3D view
FreeCAD 17 Features
- Vast reworking of PartDesign workbench
- Std Part - General purpose container that keeps together a group of objects so that they can be moved together as a unit in the 3D view. Developed to be the basic building block to create assemblies
- PartDesign Body - A single contiguous solid or indistinguishable part, it can be moved entirely as a unit, without moving the individual features. Multiple bodies can be placed inside Std Parts in order to create assemblies. Supports being attached to using Part Attachment
- Part Attachment - Links, or attaches objects parameterically which means that if the attached-to object's placement changes, then the attached object will update it's position automatically.
- Addon Manager - Vastly simplifies installing additional workbenches and macros
See Also: https://wiki.freecadweb.org/Release_notes_0.17
FreeCAD 18 Features
- Part: Explode Compound - Explode a compound into it's individual parts
- New Style Workbenches - Multiple reasons, but the big one is integration with The Python Package Index (PyPi) and pip
- Makes the
ose-workbench-core
library to encapsulate functionality common to all OSE workbenches an easier reality as "new style workbenches" encourage modern coding practices like using a package manager - Also gives us access to other PyPi packages
- Makes the
FreeCAD 19 Features
- Link - Makes assemblies a reality
- Dark Theme!
Additional Information: FreeCAD 0.19 Release Notes
Python 3 Features
- Type Hints - Greatly increases the quality of our code and generated documentation
Costs of Not Using the Latest FreeCAD Version
- You'll copy and paste snippets from Googling help online and they won't work for you because they're only available in a later version of FreeCAD
- Real Example:
firstVertex
andlastVertex
methods don't exist in FreeCAD 16. Had to use alternative. See the following thread for details
- Real Example:
- Less help on the FreeCAD forums
- According to the FreeCAD Forum Rules, you must "Make sure your FreeCAD version is up to date" before posting.
- I was told on my first post for help on the forums that my versions were "obsolete" and I should be using the latest. See the following post and reply.
- Additional overhead of writing Python 2 and Python 3 compatible code
- Additional overhead of writing FreeCAD 16, 17, 18, and 19 compatible code
- Not motivated to contribute meaningful code contributions to FreeCAD
- Why contribute new features or bug-fixes if we aren't able to get those new features or bug-fixes since those will only be included in the latest released version of FreeCAD instead of being back-ported to FreeCAD Legacy
- External workbenches like the Fasteners Workbench have moved on from FreeCAD Legacy, Python 2, and QtGui 4, and so we won't get any new features or bug-fixes unless we use the latest version of FreeCAD
- Less engagement with FreeCAD community as our tutorials, resources, and software our geared towards Legacy FreeCAD which the community has moved on from
Python 2 Is No Longer Supported!!!
Python 2 was sun-setted on January 1, 2020. That means the Python Software Foundation will not improve it anymore after that day, even if someone finds a security problem in it. You should upgrade to Python 3 as soon as you can.