From: daid303 Date: Wed, 2 Jan 2013 18:34:02 +0000 (+0100) Subject: Add relative extrusion distance to GCode viewer, and let dimension export M83 on... X-Git-Tag: 13.03~129 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=6ac4302878001f60a5f66f9a603a150cae1959b8;p=cura.git Add relative extrusion distance to GCode viewer, and let dimension export M83 on relative extrusion. --- diff --git a/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py index 0d29205d..52ad2f62 100644 --- a/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py +++ b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py @@ -384,6 +384,8 @@ class DimensionSkein(object): self.absoluteDistanceMode = False elif firstWord == '(': self.layerIndex += 1 + if self.layerIndex == 0 and self.repository.relativeExtrusionDistance.value: + self.distanceFeedRate.addLine('M83 ;Relative extrusion') settings.printProgress(self.layerIndex, 'dimension') elif firstWord == '()' or firstWord == '()' or firstWord == '()': if self.totalExtrusionDistance > 0.0 and not self.repository.relativeExtrusionDistance.value: diff --git a/Cura/util/gcodeInterpreter.py b/Cura/util/gcodeInterpreter.py index 1de7a6bf..043bab67 100644 --- a/Cura/util/gcodeInterpreter.py +++ b/Cura/util/gcodeInterpreter.py @@ -60,6 +60,7 @@ class gcode(object): currentExtruder = 0 extrudeAmountMultiply = 1.0 totalMoveTimeMinute = 0.0 + absoluteE = True scale = 1.0 posAbs = True feedRate = 3600 @@ -140,6 +141,8 @@ class gcode(object): totalMoveTimeMinute += (oldPos - pos).vsize() / feedRate moveType = 'move' if e is not None: + if not absoluteE: + e += currentE if posAbs: if e > currentE: moveType = 'extrude' @@ -217,6 +220,10 @@ class gcode(object): pass elif M == 81: #Suicide/disable power supply pass + elif M == 82: #Absolute E + absoluteE = True + elif M == 83: #Relative E + absoluteE = False elif M == 84: #Disable step drivers pass elif M == 92: #Set steps per unit