Guys, what you are trying to achieve here is quite interesting and impressive.
I'm new to "assemblies" (in FreeCAD), and I'm not really aware of the python magic inside it nor of the FreeCAD objects structure.
I've tested A2+ and A4 to create simple mechanisms form scratch from Zolko's tutos, and here are my feelings...
We need both.
As I see it A2+ is way more "user friendly and intuitive", A4 seems more robust and adapted for deep top-down design.
Nothing you ignore I guess.
Also, when creating animations, it seems to me that A2+ solver is really faster: I can make interactive animation by simply moving my mouse where A4 somehow seems to struggles to animate with 3 parts.
(maybe it is just the animate assembly toolbox that causes it to be slow and unresponsive, and this is not a criticism, just a fact, I guess animation is not the center of your aim when doing an assembly WB).
So if you can merge them, just be aware that both use-case should be addressed :
- I'm doing a tremendous top-down assembly that will update nicely when changing one parameter (like @ppemawm is doing in his wonderful threads)
- I want to go for a more intuitive (or messy) approach and would like to do it quickly and to see how it moves...
Also for movement, I would really like to have tools that help me rely on existing geometries or datum (For instance, using a datum plane in the middle of the slot of an arm and link it to my nipple axis on the disk... Which seems impossible in A2+.)
Not to mention a 'tangent' constraint between two surfaces...
The relative movements between gears or belt driven gears would also require to be easily defined but I don't know how far this would be in terms of development... Maybe using LCS and variables here is the most efficient approach.
That's it for my Santa list, if you guys manage to get the best of both these approach (apparently simple, and capable of complex things), I would be really impressed.
Anyway, this was just my thoughts and also my great thanks for doing all this, I guess your work takes a lot of time, and you don't need some lazy end-user come around and ask for new features...Do you?