start layer numbering at 1 (similar to Cura)

This commit is contained in:
2023-03-12 21:35:01 +01:00
parent 180b4ef5ec
commit 33462d7261
2 changed files with 12 additions and 8 deletions

View File

@@ -127,7 +127,8 @@ class GcodeFileAnalyzer:
for layerIndexOrHeight in layerIndicesOrHeights: for layerIndexOrHeight in layerIndicesOrHeights:
if isinstance(layerIndexOrHeight, int): if isinstance(layerIndexOrHeight, int):
# already a layer index # 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): elif isinstance(layerIndexOrHeight, str):
# extract millimeters # extract millimeters
millisMatch = RE_MILLIMETERS.search(layerIndexOrHeight) millisMatch = RE_MILLIMETERS.search(layerIndexOrHeight)
@@ -147,8 +148,8 @@ class GcodeFileAnalyzer:
# Add default header # Add default header
lines = list(self.header) lines = list(self.header)
logging.info('Exporting Layers {} ({} mm) ... {} ({} mm)' logging.info('Exporting Layers {} ({} mm) ... {} ({} mm)'
.format(startLayer.number, startLayer.zHeight, .format(startLayer.number + 1, startLayer.zHeight,
endLayer.number, endLayer.zHeight)) endLayer.number + 1, endLayer.zHeight))
if startLayer.number != 0: if startLayer.number != 0:
# Add extra initalization # Add extra initalization
@@ -252,5 +253,7 @@ if __name__ == '__main__':
# [124]) # [124])
# GcodeFileAnalyzer.SplitFileAtLayers(r"Q:\DIY\3Dprint\Models\Thingiverse\MoonLamp\gcode\moon5inches.gcode", # GcodeFileAnalyzer.SplitFileAtLayers(r"Q:\DIY\3Dprint\Models\Thingiverse\MoonLamp\gcode\moon5inches.gcode",
# [100, 200, 400, 600, 700]) # [100, 200, 400, 600, 700])
GcodeFileAnalyzer.SplitFileAtLayers(r"Q:\DIY\3Dprint\Models\Benjamin\Vier_Cura5.1.1.gcode", # GcodeFileAnalyzer.SplitFileAtLayers(r"Q:\DIY\3Dprint\Models\Benjamin\Vier_Cura5.1.1.gcode",
[42]) # [42])
GcodeFileAnalyzer.SplitFileAtLayers(r"Q:\DIY\3Dprint\Models\Geschenke\Mama\Herz\MarkusTinaHerz.gcode",
[31])

View File

@@ -4,6 +4,7 @@ from GcodeFileSplitter import GcodeFileAnalyzer
dummyGcode = [ dummyGcode = [
'header01', 'header02', 'header01', 'header02',
';Generated with Cura_SteamEngine 3.5.1',
';LAYER_COUNT:4', ';LAYER_COUNT:4',
';LAYER:0', 'G0 Z0.3', 'G1 E0', ';TIME_ELAPSED:1.11', ';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', ';LAYER:1', 'M106 S255', 'G0 Z0.5', 'G1 E11.11', ';TIME_ELAPSED:2.11',
@@ -15,7 +16,7 @@ dummyGcode = [
class GcodeTest(unittest.TestCase): class GcodeTest(unittest.TestCase):
def test_Analyzer(self): def test_Analyzer(self):
gcode = GcodeFileAnalyzer(dummyGcode) 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.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[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',]) 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): def test_SplitInTwo(self):
gcode = GcodeFileAnalyzer(dummyGcode) gcode = GcodeFileAnalyzer(dummyGcode)
lines1, lines2 = gcode.ExportSplitted([2]) lines1, lines2 = gcode.ExportSplitted([3])
# Check first file # Check first file
# header + layer 1 and 2 # header + layer 1 and 2
@@ -55,7 +56,7 @@ class GcodeTest(unittest.TestCase):
def test_SplitInThree(self): def test_SplitInThree(self):
gcode = GcodeFileAnalyzer(dummyGcode) gcode = GcodeFileAnalyzer(dummyGcode)
lines1, lines2, lines3 = gcode.ExportSplitted([2, 3]) lines1, lines2, lines3 = gcode.ExportSplitted([3, 4])
# Check first file # Check first file
# header + layer 1 and 2 # header + layer 1 and 2