circular interpolation

This commit is contained in:
Nikolay Khabarov
2017-06-10 23:27:45 +03:00
parent dfb710f4a5
commit 4093fe6661
9 changed files with 544 additions and 124 deletions

View File

@@ -91,14 +91,34 @@ class TestGMachine(unittest.TestCase):
m.do_command, GCode.parse_line("G2X4Y4I2J2"))
self.assertRaises(GMachineException,
m.do_command, GCode.parse_line("G3X4Y4I2J2"))
m.do_command(GCode.parse_line("G17"))
m.do_command(GCode.parse_line("G1X1"))
m.do_command(GCode.parse_line("G2J1"))
m.do_command(GCode.parse_line("G3J1"))
self.assertEqual(m.position(), Coordinates(1, 0, 0, 0))
m.do_command(GCode.parse_line("G1X5Y5"))
m.do_command(GCode.parse_line("G1X10Y10"))
m.do_command(GCode.parse_line("G2X9I1"))
self.assertEqual(m.position(), Coordinates(9, 10, 0, 0))
m.do_command(GCode.parse_line("G19"))
m.do_command(GCode.parse_line("G1X10Y10Z10"))
m.do_command(GCode.parse_line("G3Y8K1"))
self.assertEqual(m.position(), Coordinates(10, 8, 10, 0))
m.do_command(GCode.parse_line("G17"))
m.do_command(GCode.parse_line("G1X5Y5Z0"))
m.do_command(GCode.parse_line("G2X0Y0Z5I-2J-2"))
self.assertEqual(m.position(), Coordinates(0, 0, 5, 0))
m.do_command(GCode.parse_line("G17"))
m.do_command(GCode.parse_line("G1X90Y90"))
m.do_command(GCode.parse_line("G2X90Y70I-5J-5"))
self.assertEqual(m.position(), Coordinates(90, 70, 5, 0))
m.do_command(GCode.parse_line("G18"))
m.do_command(GCode.parse_line("G1X90Y90Z20E0"))
m.do_command(GCode.parse_line("G2Z20X70I-5K-5E22"))
self.assertEqual(m.position(), Coordinates(70, 90, 20, 22))
m.do_command(GCode.parse_line("G19"))
m.do_command(GCode.parse_line("G1X90Y90Z20"))
m.do_command(GCode.parse_line("G2Y90Z0J-5K-5E27"))
self.assertEqual(m.position(), Coordinates(90, 90, 0, 27))
def test_g4(self):
m = GMachine()