kbwbe wrote: ↑
Tue Jul 10, 2018 8:21 pm
FYI: There is no priority of constraints. Order of creation does not matter. You have the fixed parts and all others. The solver calculates the move data of all movable parts and then, in next step, it moves all parts quasi simultan. But it is recommended to set constraints first to the fixed part, second to the neighbors etc.
Your solver is effective but I think it would improve by handling priorities and by keeping low the number of rigids involved during calcmovedata.
let's say we have an assembly with a structure like this: Part1 is fixed and arrows identify a constraint and obj1 to obj2.
At the moment the solver skips all rigids marked as fixed. which is good. My suggestion is to create 2 new parameters:
a list of "fathers" rigids and
a temporary fixed parameter which is set to rigid.fixed at the creation of the rigid. then it become true as all "Fathers" are marked as tempfixed EDIT and successfully solved END EDIT.
every rigid should be involved in calculation only if all fathers are marked as tempfixed.
coming back to the picture above the solver should do this sequence:
fix part1 (which is already marked as fixed)
solve part2 and part4 and mark them as tempfixed
solve part3 part5 part6 part8 and mark them as tempfixed
does this make sense for You?