and others !
First of all I must warn that as a simple user who understands nothing about internal problems in software programming, all terms like "App :: Standard Part, App :: DocumentObjectGroup, ..." are totally foreign to me.
However, I still believe that the opinion of ordinary users cannot be completely overlooked.
Since each user has their own story and their own habits, what I say below is only my opinion.
When I started using the 1st FreeCAD assembly workbench (A2 if I am not mistaken), I was very satisfied to find the habits I had acquired in other software (Solid Concept, Solid Edge , Catia V5, Solid Works): the direct pointing with the mouse of surfaces or other geometric entities and the use of geometric constraints, to remove step by step different DOFs between objects, in order to build kinematic chains in mechanisms.
Unfortunately the development of this workbench was at a standstill.
Subsequently, I discovered the Realthunder Assembly 3 workbench, which offered the same type of constraints. I was very quickly won over.
From my point of view, this is a very dynamic approach (a few clicks or drag-and-drop) which allows you to quickly set up constraints without any preparation if desired, or with some more rigorous preparations for a result to keep, but with an almost kinesthetic approach.
Then came Assembly 4 workbench from Zolko, which proposed to no longer use a solver. Why not ? I admit that this approach would suit me more for static positioning of parts (although you can create mechanism animations) than for articulated mechanisms.
I still think that these are two approaches that can be complementary, and that it must remain in the order of the user's choice. So a FreeCad file "should" (easy to say for someone incapable of programming !) :
- be able on reading the file to detect whether it contains information requiring the use of a solver and to ask if the user wishes to continue in this way;
- be able to make inactive all the constraints related to the user of a solver by temporarily conserving (optional) the relative positions of the objects (which already happens in Assembly 3);
- be able to make all the positions linked to Assembly 4 inactive (while also temporarily keeping the relative positions of the objects as an option) if the user prefers to use an assembly by geometric constraints.
For the use of future tools (which I strongly hope for) such as kinematics and dynamics analyzers with construction of curves of positions, speeds, accelerations, efforts ... I would personally prefer an approach based on geometric constraints like in Assembly 3.
PS: I can not find any reason to have in a file only one assembly.