CURA-4552 Add flavors to GCodeReader. The preRead looks for the flavor

in the GCode and then the right flavor handler is responsible for
reading the code. At this moment just the Griffin and RepRap flavors are
taken into account.
This commit is contained in:
Diego Prado Gesto 2017-11-27 16:56:26 +01:00
parent ffef26097d
commit cab2e14728
4 changed files with 522 additions and 451 deletions

View file

@ -0,0 +1,31 @@
# Copyright (c) 2017 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
from . import GCodeFlavor
class RepRapFlavor(GCodeFlavor.GCodeFlavor):
def __init__(self):
super().__init__()
def processMCode(self, M, line, position, path):
if M == 82:
# Set absolute extrusion mode
self._is_absolute_extrusion = True
elif M == 83:
# Set relative extrusion mode
self._is_absolute_extrusion = False
## Set the absolute positioning
# RepRapFlavor code G90 sets position of X, Y, Z, and E to absolute
def _gCode90(self, position, params, path):
self._is_absolute_positioning = True
self._is_absolute_extrusion = True
return position
## Set the relative positioning
# RepRapFlavor code G91 sets position of X, Y, Z to relative
# For relative E, M83 is used
def _gCode91(self, position, params, path):
self._is_absolute_positioning = False
return position