start layer numbering at 1 (similar to Cura)
This commit is contained in:
@@ -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])
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user