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()) == 14) # Test without header expected = """(Begin preamble) G17 G54 G40 G49 G80 G90 G21 (Begin operation: testpath) (Machine units: mm/min) (Finish operation: testpath) (Begin postamble) M05 G17 G54 G90 G80 G40 M2 """ self.docobj.Path = Path.Path([]) postables = [self.docobj] args = "--no-header --no-show-editor" # args = ("--no-header --no-comments --no-show-editor --precision=2") gcode = postprocessor.export(postables, "gcode.tmp", args) self.assertEqual(gcode, expected) # test without comments expected = """G17 G54 G40 G49 G80 G90 G21 M05 G17 G54 G90 G80 G40 M2 """ 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 test040(self): """ Test Post-amble """ self.docobj.Path = Path.Path([]) postables = [self.docobj] args = "--no-header --no-comments --postamble='G0 Z50\nM2' --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) result = gcode.splitlines()[-2] self.assertEqual(result, "G0 Z50") self.assertEqual(gcode.splitlines()[-1], "M2")
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()[6], "M5") self.assertEqual(gcode.splitlines()[7], "M6 T2") self.assertEqual(gcode.splitlines()[8], "G43 H2") self.assertEqual(gcode.splitlines()[9], "M3 S3000") # suppress TLO args = "--no-header --no-tlo --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) self.assertEqual(gcode.splitlines()[8], "M3 S3000")
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.000 Y20.000 Z30.000" self.assertEqual(result, expected) args = "--no-header --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 test030(self): """ Test Pre-amble """ self.docobj.Path = Path.Path([]) postables = [self.docobj] args = "--no-header --no-comments --preamble='G18 G55' --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) result = gcode.splitlines()[0] self.assertEqual(result, "G18 G55")
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()[2], "G20") result = gcode.splitlines()[5] expected = "G0 X0.3937 Y0.7874 Z1.1811" self.assertEqual(result, expected) args = "--no-header --inches --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 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.000 Y20.000 Z30.000" 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 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] args = "--no-header --axis-modal --no-show-editor" gcode = postprocessor.export(postables, "gcode.tmp", args) result = gcode.splitlines()[6] expected = "G0 Y30.000" self.assertEqual(result, expected)