Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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")
Example #4
0
    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)
Example #5
0
 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")
Example #6
0
    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)
Example #7
0
    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)
Example #8
0
    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")
Example #9
0
    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)