Solving parts 1+2, after that solve parts 1+2+3, after that 1+2+3+4 and so on is much easier for the solver:project4 wrote: ↑Wed Jul 18, 2018 7:03 am I'm not good with math and din't really understood all the move and rotations code, so I would ask some questions to understand the solver concepts:
What will be harder to solve:
1. An assembly with 100 parts all at once
2. Or solve parts 1+2, after that solve parts 1+2+3, after that 1+2+3+4 and so on?
If the solver should work similar to human interactions with the parts, than it sounds like the second option is more logical.
Human won't throw everything on the table and try to squish it together, one will set 2 parts, rotate them a bit, add a screw, add another part and so on.
So my logic says that the scene should be assembled as an incremental process.
The added part should be added to the scene in proper place according to one of the constraints that connects it to already fixed parts and after that trying to resolve all together, so other constrains will move/rotate it to the needed position.
What do you say?
It reduces calculation time drastically. But unfortunately it is not always possible.
See 6DOF platform example. It is impossible for solver to calculate it this way.
Therefore it is the job of the new algorithm, to find smallest possible groups of parts to solve, starting with parts related to fixed ones.
The smallest group is found, if the placements can be calculated independent of the remaining parts.
I expect speeding up solver factor 10 minimum, if the assembly can be split up. There will be no effect for 6DOF platform example.