From 6ac4302878001f60a5f66f9a603a150cae1959b8 Mon Sep 17 00:00:00 2001 From: daid303 Date: Wed, 2 Jan 2013 19:34:02 +0100 Subject: [PATCH] Add relative extrusion distance to GCode viewer, and let dimension export M83 on relative extrusion. --- .../skeinforge_plugins/craft_plugins/dimension.py | 2 ++ Cura/util/gcodeInterpreter.py | 7 +++++++ 2 files changed, 9 insertions(+) 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 -- 2.30.2