Hello everybody,
My team and I noticed something a bit unusual in the designer's behavior regarding the shift angle (at the end of each group in the G-code file):
What we are seeing here is that on line 57 (where the shift angle occurs), A = 1444.56, which is different from 1419.56 + 29.62 = 1449.18.
Let’s remove the numerical values for clarity. Let n be the line number where the shift angle occurs (in the previous example, n = 57, n-1 = 56, etc.), and let Shift represent the shift angle (inside the commentary; here Shift = 4.62). We observe the following relationship:
An=An−1+Cn−Shift
For example:
1444.56 = 1419.56 + 29.62 - 4.62
This is very strange because Cn = Cn-3 + Shift (with Cn-3 being the value of the C parameter when the withdrawal left end occurs; in this example, Cn-3 = 25). So, in the end:
An = An-1 + Cn-3 + Shift - Shift = An-1 + Cn-3
This implies that the shift angle isn’t being taken into account—or at least I can’t see where it’s being factored in.
If we compare this with another pass of the same group (when the shift angle doesn’t occur), we observe the same behavior. However, in those cases, it makes sense.
A75 = A74 + C75 = A74 + C72, because C75 = C72 (Shift = 0).
In the end, it doesn’t change anything technically speaking, because what’s important is the C parameter, and this one includes the shift angle. It’s just a little bit confusing.
To address this, I’ve coded a rough draft of what might eventually become a G-code parser, intended to enhance the code in a more effective way. I’ve attached the Python code Here in case you’d like to review it.
Thank you in advance for any insights or suggestions you might have.