From d690dcb1d31311c3c1e08151787ec923f4098fc7 Mon Sep 17 00:00:00 2001 From: David Kaufman Date: Fri, 13 Mar 2026 11:47:33 -0400 Subject: [PATCH 1/2] 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)* From 5328e74e3d0a1ed100dc11ff1594ce067524d831 Mon Sep 17 00:00:00 2001 From: David Kaufman Date: Fri, 13 Mar 2026 13:27:54 -0400 Subject: [PATCH 2/2] link FPA grant proposal --- src/Mod/CAM/Roadmap/Epics/Clipper.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Mod/CAM/Roadmap/Epics/Clipper.md b/src/Mod/CAM/Roadmap/Epics/Clipper.md index a275e9a681..80aa72dcea 100644 --- a/src/Mod/CAM/Roadmap/Epics/Clipper.md +++ b/src/Mod/CAM/Roadmap/Epics/Clipper.md @@ -16,6 +16,8 @@ features such as non-heuristic arc fitting. This epic is about upgrading from Clipper 1/libarea/kurve to Clipper 2, and the CAM improvements enabled by that upgrade. +This epic is designed to fit with an [FPA grant proposal](https://github.com/FreeCAD/FPA-grant-proposals/issues/80). + | In | Out | | --- | --- | | Add Clipper 2 to FreeCAD | Research other new libraries to add to FreeCAD |