I will be posting a minimal example on the forums about this soon once I actually finish the project. Here [1] is the last issue that I had. The issue of getting the needed cutout on that forum post was one problem, but the much deeper issue was how a later operation broke the model in an unrecoverable way once it was removed. To me, that speaks to something deeply broken in FreeCAD's core use of Open Cascade, and I've noticed minor variations on this theme, like when undo operations sometimes don't really undo things and leave sketches broken. less common these days, but it's weird that it was ever a thing.
> Is DynamicData still properly supported in 1.x? Looks like it might be. Never really used it; I use a minimal mix of Spreadsheet (mostly for Configuration Tables) and VarSets.
I used to use Spreadsheets but they just didn't scale, ie. every little addition and modification to the spreadsheet caused very slow global recalculations. DynamicData is a little better on this for some reason, but not much. I like the expression engine they use, but it's not good at only re-evaluating the dependencies that have changed. They should really be using FRP-like signals.
Anyway, I don't want to come across as too negative as FreeCAD is pretty good overall, but these tiny nuisances will continue to hold it back until they're sorted. It is looking better though.
[1] https://forum.freecad.org/viewtopic.php?p=848289#p848289
FWIW I agree that undo is broken — I don't think FreeCAD has a single global undo, rather one that works differently in Sketcher.
Could be wrong but the top-level undo does weird things when there's a recent change in Sketcher.
And yeah, I now use Spreadsheet as little as possible. There is some work going on to try to resolve Sketcher's aggressive recomputation problems. Pop into the (ugh) Discord sometime, there's a channel about it.
Configuration Tables, though, are a really powerful part of Sketcher, particularly when combined with app link variants.
In terms of dependency resolving, the core VarSets are much, much better, and in 1.1 they are better integrated into the expression editor, so you can store an expression as a VarSet property without leaving the expression editor.