def test000(self): """Test Output Generation. Empty path. Produces only the preamble and postable. """ self.docobj.Path = Path.Path([]) postables = [self.docobj] # Test generating with header # Header contains a time stamp that messes up unit testing. # Only test length of result. args = "--no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) self.assertTrue(len(gcode.splitlines()) == 16) # Test without header expected = """G90 G80 G40 G49 ;begin preamble G53 G00 G17 G21 ;begin operation ;end operation: testpath ;begin postamble M5 M25 G49 H0 G90 G80 G40 G49 M99 """ self.docobj.Path = Path.Path([]) postables = [self.docobj] args = "--no-header --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) self.assertEqual(gcode, expected) # test without comments expected = """G90 G80 G40 G49 G53 G00 G17 G21 M5 M25 G49 H0 G90 G80 G40 G49 M99 """ args = "--no-header --no-comments --no-show-editor" # args = ("--no-header --no-comments --no-show-editor --precision=2") gcode = postprocessor.export(postables, "gcode.tmp", args) self.assertEqual(gcode, expected)
def test010(self): """Test command Generation. Test Precision """ c = Path.Command("G0 X10 Y20 Z30") self.docobj.Path = Path.Path([c]) postables = [self.docobj] args = "--no-header --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) result = gcode.splitlines()[5] expected = "G0 X10.0000 Y20.0000 Z30.0000" self.assertEqual(result, expected) args = "--no-header --axis-precision=2 --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) result = gcode.splitlines()[5] expected = "G0 X10.00 Y20.00 Z30.00" self.assertEqual(result, expected)
def test080(self): """ Test tool change """ c = Path.Command("M6 T2") c2 = Path.Command("M3 S3000") self.docobj.Path = Path.Path([c, c2]) postables = [self.docobj] args = "--no-header --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) self.assertEqual(gcode.splitlines()[5], "M6 T2") self.assertEqual(gcode.splitlines()[6], "M3 S3000") # suppress TLO # # The original centroid postprocessor does not have an # --no-tlo option. We end up with the original gcode. # args = "--no-header --no-tlo --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) self.assertEqual(gcode.splitlines()[6], "M3 S3000")
def test050(self): """ Test inches """ c = Path.Command("G0 X10 Y20 Z30") self.docobj.Path = Path.Path([c]) postables = [self.docobj] args = "--no-header --inches --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) self.assertEqual(gcode.splitlines()[3], "G20") result = gcode.splitlines()[5] expected = "G0 X0.3937 Y0.7874 Z1.1811" self.assertEqual(result, expected) args = "--no-header --inches --axis-precision=2 --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) result = gcode.splitlines()[5] expected = "G0 X0.39 Y0.79 Z1.18" self.assertEqual(result, expected)
def test040(self): """ Test Post-amble """ self.docobj.Path = Path.Path([]) postables = [self.docobj] # # The original centroid postprocessor does not have a # --postamble option. We end up with the default postamble. # args = "--no-header --no-comments --postamble='G0 Z50\nM2' --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) self.assertEqual(gcode.splitlines()[-1], "M99")
def test020(self): """ Test Line Numbers """ c = Path.Command("G0 X10 Y20 Z30") self.docobj.Path = Path.Path([c]) postables = [self.docobj] args = "--no-header --line-numbers --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) result = gcode.splitlines()[5] expected = "N150 G0 X10.0000 Y20.0000 Z30.0000" self.assertEqual(result, expected)
def test090(self): """ Test comment """ c = Path.Command("(comment)") self.docobj.Path = Path.Path([c]) postables = [self.docobj] args = "--no-header --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) result = gcode.splitlines()[5] expected = ";comment" self.assertEqual(result, expected)
def test030(self): """ Test Pre-amble """ self.docobj.Path = Path.Path([]) postables = [self.docobj] # # The original centroid postprocessor does not have a # --preamble option. We end up with the default preamble. # args = "--no-header --no-comments --preamble='G18 G55' --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) result = gcode.splitlines()[1] self.assertEqual(result, "G53 G00 G17")
def test070(self): """ Test axis modal Suppress the axis coordinate if the same as previous """ c = Path.Command("G0 X10 Y20 Z30") c1 = Path.Command("G0 X10 Y30 Z30") self.docobj.Path = Path.Path([c, c1]) postables = [self.docobj] # # The original centroid postprocessor does not have an # --axis-modal option. We end up with the original gcode. # args = "--no-header --axis-modal --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) result = gcode.splitlines()[6] expected = "G0 X10.0000 Y30.0000 Z30.0000" self.assertEqual(result, expected)