chiark / gitweb /
Add relative extrusion distance to GCode viewer, and let dimension export M83 on...
authordaid303 <daid303@gmail.com>
Wed, 2 Jan 2013 18:34:02 +0000 (19:34 +0100)
committerdaid303 <daid303@gmail.com>
Wed, 2 Jan 2013 18:34:02 +0000 (19:34 +0100)
Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py
Cura/util/gcodeInterpreter.py

index 0d29205def73a2d193ffef6ae945036be9ddca4e..52ad2f6274b22c6053690b083fb1467f9a588924 100644 (file)
@@ -384,6 +384,8 @@ class DimensionSkein(object):
                        self.absoluteDistanceMode = False
                elif firstWord == '(<layer>':
                        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 == '(</layer>)' or firstWord == '(<supportLayer>)' or firstWord == '(</supportLayer>)':
                        if self.totalExtrusionDistance > 0.0 and not self.repository.relativeExtrusionDistance.value:
index 1de7a6bfe066fc2adf0cd3c694a9f3a4a6fcf4df..043bab67e2b23f1521107bddd5a4dff7d48346d3 100644 (file)
@@ -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