From d690dcb1d31311c3c1e08151787ec923f4098fc7 Mon Sep 17 00:00:00 2001 From: David Kaufman Date: Fri, 13 Mar 2026 11:47:33 -0400 Subject: [PATCH] Clipper upgrade roadmap --- src/Mod/CAM/Roadmap/Epics/Clipper.md | 29 ++++++++++++++++++++++++++++ src/Mod/CAM/Roadmap/README.md | 1 + 2 files changed, 30 insertions(+) create mode 100644 src/Mod/CAM/Roadmap/Epics/Clipper.md diff --git a/src/Mod/CAM/Roadmap/Epics/Clipper.md b/src/Mod/CAM/Roadmap/Epics/Clipper.md new file mode 100644 index 0000000000..a275e9a681 --- /dev/null +++ b/src/Mod/CAM/Roadmap/Epics/Clipper.md @@ -0,0 +1,29 @@ +# STATUS: + +Active + +# Why it is a priority + +Our geometry libraries limit what we can do with CAM. Currently, we are +dependent on an obsolete version of Clipper and unmaintened libarea and kurve +libraries. These libraries do not receive feature updates or bug fixes. +Updating to Clipper 2 and removing our dependency on these libraries will make +the CAM workbench more maintainable and improve tool paths by enabling new +features such as non-heuristic arc fitting. + + +# Scope + +This epic is about upgrading from Clipper 1/libarea/kurve to Clipper 2, and the CAM improvements enabled by that upgrade. + +| In | Out | +| --- | --- | +| Add Clipper 2 to FreeCAD | Research other new libraries to add to FreeCAD | +| Migrate operations from Clipper 1 to Clipper 2 | | +| Replace uses of libarea and kurve with Clipper 2, and as needed, custom wrappers | | +| Remove libarea and kurve from the FreeCAD | | +| Expose Clipper 2 functionality to Python | | +| Implement correct curve fitting using Clipper 2's IntPoint user data feature | | +| Implement algorithm/performance improvements in Adaptive using Clipper 2 features| | + +# Related Epics diff --git a/src/Mod/CAM/Roadmap/README.md b/src/Mod/CAM/Roadmap/README.md index 8c4524abac..e1411fc18c 100644 --- a/src/Mod/CAM/Roadmap/README.md +++ b/src/Mod/CAM/Roadmap/README.md @@ -73,6 +73,7 @@ We agree these things should get collective attention because they are larger th | [Improve Circular Holes](Epics/Circular%20Holes%20Improvement.md) | Improve the user experience and efficiency of Circular holes operations | Active | | [Improve Core Dressups](Epics/ImproveCoreDressups.md) | Improve the user experience and feature completion of core dressups | Active | | [Improve Adaptive Operation](Epics/ImproveAdaptiveOperation.md) | Improve the user experience and feature completion of Adaptive | Active | +| [Clipper 2 Upgrade](Epics/Clipper.md) | Upgrade Clipper 1/libarea/kurve to Clipper 2 | Active | # Priorities *(When evaluating Pull Requests, the following priorities will be considered)*