@@ -706,43 +706,43 @@ def preSolve(self, joint, savePlc=True):
706706 part2Connected = assembly .isPartConnected (part2 )
707707 joint .Activated = True
708708 else :
709- part1Connected = False
710- part2Connected = True
709+ part1Connected = True
710+ part2Connected = False
711711
712- if not part2Connected :
712+ if not part1Connected :
713713 if savePlc :
714- self .partMovedByPresolved = part2
715- self .presolveBackupPlc = part2 .Placement
714+ self .partMovedByPresolved = part1
715+ self .presolveBackupPlc = part1 .Placement
716716
717- globalJcsPlc1 = UtilsAssembly .getJcsGlobalPlc (joint .Placement1 , joint .Reference1 )
718- jcsPlc2 = UtilsAssembly .getJcsPlcRelativeToPart (
719- assembly , joint .Placement2 , joint .Reference2
717+ globalJcsPlc2 = UtilsAssembly .getJcsGlobalPlc (joint .Placement2 , joint .Reference2 )
718+ jcsPlc1 = UtilsAssembly .getJcsPlcRelativeToPart (
719+ assembly , joint .Placement1 , joint .Reference1
720720 )
721721 if not sameDir :
722- jcsPlc2 = UtilsAssembly .flipPlacement (jcsPlc2 )
722+ jcsPlc1 = UtilsAssembly .flipPlacement (jcsPlc1 )
723723
724724 # For link groups and sub-assemblies we have to take into account
725725 # the parent placement (ie the linkgroup plc) as the linkgroup is not the moving part
726726 # But instead of doing as follow, we rather enforce identity placement for linkgroups.
727727 # parentPlc = UtilsAssembly.getParentPlacementIfNeeded(part2)
728728 # part2.Placement = globalJcsPlc1 * jcsPlc2.inverse() * parentPlc.inverse()
729729
730- part2 .Placement = globalJcsPlc1 * jcsPlc2 .inverse ()
730+ part1 .Placement = globalJcsPlc2 * jcsPlc1 .inverse ()
731731 return True
732732
733- elif not part1Connected :
733+ elif not part2Connected :
734734 if savePlc :
735- self .partMovedByPresolved = part1
736- self .presolveBackupPlc = part1 .Placement
735+ self .partMovedByPresolved = part2
736+ self .presolveBackupPlc = part2 .Placement
737737
738- globalJcsPlc2 = UtilsAssembly .getJcsGlobalPlc (joint .Placement2 , joint .Reference2 )
739- jcsPlc1 = UtilsAssembly .getJcsPlcRelativeToPart (
740- assembly , joint .Placement1 , joint .Reference1
738+ globalJcsPlc1 = UtilsAssembly .getJcsGlobalPlc (joint .Placement1 , joint .Reference1 )
739+ jcsPlc2 = UtilsAssembly .getJcsPlcRelativeToPart (
740+ assembly , joint .Placement2 , joint .Reference2
741741 )
742742 if not sameDir :
743- jcsPlc1 = UtilsAssembly .flipPlacement (jcsPlc1 )
743+ jcsPlc2 = UtilsAssembly .flipPlacement (jcsPlc2 )
744744
745- part1 .Placement = globalJcsPlc2 * jcsPlc1 .inverse ()
745+ part2 .Placement = globalJcsPlc1 * jcsPlc2 .inverse ()
746746 return True
747747 return False
748748
0 commit comments