Sure we'll try, there is something You should implement to go straight to the next step, the grouped rigid.kbwbe wrote: ↑Mon Jul 30, 2018 4:09 pmHi Turro,
i do not really know at moment. For coding, it is no problem. But in reality any "magnetic" rotation is inexact per calculation step somehow, and moves are necessary to correct some errors. So i do not know at moment, what will happen if trying this.
A very good thing would be, using your systematics to find the "candidates" for next partial system to solve. Is that possible ?
And, if your answer is yes, how to do this ?
Do you perhaps have some "pseudo-code" ideas ?
When we find 2 rigid which are fully constrained on each other (is. a circular edge + lock rotation) we have to:
1) solve the constraints that involve only the 2 rigids and remove them from constraint list
2) create a new rigid which has a new center. May be a middle point between the 2 center?
3) the dep of the new rigid are the dep left unsolved, refpoint are the same.
4) every time one of the 2 rigids above are involved in a constraint, the rigid used by solver has to be the group.
Example: in the 6dof_assembly each piston-cylinder couple has 5dof lost, if You set lockrotation = True all DOF are lost so You can solve each piston-cylinder as a reduced set of rigid, create a new rigid group which has only 2 constraints : the spherical to both plates.
now the solver can work on 7 rigids as bottom plate is fixed instead of the 13 rigids if lockrotation is left False.
this, added to several other rules will help reducing the number of rigids involved on each step even when the chain started from a fixed part is somewhere broken.