Ciao,

 se fai split sulla riga con separatore lo spazio e guardi quelle che cominciano con GX, non è meglio? Lì prendi quelli che cominciano per X, Y e Z. Ignori le righe che non servono (quelle che cominciano per ; ad esempio).

Con regexp, posso suggerirti questo:

https://stackoverflow.com/a/3533526/15822654

che sembra affrontare il tuo problema, cioè il match di token sparsi casualmente in una stringa.

Il 13/02/24 14:32, Perini Matteo ha scritto:
Ciao a tutti,
è da un po' che non scrivo.
Vi chiedo aiuto perchè sto cercando di leggere delle coordinate da un file 
Gcode.
Un esempio del testo da parsare è:
;LAYER:1
;MESH:untitled.stl
G0 F7200 X1298 Y1798 Z4
;TYPE:WALL-OUTER
G1 F1800 X702 Y1798 E1494.81223
G1 X702 Y1202 E2242.21834
G92 E0
G1 X1298 Y1202 E747.40611
G1 Y1798 X1298 E1494.81223
;TIME_ELAPSED:177.752007
;CHANGE;
;LAYER:2
;MESH:untitled.stl
G0 F7200 X1298 Y1798 Z6
;TYPE:WALL-OUTER
G1 F1800 X702 Y1798 E2242.21834
G92 E0
G1 X702 Y1202 E747.40611
non ho grossi problemi ad effettuare un parsing corretto ma lo sto facendo con 
vari if, elif, case,  ecc. cosa che non mi piace molto.
Stavo provando ad utilizzare le regex ma non sto riuscendo a fare quello che 
voglio (in modo pulito) ovvero identificare le coordinate X, Y e Z anche se in 
alcuni casi hanno posizioni invertite.
Vorrei anche attribuire un nome al gruppo identificato in modo da usarlo come 
dizionario.
Stavo usando alcuni pattern tipo ".*Z(?P<Z>\d+[.]?\d*)" che vanno bene per individuare le coordinate di un asse ma capita che le righe contengano x y e z oppure solo Z oppure solo x e y. Importante, in alcuni casi potrebbero essere anche in ordine differente tipo z y e x. Per ora i numeri dopo E e F posso trascurarli ma vi chiederei aiuto per riuscire ad ottenere le coordinate da ogni riga. se tutte le righe rispettassero lo stesso pattern non avrei problemi ma non so come affrontare soprattutto il problema di avere pattern diversi in ordine (quasi) random. Spero di essere stato abbastanza chiaro. Grazie a tutti Matteo



_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a