Ale wracając do tej analizy gcode. Sprawa wygląda tak, na 1mm przypada 10 kroków, zatem jeśli mamy taki kod(4 linijki tylko);
G1 X0.0 Y0.0 F3500.00
G1 X31.02 Y76.35 F3500.00
G1 X35.77 Y76.98 F3500.00
G1 X42.74 Y78.10 F3500.00
To dla X w pierwszym kroku będzie 310,2 kroków. Ale 0,2 kroku nie może wykonać dlatego trzeba to gdzieś zapamiętać i wziąć pod uwagę, że X raz może być na minusie a raz na plusie.
A wiec to 0.2 może się albo zwiększać albo zmniejszać.
W drugim kroku będzie musiał wykonać po odjęciu wartości obecnej od poprzedniej 35.77-31.02 = 4.75 mm a zatem 47.5 kroków. A więc 0,5 leci do bufora i mamy w nim już 0.2+0,5 = 0.7.
W kroku trzecim po odjęciu wychodzi 69,7 kroków. A wiec w buforze mamy 1,4. Zatem jeden pełny krok i 0,4. Z bufora odejmujemy 1. I dodajemy jedynkę a wiec nie 69 kroków tym razem, tylko 70.
Tak właśnie robiłem i to kurde nie działa:/.
Próbowałem to na różne sposoby uwzględniać ale nie chce wyjść. Nie mogę rozgryźć co robię źle :/
Tutaj kod do moich pseudo wyliczeń, mam nadzieje że będzie w miarę zrozumiały

http://pastebin.com/L9i5t5za
A poniżej film jak to działa, w pierwszej części trajektoria zadana na samym uC, w drugiej kod wysyłany po analizowaniu gcode.
A więc czy ktoś z szanownego grona mógłby mi powiedzieć w którym miejscu źle wyliczam te kroki? Bo napewno wyliczane nie są dobrze skoro rysunek mi się rozjeżdża. Gcode jest generowany z Inkscape.