With updating the matrix manually it works but not all the time, its really odd, small rotation changes get applied but then all of a sudden it will fail. I even tried adding the Round function to see if it would work better but not really
Private Sub CommandButton3_Click()
Dim oAsm As AssemblyDocument
Set oAsm = ThisApplication.ActiveDocument
Set occ1 = oAsm.ComponentDefinition.Occurrences(1)
Set occ2 = oAsm.ComponentDefinition.Occurrences(2)
Set m1 = occ1.Transformation
Set m2 = occ2.Transformation
End Sub
Private Sub CommandButton4_Click()
Dim oAsm As AssemblyDocument
Set oAsm = ThisApplication.ActiveDocument
Set occ1 = oAsm.ComponentDefinition.Occurrences(1)
Set occ2 = oAsm.ComponentDefinition.Occurrences(2)
Set m3 = occ1.Transformation
Dim dl As Integer
dl = 20
m2.Cell(1, 1) = Round(m2.Cell(1, 1), dl) - Round(m1.Cell(1, 1), dl) + Round(m3.Cell(1, 1), dl)
m2.Cell(1, 2) = Round(m2.Cell(1, 2), dl) - Round(m1.Cell(1, 2), dl) + Round(m3.Cell(1, 2), dl)
m2.Cell(1, 3) = Round(m2.Cell(1, 3), dl) - Round(m1.Cell(1, 3), dl) + Round(m3.Cell(1, 3), dl)
m2.Cell(2, 1) = Round(m2.Cell(2, 1), dl) - Round(m1.Cell(2, 1), dl) + Round(m3.Cell(2, 1), dl)
m2.Cell(2, 2) = Round(m2.Cell(2, 2), dl) - Round(m1.Cell(2, 2), dl) + Round(m3.Cell(2, 2), dl)
m2.Cell(2, 3) = Round(m2.Cell(2, 3), dl) - Round(m1.Cell(2, 3), dl) + Round(m3.Cell(2, 3), dl)
m2.Cell(3, 1) = Round(m2.Cell(3, 1), dl) - Round(m1.Cell(3, 1), dl) + Round(m3.Cell(3, 1), dl)
m2.Cell(3, 2) = Round(m2.Cell(3, 2), dl) - Round(m1.Cell(3, 2), dl) + Round(m3.Cell(3, 2), dl)
m2.Cell(3, 3) = Round(m2.Cell(3, 3), dl) - Round(m1.Cell(3, 3), dl) + Round(m3.Cell(3, 3), dl)
occ2.Transformation = m2
End Sub