Hej John!
Som jag skrev tidigare, har jag aldrig kodat G-code själv, så det är nytt för mig.
Kanske har jag lite nytta av att ha kodat och förstår många andra "datorspråk"?
Med allt vad det innebär av syntaktiska och grammatiska regler i sådana.
Även om G-code kanske kan beskrivas som ett "primitivt" språk, så finns det en hel del regler.
Jag har tittat lite i "manualen" sedan jag såg vad du råkade ut för.
https://tormach.com/g-code-formatting-reference
Jag har använt G-code, i min 3D-skrivare och i min "leksaks-fräs", men då har jag aldrig skapat G-koden själv. Den har kommit från något CAD-program.
Min lilla svarv är ännu inte NC-konverterad, men att göra det finns med på projektlistan. Tillsammans med mycket annat...
Räkna inte med att jag kan göra något nyttigt, men om du lägger upp den kod du har nu, så ska jag titta på den med dom enkla medel som står till buds för mig och se om jag kan se något underligt.
I din tidigare kod gjorde jag några ändringar för att kunna köra koden i mitt program och se något.
En del av ändringarna var nog nödvändiga, men inte alla.
Bland det jag gjorde (snabbt, men ibland lite fort, men fel

) var detta.
– Jag tog bort radnumren. Det hade nog räckt om jag lagt till bokstaven "N" omedelbart före radnumren.
– Jag tog bort kommentarer, som inleddes med %. Kommentarer inleds med "#" i G-code. Man får inte ha två kommentarer på samma rad.
– Jag flyttade några kommandon som fanns på samma rad till egen rad. Jag hann inte sätta mig in i när det är tillåtet att ha flera kommandon på en rad och när det inte är tillåtet. Två kommandon (G-ord eller M-ord) i samma "modal group" får inte finnas på samma rad.
– Jag bytte komma mot punkt i tal. G-code har sitt ursprung i USA. Därför ska decimalkomma anges med punkt.
Detta gjorde jag "med automatik", utan att förstå din kod eller titta närmar på hur koden såg ut i detalj.
Lägg upp det du har nu, så ska jag se om jag ser något. Jag kan inte lova att jag kan hitta något, men jag kan lova att försöka. Jag återkommer i vilket fall.
Jag såg just detta om vilka dom olika "modala grupperna" är.
- [VISA]
-
Modal groups for G-codes are as follows:
Group 1 {G00, G01, G02, G03, G33, G38.x, G73, G76, G80, G81, G82, G84, G85, G86, G87, G88, G89} motion – This is a group of G-codes for motion called current motion mode — one is always in effect.
Group 2 {G17, G18, G19, G17.1, G17.2, G17.3} plane selection
Group 3 {G90, G91} distance mode
Group 4 {G90.1, G91.1} arc IJK distance mode
Group 5 {G93, G94} feed rate mode
Group 6 {G20, G21} units
Group 7 {G40, G41, G42, G41.1, G42.1} cutter radius compensation
Group 8 {G43, G43.1, G49} tool length offset
Group 10 {G98, G99} return mode in canned cycles
Group 12 {G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3} coordinate system selection
Group 13 {G61, G61.1, G64} path control mode
Group 14 {G96, G97} spindle speed mode
Group 15 {G07, G08} lathe diameter mode
Modal groups for M-codes are as follows:
Group 4 {M00, M01, M02, M30, M60} stopping
Group 7 {M03, M04, M05} spindle turning
Group 8 {M07, M08, M09} coolant (special case: M07 and M08 may be active at the same time)
Group 9 {M48, M49} enable/disable feed and speed override controls
Group 10 {operator defined M100 to M199}
Non-modal G-codes are as follows:
Group 0 {G04, G10, G28, G30, G53, G92, G92.1, G92.2, G92.3}
mvh/Pi
Edit: Jag tog ju bort minustecknen i din kod också, John.