From 33462d7261fb9a8a07e2534cd46973fcdae89774 Mon Sep 17 00:00:00 2001 From: Joerg Date: Sun, 12 Mar 2023 21:35:01 +0100 Subject: [PATCH] start layer numbering at 1 (similar to Cura) --- GcodeFileSplitter.py | 13 ++++++++----- GcodeSplitterTest.py | 7 ++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/GcodeFileSplitter.py b/GcodeFileSplitter.py index b768fda..fdce507 100644 --- a/GcodeFileSplitter.py +++ b/GcodeFileSplitter.py @@ -127,7 +127,8 @@ class GcodeFileAnalyzer: for layerIndexOrHeight in layerIndicesOrHeights: if isinstance(layerIndexOrHeight, int): # already a layer index - layerIndices.append(layerIndexOrHeight) + # minus one because first layer input starts at one (similar to Cura) + layerIndices.append(layerIndexOrHeight - 1) elif isinstance(layerIndexOrHeight, str): # extract millimeters millisMatch = RE_MILLIMETERS.search(layerIndexOrHeight) @@ -147,8 +148,8 @@ class GcodeFileAnalyzer: # Add default header lines = list(self.header) logging.info('Exporting Layers {} ({} mm) ... {} ({} mm)' - .format(startLayer.number, startLayer.zHeight, - endLayer.number, endLayer.zHeight)) + .format(startLayer.number + 1, startLayer.zHeight, + endLayer.number + 1, endLayer.zHeight)) if startLayer.number != 0: # Add extra initalization @@ -252,5 +253,7 @@ if __name__ == '__main__': # [124]) # GcodeFileAnalyzer.SplitFileAtLayers(r"Q:\DIY\3Dprint\Models\Thingiverse\MoonLamp\gcode\moon5inches.gcode", # [100, 200, 400, 600, 700]) - GcodeFileAnalyzer.SplitFileAtLayers(r"Q:\DIY\3Dprint\Models\Benjamin\Vier_Cura5.1.1.gcode", - [42]) + # GcodeFileAnalyzer.SplitFileAtLayers(r"Q:\DIY\3Dprint\Models\Benjamin\Vier_Cura5.1.1.gcode", + # [42]) + GcodeFileAnalyzer.SplitFileAtLayers(r"Q:\DIY\3Dprint\Models\Geschenke\Mama\Herz\MarkusTinaHerz.gcode", + [31]) diff --git a/GcodeSplitterTest.py b/GcodeSplitterTest.py index e6d6e10..6cb5825 100644 --- a/GcodeSplitterTest.py +++ b/GcodeSplitterTest.py @@ -4,6 +4,7 @@ from GcodeFileSplitter import GcodeFileAnalyzer dummyGcode = [ 'header01', 'header02', + ';Generated with Cura_SteamEngine 3.5.1', ';LAYER_COUNT:4', ';LAYER:0', 'G0 Z0.3', 'G1 E0', ';TIME_ELAPSED:1.11', ';LAYER:1', 'M106 S255', 'G0 Z0.5', 'G1 E11.11', ';TIME_ELAPSED:2.11', @@ -15,7 +16,7 @@ dummyGcode = [ class GcodeTest(unittest.TestCase): def test_Analyzer(self): gcode = GcodeFileAnalyzer(dummyGcode) - self.assertEqual(gcode.header, ['header01', 'header02', ';LAYER_COUNT:4']) + self.assertEqual(gcode.header, ['header01', 'header02', ';Generated with Cura_SteamEngine 3.5.1', ';LAYER_COUNT:4']) self.assertEqual(gcode.footer, ['G1 F1500 E30', 'footer02']) self.assertEqual(gcode.layers[0].lines, [';LAYER:0', 'G0 Z0.3', 'G1 E0', ';TIME_ELAPSED:1.11',]) self.assertEqual(gcode.layers[1].lines, [';LAYER:1', 'M106 S255', 'G0 Z0.5', 'G1 E11.11', ';TIME_ELAPSED:2.11',]) @@ -27,7 +28,7 @@ class GcodeTest(unittest.TestCase): def test_SplitInTwo(self): gcode = GcodeFileAnalyzer(dummyGcode) - lines1, lines2 = gcode.ExportSplitted([2]) + lines1, lines2 = gcode.ExportSplitted([3]) # Check first file # header + layer 1 and 2 @@ -55,7 +56,7 @@ class GcodeTest(unittest.TestCase): def test_SplitInThree(self): gcode = GcodeFileAnalyzer(dummyGcode) - lines1, lines2, lines3 = gcode.ExportSplitted([2, 3]) + lines1, lines2, lines3 = gcode.ExportSplitted([3, 4]) # Check first file # header + layer 1 and 2