Просмотр исходного кода

PostProcessing plugi, script Pause at Height redo layers
gives incorrect E-values
CURA-4670

Aleksei S 7 лет назад
Родитель
Сommit
cd0846fad2
1 измененных файлов с 15 добавлено и 0 удалено
  1. 15 0
      plugins/PostProcessingPlugin/scripts/PauseAtHeight.py

+ 15 - 0
plugins/PostProcessingPlugin/scripts/PauseAtHeight.py

@@ -187,6 +187,9 @@ class PauseAtHeight(Script):
                 prevLayer = data[index - 1]
                 prevLines = prevLayer.split("\n")
                 current_e = 0.
+
+                # Access last layer, browse it backwards to find
+                # last extruder absolute position
                 for prevLine in reversed(prevLines):
                     current_e = self.getValue(prevLine, "E", -1)
                     if current_e >= 0:
@@ -197,6 +200,18 @@ class PauseAtHeight(Script):
                     prevLayer = data[index - i]
                     layer = prevLayer + layer
 
+                    # Get extruder's absolute position at the
+                    # begining of the first layer redone
+                    # see https://github.com/nallath/PostProcessingPlugin/issues/55
+                    if i == redo_layers:
+                        prevLines = prevLayer.split("\n")
+                        for line in prevLines:
+                            new_e = self.getValue(line, 'E', current_e)
+
+                            if new_e != current_e:
+                                current_e = new_e
+                                break
+
                 prepend_gcode = ";TYPE:CUSTOM\n"
                 prepend_gcode += ";added code by post processing\n"
                 prepend_gcode += ";script: PauseAtHeight.py\n"