I was creating a macro an I encountered a limit of available macro local variables which is I believe 31. Why is there a limit, and how to remove it? Or does it need an update in software itself?
Best regards,
Mantas
Moderator: Benj
Yes, you are right...the number is 31! Although I believe this number is big for local variable but obviously this is limited in the main software. Jonny might have few more thing to tell about this.I was creating a macro an I encountered a limit of available macro local variables which is I believe 31.
Code: Select all
// Auxiliary variables to avoid repeated arithmetic
._2q0mx = 2.0 * q0 * .mx
._2q0my = 2.0 * q0 * .my
._2q0mz = 2.0 * q0 * .mz
._2q1mx = 2.0 * q1 * .mx
._2q0 = 2.0 * q0
._2q1 = 2.0 * q1
._2q2 = 2.0 * q2
._2q3 = 2.0 * q3
._2q0q2 = 2.0 * q0 * q2
._2q2q3 = 2.0 * q2 * q3
.q0q0 = q0 * q0
.q0q1 = q0 * q1
.q0q2 = q0 * q2
.q0q3 = q0 * q3
.q1q1 = q1 * q1
.q1q2 = q1 * q2
q1q3 = q1 * q3 //Global vars starts here
q2q2 = q2 * q2
q2q3 = q2 * q3
q3q3 = q3 * q3Code: Select all
// Gradient decent algorithm corrective step
.s0 = - ._2q2 * (2.0 * q1q3 - ._2q0q2 - .ax) + ._2q1 * (2.0 * .q0q1 + ._2q2q3 - .ay) - ._2bz * q2 * (._2bx * (0.5 - q2q2 - q3q3) + ._2bz * (q1q3 - .q0q2) - .mx) + (- ._2bx * q3 + ._2bz * q1) * (._2bx * (.q1q2 - .q0q3) + ._2bz * (.q0q1 + q2q3) - .my) + ._2bx * q2 * (._2bx * (.q0q2 + q1q3) + ._2bz * (0.5 - .q1q1 - q2q2) - .mz)
.s1 = ._2q3 * (2.0 * q1q3 - ._2q0q2 - .ax) + ._2q0 * (2.0 * .q0q1 + ._2q2q3 - .ay) - 4.0 * q1 * (1 - 2.0 * .q1q1 - 2.0 * q2q2 - .az) + ._2bz * q3 * (._2bx * (0.5 - q2q2 - q3q3) + ._2bz * (q1q3 - .q0q2) - .mx) + (._2bx * q2 + ._2bz * q0) * (._2bx * (.q1q2 - .q0q3) + ._2bz * (.q0q1 + q2q3) - .my) + (._2bx * q3 - ._4bz * q1) * (._2bx * (.q0q2 + q1q3) + ._2bz * (0.5 - .q1q1 - q2q2) - .mz)
.s2 = - ._2q0 * (2.0 * q1q3 - ._2q0q2 - .ax) + ._2q3 * (2.0 * .q0q1 + ._2q2q3 - .ay) - 4.0 * q2 * (1 - 2.0 * .q1q1 - 2.0 * q2q2 - .az) + (- ._4bx * q2 - ._2bz * q0) * (._2bx * (0.5 - q2q2 - q3q3) + ._2bz * (q1q3 - .q0q2) - .mx) + (._2bx * q1 + ._2bz * q3) * (._2bx * (.q1q2 - .q0q3) + ._2bz * (.q0q1 + q2q3) - .my) + (._2bx * q0 - ._4bz * q2) * (._2bx * (.q0q2 + q1q3) + ._2bz * (0.5 - .q1q1 - q2q2) - .mz)
.s3 = ._2q1 * (2.0 * q1q3 - ._2q0q2 - .ax) + ._2q2 * (2.0 * .q0q1 + ._2q2q3 - .ay) + (- ._4bx * q3 + ._2bz * q1) * (._2bx * (0.5 - q2q2 - q3q3) + ._2bz * (q1q3 - .q0q2) - .mx) + (- ._2bx * q0 + ._2bz * q2) * (._2bx * (.q1q2 - .q0q3) + ._2bz * (.q0q1 + q2q3) - .my) + ._2bx * q1 * (._2bx * (.q0q2 + q1q3) + ._2bz * (0.5 - .q1q1 - q2q2) - .mz)