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:
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])

View File

@@ -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