From bed6033426d32130db0b623bdd2607d48f4b22e6 Mon Sep 17 00:00:00 2001 From: Sohel Date: Mon, 18 Nov 2024 16:04:21 +0100 Subject: [PATCH] Added convert_text fucntion to the text_to_gcode file, that takes user's text and return gcode --- plotter-app/Gcode_generator.py | 37 +- plotter-app/test_gcode.gcode | 671 +++++++++++++++++++-------------- plotter-app/text_to_gcode.py | 56 +-- 3 files changed, 431 insertions(+), 333 deletions(-) diff --git a/plotter-app/Gcode_generator.py b/plotter-app/Gcode_generator.py index 7369d91..ec4f1c0 100644 --- a/plotter-app/Gcode_generator.py +++ b/plotter-app/Gcode_generator.py @@ -17,13 +17,14 @@ class Gcode: self.init_file() def init_file(self): - self.output = open(f"{self.file}.gcode", "w") - self.output.write("G21 ;Unit to mm\n") - self.output.write("G90 ;Absolute positioning\n\n") - self.output.write(f"F{self.speed}\n") + # self.output = open(f"{self.file}.gcode", "w") + self.output = "" + self.output += ("G21 ;Unit to mm\n") + self.output += ("G90 ;Absolute positioning\n\n") + self.output += (f"F{self.speed}\n") if self.machine == Machine.LASER: - self.output.write(f"S{self.max_s}\n") - self.output.write("M3\n\n") + self.output += (f"S{self.max_s}\n") + self.output += ("M3\n\n") def draw_line(self, x1, y1, x2, y2): @@ -35,42 +36,42 @@ class Gcode: y_mm = y * self.mm_per_px if self.machine == Machine.LASER: - self.output.write(f"G0 X{x_mm} Y{y_mm}\n") + self.output+=(f"G0 X{x_mm} Y{y_mm}\n") elif self.machine == Machine.THREEAXIS: - self.output.write(f"G0 Z{self.safe_z}\n") - self.output.write(f"G0 X{x_mm} Y{y_mm} Z{self.safe_z}\n") + self.output+=(f"G0 Z{self.safe_z}\n") + self.output+=(f"G0 X{x_mm} Y{y_mm} Z{self.safe_z}\n") def write_to(self, x, y): x_mm = x * self.mm_per_px y_mm = y * self.mm_per_px if self.machine == Machine.LASER: - self.output.write(f"G1 X{x_mm} Y{y_mm}\n") + self.output += (f"G1 X{x_mm} Y{y_mm}\n") elif self.machine == Machine.THREEAXIS: - self.output.write(f"G0 Z{self.work_z}\n") - self.output.write(f"G1 X{x_mm} Y{y_mm} Z{self.work_z}\n") + self.output += (f"G0 Z{self.work_z}\n") + self.output += (f"G1 X{x_mm} Y{y_mm} Z{self.work_z}\n") def refill(self, x, y, depth, dip_number): - self.output.write(";#################\n") + self.output += (";#################\n") if self.machine == Machine.THREEAXIS: self.go_to(x, y) for _ in range(dip_number): - self.output.write(f"G1 Z{depth}\n") - self.output.write(f"G0 Z{self.safe_z}\n") + self.output += (f"G1 Z{depth}\n") + self.output += (f"G0 Z{self.safe_z}\n") elif self.machine == Machine.LASER: self.go_to(x, y) self.set_pause() def set_pause(self): - self.output.write("M0\n") + self.output += ("M0\n") def end_gcode(self): if self.machine == Machine.THREEAXIS: self.go_to(0, 0) - self.output.write("M5\n") - self.output.close() + self.output += ("M5\n") + # self.output.close() def new_file(self, new_file_name): self.end_gcode() diff --git a/plotter-app/test_gcode.gcode b/plotter-app/test_gcode.gcode index 5be9cc8..45ea255 100644 --- a/plotter-app/test_gcode.gcode +++ b/plotter-app/test_gcode.gcode @@ -1,4 +1,3 @@ -<<<<<<< HEAD G21 ;Unit to mm G90 ;Absolute positioning @@ -6,407 +5,493 @@ F1000 M3 G0 Z5 -G0 X0.7142857142857144 Y10.0 Z5 +G0 X1.4285714285714288 Y-2.5 Z5 G0 Z0 -G1 X2.5 Y2.5 Z0 +G1 X1.4285714285714288 Y-6.071428571428571 Z0 +G0 Z0 +G1 X1.7857142857142858 Y-7.142857142857143 Z0 +G0 Z0 +G1 X2.5 Y-7.5 Z0 +G0 Z0 +G1 X3.5714285714285716 Y-7.5 Z0 +G0 Z0 +G1 X4.2857142857142865 Y-7.142857142857143 Z0 +G0 Z0 +G1 X5.357142857142858 Y-6.071428571428571 Z0 G0 Z5 -G0 X4.2857142857142865 Y10.0 Z5 +G0 X5.357142857142858 Y-2.5 Z5 G0 Z0 -G1 X2.5 Y2.5 Z0 +G1 X5.357142857142858 Y-7.5 Z0 G0 Z5 -G0 X4.2857142857142865 Y10.0 Z5 +G0 X8.214285714285715 Y-2.5 Z5 G0 Z0 -G1 X6.071428571428572 Y2.5 Z0 +G1 X8.214285714285715 Y-7.5 Z0 G0 Z5 -G0 X7.857142857142858 Y10.0 Z5 +G0 X8.214285714285715 Y-3.928571428571429 Z5 G0 Z0 -G1 X6.071428571428572 Y2.5 Z0 +G1 X9.285714285714286 Y-2.857142857142857 Z0 +G0 Z0 +G1 X10.0 Y-2.5 Z0 +G0 Z0 +G1 X11.071428571428573 Y-2.5 Z0 +G0 Z0 +G1 X11.785714285714286 Y-2.857142857142857 Z0 +G0 Z0 +G1 X12.142857142857146 Y-3.928571428571429 Z0 +G0 Z0 +G1 X12.142857142857146 Y-7.5 Z0 G0 Z5 -G0 X13.92857142857143 Y7.5 Z5 +G0 X1.7857142857142858 Y-10.0 Z5 G0 Z0 -G1 X13.92857142857143 Y2.5 Z0 +G1 X1.7857142857142858 Y-16.071428571428573 Z0 +G0 Z0 +G1 X2.1428571428571432 Y-17.142857142857142 Z0 +G0 Z0 +G1 X2.8571428571428577 Y-17.5 Z0 +G0 Z0 +G1 X3.5714285714285716 Y-17.5 Z0 G0 Z5 -G0 X13.92857142857143 Y6.42857142857143 Z5 +G0 X0.7142857142857144 Y-12.5 Z5 G0 Z0 -G1 X13.214285714285717 Y7.142857142857143 Z0 -G0 Z0 -G1 X12.5 Y7.5 Z0 -G0 Z0 -G1 X11.42857142857143 Y7.5 Z0 -G0 Z0 -G1 X10.714285714285715 Y7.142857142857143 Z0 -G0 Z0 -G1 X10.000000000000002 Y6.42857142857143 Z0 -G0 Z0 -G1 X9.642857142857146 Y5.357142857142858 Z0 -G0 Z0 -G1 X9.642857142857146 Y4.642857142857143 Z0 -G0 Z0 -G1 X10.000000000000002 Y3.5714285714285716 Z0 -G0 Z0 -G1 X10.714285714285715 Y2.8571428571428577 Z0 -G0 Z0 -G1 X11.42857142857143 Y2.5 Z0 -G0 Z0 -G1 X12.5 Y2.5 Z0 -G0 Z0 -G1 X13.214285714285717 Y2.8571428571428577 Z0 -G0 Z0 -G1 X13.92857142857143 Y3.5714285714285716 Z0 +G1 X3.214285714285715 Y-12.5 Z0 G0 Z5 -G0 X16.78571428571429 Y10.0 Z5 +G0 X5.357142857142858 Y-14.642857142857142 Z5 G0 Z0 -G1 X16.78571428571429 Y2.5 Z0 +G1 X9.642857142857146 Y-14.642857142857142 Z0 +G0 Z0 +G1 X9.642857142857146 Y-13.928571428571429 Z0 +G0 Z0 +G1 X9.285714285714286 Y-13.214285714285715 Z0 +G0 Z0 +G1 X8.928571428571429 Y-12.857142857142856 Z0 +G0 Z0 +G1 X8.214285714285714 Y-12.5 Z0 +G0 Z0 +G1 X7.142857142857143 Y-12.5 Z0 +G0 Z0 +G1 X6.42857142857143 Y-12.857142857142856 Z0 +G0 Z0 +G1 X5.714285714285715 Y-13.571428571428573 Z0 +G0 Z0 +G1 X5.357142857142858 Y-14.642857142857142 Z0 +G0 Z0 +G1 X5.357142857142858 Y-15.357142857142856 Z0 +G0 Z0 +G1 X5.714285714285715 Y-16.428571428571427 Z0 +G0 Z0 +G1 X6.42857142857143 Y-17.142857142857142 Z0 +G0 Z0 +G1 X7.142857142857143 Y-17.5 Z0 +G0 Z0 +G1 X8.214285714285714 Y-17.5 Z0 +G0 Z0 +G1 X8.928571428571429 Y-17.142857142857142 Z0 +G0 Z0 +G1 X9.642857142857146 Y-16.428571428571427 Z0 G0 Z5 -G0 X19.642857142857146 Y10.0 Z5 +G0 X11.785714285714286 Y-12.5 Z5 G0 Z0 -G1 X19.642857142857146 Y2.5 Z0 +G1 X15.714285714285717 Y-17.5 Z0 G0 Z5 -G0 X22.85714285714286 Y10.0 Z5 +G0 X15.714285714285717 Y-12.5 Z5 G0 Z0 -G1 X22.85714285714286 Y3.9285714285714293 Z0 -G0 Z0 -G1 X23.21428571428572 Y2.8571428571428577 Z0 -G0 Z0 -G1 X23.928571428571434 Y2.5 Z0 -G0 Z0 -G1 X24.64285714285715 Y2.5 Z0 +G1 X11.785714285714286 Y-17.5 Z0 G0 Z5 -G0 X21.785714285714292 Y7.5 Z5 +G0 X18.571428571428573 Y-10.0 Z5 G0 Z0 -G1 X24.285714285714292 Y7.5 Z0 +G1 X18.571428571428573 Y-16.071428571428573 Z0 +G0 Z0 +G1 X18.928571428571427 Y-17.142857142857142 Z0 +G0 Z0 +G1 X19.642857142857146 Y-17.5 Z0 +G0 Z0 +G1 X20.35714285714286 Y-17.5 Z0 G0 Z5 -G0 X26.428571428571434 Y5.357142857142858 Z5 +G0 X17.5 Y-12.5 Z5 G0 Z0 -G1 X30.71428571428572 Y5.357142857142858 Z0 -G0 Z0 -G1 X30.71428571428572 Y6.071428571428572 Z0 -G0 Z0 -G1 X30.35714285714286 Y6.7857142857142865 Z0 -G0 Z0 -G1 X30.000000000000007 Y7.142857142857143 Z0 -G0 Z0 -G1 X29.285714285714292 Y7.5 Z0 -G0 Z0 -G1 X28.21428571428572 Y7.5 Z0 -G0 Z0 -G1 X27.500000000000007 Y7.142857142857143 Z0 -G0 Z0 -G1 X26.785714285714292 Y6.42857142857143 Z0 -G0 Z0 -G1 X26.428571428571434 Y5.357142857142858 Z0 -G0 Z0 -G1 X26.428571428571434 Y4.642857142857143 Z0 -G0 Z0 -G1 X26.785714285714292 Y3.5714285714285716 Z0 -G0 Z0 -G1 X27.500000000000007 Y2.8571428571428577 Z0 -G0 Z0 -G1 X28.21428571428572 Y2.5 Z0 -G0 Z0 -G1 X29.285714285714292 Y2.5 Z0 -G0 Z0 -G1 X30.000000000000007 Y2.8571428571428577 Z0 -G0 Z0 -G1 X30.71428571428572 Y3.5714285714285716 Z0 +G1 X20.0 Y-12.5 Z0 G0 Z5 -G0 X33.214285714285715 Y7.5 Z5 +G0 X22.142857142857146 Y-14.642857142857142 Z5 G0 Z0 -G1 X33.214285714285715 Y2.5 Z0 +G1 X26.42857142857143 Y-14.642857142857142 Z0 +G0 Z0 +G1 X26.42857142857143 Y-13.928571428571429 Z0 +G0 Z0 +G1 X26.071428571428573 Y-13.214285714285715 Z0 +G0 Z0 +G1 X25.71428571428572 Y-12.857142857142856 Z0 +G0 Z0 +G1 X25.0 Y-12.5 Z0 +G0 Z0 +G1 X23.92857142857143 Y-12.5 Z0 +G0 Z0 +G1 X23.21428571428572 Y-12.857142857142856 Z0 +G0 Z0 +G1 X22.5 Y-13.571428571428573 Z0 +G0 Z0 +G1 X22.142857142857146 Y-14.642857142857142 Z0 +G0 Z0 +G1 X22.142857142857146 Y-15.357142857142856 Z0 +G0 Z0 +G1 X22.5 Y-16.428571428571427 Z0 +G0 Z0 +G1 X23.21428571428572 Y-17.142857142857142 Z0 +G0 Z0 +G1 X23.92857142857143 Y-17.5 Z0 +G0 Z0 +G1 X25.0 Y-17.5 Z0 +G0 Z0 +G1 X25.71428571428572 Y-17.142857142857142 Z0 +G0 Z0 +G1 X26.42857142857143 Y-16.428571428571427 Z0 G0 Z5 -G0 X33.214285714285715 Y5.357142857142858 Z5 +G0 X5.357142857142858 Y-22.5 Z5 G0 Z0 -G1 X33.57142857142858 Y6.42857142857143 Z0 -G0 Z0 -G1 X34.28571428571429 Y7.142857142857143 Z0 -G0 Z0 -G1 X35.00000000000001 Y7.5 Z0 -G0 Z0 -G1 X36.07142857142858 Y7.5 Z0 +G1 X5.357142857142858 Y-27.5 Z0 G0 Z5 -G0 X43.21428571428572 Y10.0 Z5 +G0 X5.357142857142858 Y-23.571428571428573 Z5 G0 Z0 -G1 X43.571428571428584 Y9.642857142857144 Z0 +G1 X4.642857142857143 Y-22.857142857142858 Z0 G0 Z0 -G1 X43.92857142857144 Y10.0 Z0 +G1 X3.928571428571429 Y-22.5 Z0 G0 Z0 -G1 X43.571428571428584 Y10.35714285714286 Z0 +G1 X2.8571428571428577 Y-22.5 Z0 G0 Z0 -G1 X43.21428571428572 Y10.0 Z0 +G1 X2.1428571428571432 Y-22.857142857142858 Z0 +G0 Z0 +G1 X1.4285714285714288 Y-23.571428571428573 Z0 +G0 Z0 +G1 X1.0714285714285716 Y-24.642857142857142 Z0 +G0 Z0 +G1 X1.0714285714285716 Y-25.357142857142858 Z0 +G0 Z0 +G1 X1.4285714285714288 Y-26.42857142857143 Z0 +G0 Z0 +G1 X2.1428571428571432 Y-27.142857142857146 Z0 +G0 Z0 +G1 X2.8571428571428577 Y-27.5 Z0 +G0 Z0 +G1 X3.928571428571429 Y-27.5 Z0 +G0 Z0 +G1 X4.642857142857143 Y-27.142857142857146 Z0 +G0 Z0 +G1 X5.357142857142858 Y-26.42857142857143 Z0 G0 Z5 -G0 X43.571428571428584 Y7.5 Z5 +G0 X7.5 Y-22.5 Z5 G0 Z0 -G1 X43.571428571428584 Y2.5 Z0 +G1 X9.642857142857144 Y-27.5 Z0 G0 Z5 -G0 X50.00000000000001 Y6.42857142857143 Z5 +G0 X11.785714285714286 Y-22.5 Z5 G0 Z0 -G1 X49.64285714285715 Y7.142857142857143 Z0 -G0 Z0 -G1 X48.571428571428584 Y7.5 Z0 -G0 Z0 -G1 X47.50000000000001 Y7.5 Z0 -G0 Z0 -G1 X46.42857142857144 Y7.142857142857143 Z0 -G0 Z0 -G1 X46.071428571428584 Y6.42857142857143 Z0 -G0 Z0 -G1 X46.42857142857144 Y5.714285714285715 Z0 -G0 Z0 -G1 X47.14285714285715 Y5.357142857142858 Z0 -G0 Z0 -G1 X48.92857142857144 Y5.0 Z0 -G0 Z0 -G1 X49.64285714285715 Y4.642857142857143 Z0 -G0 Z0 -G1 X50.00000000000001 Y3.9285714285714293 Z0 -G0 Z0 -G1 X50.00000000000001 Y3.5714285714285716 Z0 -G0 Z0 -G1 X49.64285714285715 Y2.8571428571428577 Z0 -G0 Z0 -G1 X48.571428571428584 Y2.5 Z0 -G0 Z0 -G1 X47.50000000000001 Y2.5 Z0 -G0 Z0 -G1 X46.42857142857144 Y2.8571428571428577 Z0 -G0 Z0 -G1 X46.071428571428584 Y3.5714285714285716 Z0 +G1 X9.642857142857144 Y-27.5 Z0 G0 Z5 -G0 X62.142857142857146 Y7.5 Z5 +G0 X13.571428571428573 Y-24.642857142857142 Z5 G0 Z0 -G1 X62.142857142857146 Y2.5 Z0 +G1 X17.857142857142858 Y-24.642857142857142 Z0 +G0 Z0 +G1 X17.857142857142858 Y-23.92857142857143 Z0 +G0 Z0 +G1 X17.5 Y-23.214285714285715 Z0 +G0 Z0 +G1 X17.142857142857146 Y-22.857142857142858 Z0 +G0 Z0 +G1 X16.428571428571427 Y-22.5 Z0 +G0 Z0 +G1 X15.35714285714286 Y-22.5 Z0 +G0 Z0 +G1 X14.642857142857146 Y-22.857142857142858 Z0 +G0 Z0 +G1 X13.928571428571429 Y-23.571428571428573 Z0 +G0 Z0 +G1 X13.571428571428573 Y-24.642857142857142 Z0 +G0 Z0 +G1 X13.571428571428573 Y-25.357142857142858 Z0 +G0 Z0 +G1 X13.928571428571429 Y-26.42857142857143 Z0 +G0 Z0 +G1 X14.642857142857146 Y-27.142857142857146 Z0 +G0 Z0 +G1 X15.35714285714286 Y-27.5 Z0 +G0 Z0 +G1 X16.428571428571427 Y-27.5 Z0 +G0 Z0 +G1 X17.142857142857146 Y-27.142857142857146 Z0 +G0 Z0 +G1 X17.857142857142858 Y-26.42857142857143 Z0 G0 Z5 -G0 X62.142857142857146 Y6.42857142857143 Z5 +G0 X24.28571428571429 Y-23.571428571428573 Z5 G0 Z0 -G1 X61.42857142857144 Y7.142857142857143 Z0 +G1 X23.571428571428573 Y-22.857142857142858 Z0 G0 Z0 -G1 X60.71428571428572 Y7.5 Z0 +G1 X22.857142857142858 Y-22.5 Z0 G0 Z0 -G1 X59.642857142857146 Y7.5 Z0 +G1 X21.78571428571429 Y-22.5 Z0 G0 Z0 -G1 X58.92857142857144 Y7.142857142857143 Z0 +G1 X21.071428571428573 Y-22.857142857142858 Z0 G0 Z0 -G1 X58.21428571428572 Y6.42857142857143 Z0 +G1 X20.357142857142858 Y-23.571428571428573 Z0 G0 Z0 -G1 X57.85714285714286 Y5.357142857142858 Z0 +G1 X20.0 Y-24.642857142857142 Z0 G0 Z0 -G1 X57.85714285714286 Y4.642857142857143 Z0 +G1 X20.0 Y-25.357142857142858 Z0 G0 Z0 -G1 X58.21428571428572 Y3.5714285714285716 Z0 +G1 X20.357142857142858 Y-26.42857142857143 Z0 G0 Z0 -G1 X58.92857142857144 Y2.8571428571428577 Z0 +G1 X21.071428571428573 Y-27.142857142857146 Z0 G0 Z0 -G1 X59.642857142857146 Y2.5 Z0 +G1 X21.78571428571429 Y-27.5 Z0 G0 Z0 -G1 X60.71428571428572 Y2.5 Z0 +G1 X22.857142857142858 Y-27.5 Z0 G0 Z0 -G1 X61.42857142857144 Y2.8571428571428577 Z0 +G1 X23.571428571428573 Y-27.142857142857146 Z0 G0 Z0 -G1 X62.142857142857146 Y3.5714285714285716 Z0 +G1 X24.28571428571429 Y-26.42857142857143 Z0 G0 Z5 -G0 X70.35714285714286 Y7.5 Z5 +G0 X5.357142857142858 Y-30.0 Z5 G0 Z0 -G1 X71.78571428571429 Y2.5 Z0 +G1 X5.357142857142858 Y-37.5 Z0 G0 Z5 -G0 X73.21428571428572 Y7.5 Z5 +G0 X5.357142857142858 Y-33.57142857142858 Z5 G0 Z0 -G1 X71.78571428571429 Y2.5 Z0 +G1 X4.642857142857143 Y-32.857142857142854 Z0 +G0 Z0 +G1 X3.928571428571429 Y-32.5 Z0 +G0 Z0 +G1 X2.8571428571428577 Y-32.5 Z0 +G0 Z0 +G1 X2.1428571428571432 Y-32.857142857142854 Z0 +G0 Z0 +G1 X1.4285714285714288 Y-33.57142857142858 Z0 +G0 Z0 +G1 X1.0714285714285716 Y-34.642857142857146 Z0 +G0 Z0 +G1 X1.0714285714285716 Y-35.357142857142854 Z0 +G0 Z0 +G1 X1.4285714285714288 Y-36.42857142857143 Z0 +G0 Z0 +G1 X2.1428571428571432 Y-37.142857142857146 Z0 +G0 Z0 +G1 X2.8571428571428577 Y-37.5 Z0 +G0 Z0 +G1 X3.928571428571429 Y-37.5 Z0 +G0 Z0 +G1 X4.642857142857143 Y-37.142857142857146 Z0 +G0 Z0 +G1 X5.357142857142858 Y-36.42857142857143 Z0 G0 Z5 -G0 X73.21428571428572 Y7.5 Z5 +G0 X7.8571428571428585 Y-34.642857142857146 Z5 G0 Z0 -G1 X74.64285714285715 Y2.5 Z0 +G1 X12.142857142857146 Y-34.642857142857146 Z0 +G0 Z0 +G1 X12.142857142857146 Y-33.92857142857143 Z0 +G0 Z0 +G1 X11.785714285714286 Y-33.214285714285715 Z0 +G0 Z0 +G1 X11.42857142857143 Y-32.857142857142854 Z0 +G0 Z0 +G1 X10.714285714285715 Y-32.5 Z0 +G0 Z0 +G1 X9.642857142857144 Y-32.5 Z0 +G0 Z0 +G1 X8.928571428571429 Y-32.857142857142854 Z0 +G0 Z0 +G1 X8.214285714285715 Y-33.57142857142858 Z0 +G0 Z0 +G1 X7.8571428571428585 Y-34.642857142857146 Z0 +G0 Z0 +G1 X7.8571428571428585 Y-35.357142857142854 Z0 +G0 Z0 +G1 X8.214285714285715 Y-36.42857142857143 Z0 +G0 Z0 +G1 X8.928571428571429 Y-37.142857142857146 Z0 +G0 Z0 +G1 X9.642857142857144 Y-37.5 Z0 +G0 Z0 +G1 X10.714285714285715 Y-37.5 Z0 +G0 Z0 +G1 X11.42857142857143 Y-37.142857142857146 Z0 +G0 Z0 +G1 X12.142857142857146 Y-36.42857142857143 Z0 G0 Z5 -G0 X76.07142857142858 Y7.5 Z5 +G0 X18.21428571428572 Y-33.57142857142858 Z5 G0 Z0 -G1 X74.64285714285715 Y2.5 Z0 +G1 X17.85714285714286 Y-32.857142857142854 Z0 +G0 Z0 +G1 X16.78571428571429 Y-32.5 Z0 +G0 Z0 +G1 X15.714285714285717 Y-32.5 Z0 +G0 Z0 +G1 X14.642857142857146 Y-32.857142857142854 Z0 +G0 Z0 +G1 X14.28571428571429 Y-33.57142857142858 Z0 +G0 Z0 +G1 X14.642857142857146 Y-34.285714285714285 Z0 +G0 Z0 +G1 X15.357142857142861 Y-34.642857142857146 Z0 +G0 Z0 +G1 X17.142857142857146 Y-35.0 Z0 +G0 Z0 +G1 X17.85714285714286 Y-35.357142857142854 Z0 +G0 Z0 +G1 X18.21428571428572 Y-36.07142857142858 Z0 +G0 Z0 +G1 X18.21428571428572 Y-36.42857142857143 Z0 +G0 Z0 +G1 X17.85714285714286 Y-37.142857142857146 Z0 +G0 Z0 +G1 X16.78571428571429 Y-37.5 Z0 +G0 Z0 +G1 X15.714285714285717 Y-37.5 Z0 +G0 Z0 +G1 X14.642857142857146 Y-37.142857142857146 Z0 +G0 Z0 +G1 X14.28571428571429 Y-36.42857142857143 Z0 G0 Z5 -G0 X82.5 Y7.5 Z5 +G0 X1.4285714285714288 Y-40.0 Z5 G0 Z0 -G1 X82.5 Y2.5 Z0 +G1 X1.4285714285714288 Y-47.5 Z0 G0 Z5 -G0 X82.5 Y6.42857142857143 Z5 +G0 X3.9285714285714293 Y-40.0 Z5 G0 Z0 -G1 X81.78571428571429 Y7.142857142857143 Z0 +G1 X4.2857142857142865 Y-40.35714285714286 Z0 G0 Z0 -G1 X81.07142857142858 Y7.5 Z0 +G1 X4.642857142857143 Y-40.0 Z0 G0 Z0 -G1 X80.0 Y7.5 Z0 +G1 X4.2857142857142865 Y-39.642857142857146 Z0 G0 Z0 -G1 X79.28571428571429 Y7.142857142857143 Z0 -G0 Z0 -G1 X78.57142857142858 Y6.42857142857143 Z0 -G0 Z0 -G1 X78.21428571428572 Y5.357142857142858 Z0 -G0 Z0 -G1 X78.21428571428572 Y4.642857142857143 Z0 -G0 Z0 -G1 X78.57142857142858 Y3.5714285714285716 Z0 -G0 Z0 -G1 X79.28571428571429 Y2.8571428571428577 Z0 -G0 Z0 -G1 X80.0 Y2.5 Z0 -G0 Z0 -G1 X81.07142857142858 Y2.5 Z0 -G0 Z0 -G1 X81.78571428571429 Y2.8571428571428577 Z0 -G0 Z0 -G1 X82.5 Y3.5714285714285716 Z0 +G1 X3.9285714285714293 Y-40.0 Z0 G0 Z5 -G0 X85.35714285714288 Y10.0 Z5 +G0 X4.2857142857142865 Y-42.5 Z5 G0 Z0 -G1 X85.35714285714288 Y2.5 Z0 +G1 X4.2857142857142865 Y-47.5 Z0 G0 Z5 -G0 X88.21428571428572 Y10.0 Z5 +G0 X11.071428571428573 Y-42.5 Z5 G0 Z0 -G1 X88.21428571428572 Y2.5 Z0 +G1 X11.071428571428573 Y-48.214285714285715 Z0 +G0 Z0 +G1 X10.714285714285715 Y-49.285714285714285 Z0 +G0 Z0 +G1 X10.35714285714286 Y-49.642857142857146 Z0 +G0 Z0 +G1 X9.642857142857144 Y-50.0 Z0 +G0 Z0 +G1 X8.571428571428573 Y-50.0 Z0 +G0 Z0 +G1 X7.8571428571428585 Y-49.642857142857146 Z0 G0 Z5 -G0 X96.78571428571429 Y7.5 Z5 +G0 X11.071428571428573 Y-43.57142857142858 Z5 G0 Z0 -G1 X96.78571428571429 Y0.0 Z0 +G1 X10.35714285714286 Y-42.85714285714286 Z0 +G0 Z0 +G1 X9.642857142857144 Y-42.5 Z0 +G0 Z0 +G1 X8.571428571428573 Y-42.5 Z0 +G0 Z0 +G1 X7.8571428571428585 Y-42.85714285714286 Z0 +G0 Z0 +G1 X7.142857142857143 Y-43.57142857142858 Z0 +G0 Z0 +G1 X6.7857142857142865 Y-44.642857142857146 Z0 +G0 Z0 +G1 X6.7857142857142865 Y-45.35714285714286 Z0 +G0 Z0 +G1 X7.142857142857143 Y-46.42857142857143 Z0 +G0 Z0 +G1 X7.8571428571428585 Y-47.142857142857146 Z0 +G0 Z0 +G1 X8.571428571428573 Y-47.5 Z0 +G0 Z0 +G1 X9.642857142857144 Y-47.5 Z0 +G0 Z0 +G1 X10.35714285714286 Y-47.142857142857146 Z0 +G0 Z0 +G1 X11.071428571428573 Y-46.42857142857143 Z0 G0 Z5 -G0 X96.78571428571429 Y6.42857142857143 Z5 +G0 X13.928571428571429 Y-42.5 Z5 G0 Z0 -G1 X97.5 Y7.142857142857143 Z0 -G0 Z0 -G1 X98.21428571428572 Y7.5 Z0 -G0 Z0 -G1 X99.28571428571429 Y7.5 Z0 -G0 Z0 -G1 X100.0 Y7.142857142857143 Z0 -G0 Z0 -G1 X100.71428571428572 Y6.42857142857143 Z0 -G0 Z0 -G1 X101.07142857142857 Y5.357142857142858 Z0 -G0 Z0 -G1 X101.07142857142857 Y4.642857142857143 Z0 -G0 Z0 -G1 X100.71428571428572 Y3.5714285714285716 Z0 -G0 Z0 -G1 X100.0 Y2.8571428571428577 Z0 -G0 Z0 -G1 X99.28571428571429 Y2.5 Z0 -G0 Z0 -G1 X98.21428571428572 Y2.5 Z0 -G0 Z0 -G1 X97.5 Y2.8571428571428577 Z0 -G0 Z0 -G1 X96.78571428571429 Y3.5714285714285716 Z0 +G1 X13.928571428571429 Y-47.5 Z0 G0 Z5 -G0 X103.57142857142858 Y10.0 Z5 +G0 X13.928571428571429 Y-43.92857142857143 Z5 G0 Z0 -G1 X103.57142857142858 Y2.5 Z0 +G1 X15.0 Y-42.85714285714286 Z0 +G0 Z0 +G1 X15.714285714285715 Y-42.5 Z0 +G0 Z0 +G1 X16.78571428571429 Y-42.5 Z0 +G0 Z0 +G1 X17.5 Y-42.85714285714286 Z0 +G0 Z0 +G1 X17.857142857142858 Y-43.92857142857143 Z0 +G0 Z0 +G1 X17.857142857142858 Y-47.5 Z0 G0 Z5 -G0 X107.85714285714288 Y7.5 Z5 +G0 X20.35714285714286 Y-44.642857142857146 Z5 G0 Z0 -G1 X107.14285714285714 Y7.142857142857143 Z0 +G1 X24.642857142857146 Y-44.642857142857146 Z0 G0 Z0 -G1 X106.42857142857143 Y6.42857142857143 Z0 +G1 X24.642857142857146 Y-43.92857142857143 Z0 G0 Z0 -G1 X106.07142857142858 Y5.357142857142858 Z0 +G1 X24.28571428571429 Y-43.214285714285715 Z0 G0 Z0 -G1 X106.07142857142858 Y4.642857142857143 Z0 +G1 X23.92857142857143 Y-42.85714285714286 Z0 G0 Z0 -G1 X106.42857142857143 Y3.5714285714285716 Z0 +G1 X23.214285714285715 Y-42.5 Z0 G0 Z0 -G1 X107.14285714285714 Y2.8571428571428577 Z0 +G1 X22.142857142857146 Y-42.5 Z0 G0 Z0 -G1 X107.85714285714288 Y2.5 Z0 +G1 X21.42857142857143 Y-42.85714285714286 Z0 G0 Z0 -G1 X108.92857142857143 Y2.5 Z0 +G1 X20.714285714285715 Y-43.57142857142858 Z0 G0 Z0 -G1 X109.64285714285714 Y2.8571428571428577 Z0 +G1 X20.35714285714286 Y-44.642857142857146 Z0 G0 Z0 -G1 X110.35714285714288 Y3.5714285714285716 Z0 +G1 X20.35714285714286 Y-45.35714285714286 Z0 G0 Z0 -G1 X110.71428571428572 Y4.642857142857143 Z0 +G1 X20.714285714285715 Y-46.42857142857143 Z0 G0 Z0 -G1 X110.71428571428572 Y5.357142857142858 Z0 +G1 X21.42857142857143 Y-47.142857142857146 Z0 G0 Z0 -G1 X110.35714285714288 Y6.42857142857143 Z0 +G1 X22.142857142857146 Y-47.5 Z0 G0 Z0 -G1 X109.64285714285714 Y7.142857142857143 Z0 +G1 X23.214285714285715 Y-47.5 Z0 G0 Z0 -G1 X108.92857142857143 Y7.5 Z0 +G1 X23.92857142857143 Y-47.142857142857146 Z0 G0 Z0 -G1 X107.85714285714288 Y7.5 Z0 +G1 X24.642857142857146 Y-46.42857142857143 Z0 G0 Z5 -G0 X113.57142857142858 Y10.0 Z5 +G0 X30.71428571428572 Y-43.57142857142858 Z5 G0 Z0 -G1 X113.57142857142858 Y3.9285714285714293 Z0 +G1 X30.35714285714286 Y-42.85714285714286 Z0 G0 Z0 -G1 X113.92857142857143 Y2.8571428571428577 Z0 +G1 X29.285714285714292 Y-42.5 Z0 G0 Z0 -G1 X114.64285714285717 Y2.5 Z0 +G1 X28.21428571428572 Y-42.5 Z0 G0 Z0 -G1 X115.35714285714288 Y2.5 Z0 -G0 Z5 -G0 X112.5 Y7.5 Z5 +G1 X27.142857142857146 Y-42.85714285714286 Z0 G0 Z0 -G1 X115.0 Y7.5 Z0 -G0 Z5 -G0 X117.85714285714288 Y10.0 Z5 +G1 X26.785714285714292 Y-43.57142857142858 Z0 G0 Z0 -G1 X117.85714285714288 Y3.9285714285714293 Z0 +G1 X27.142857142857146 Y-44.285714285714285 Z0 G0 Z0 -G1 X118.21428571428572 Y2.8571428571428577 Z0 +G1 X27.85714285714286 Y-44.642857142857146 Z0 G0 Z0 -G1 X118.92857142857144 Y2.5 Z0 +G1 X29.642857142857146 Y-45.0 Z0 G0 Z0 -G1 X119.64285714285717 Y2.5 Z0 -G0 Z5 -G0 X116.78571428571429 Y7.5 Z5 +G1 X30.35714285714286 Y-45.35714285714286 Z0 G0 Z0 -G1 X119.28571428571429 Y7.5 Z0 -G0 Z5 -G0 X121.42857142857144 Y5.357142857142858 Z5 +G1 X30.71428571428572 Y-46.07142857142858 Z0 G0 Z0 -G1 X125.71428571428574 Y5.357142857142858 Z0 +G1 X30.71428571428572 Y-46.42857142857143 Z0 G0 Z0 -G1 X125.71428571428574 Y6.071428571428572 Z0 +G1 X30.35714285714286 Y-47.142857142857146 Z0 G0 Z0 -G1 X125.35714285714288 Y6.7857142857142865 Z0 +G1 X29.285714285714292 Y-47.5 Z0 G0 Z0 -G1 X125.0 Y7.142857142857143 Z0 +G1 X28.21428571428572 Y-47.5 Z0 G0 Z0 -G1 X124.28571428571429 Y7.5 Z0 +G1 X27.142857142857146 Y-47.142857142857146 Z0 G0 Z0 -G1 X123.21428571428574 Y7.5 Z0 -G0 Z0 -G1 X122.5 Y7.142857142857143 Z0 -G0 Z0 -G1 X121.78571428571429 Y6.42857142857143 Z0 -G0 Z0 -G1 X121.42857142857144 Y5.357142857142858 Z0 -G0 Z0 -G1 X121.42857142857144 Y4.642857142857143 Z0 -G0 Z0 -G1 X121.78571428571429 Y3.5714285714285716 Z0 -G0 Z0 -G1 X122.5 Y2.8571428571428577 Z0 -G0 Z0 -G1 X123.21428571428574 Y2.5 Z0 -G0 Z0 -G1 X124.28571428571429 Y2.5 Z0 -G0 Z0 -G1 X125.0 Y2.8571428571428577 Z0 -G0 Z0 -G1 X125.71428571428574 Y3.5714285714285716 Z0 -G0 Z5 -G0 X128.21428571428572 Y7.5 Z5 -G0 Z0 -G1 X128.21428571428572 Y2.5 Z0 -G0 Z5 -G0 X128.21428571428572 Y5.357142857142858 Z5 -G0 Z0 -G1 X128.57142857142858 Y6.42857142857143 Z0 -G0 Z0 -G1 X129.2857142857143 Y7.142857142857143 Z0 -G0 Z0 -G1 X130.0 Y7.5 Z0 -G0 Z0 -G1 X131.07142857142858 Y7.5 Z0 +G1 X26.785714285714292 Y-46.42857142857143 Z0 G0 Z5 G0 X0.0 Y0.0 Z5 M5 -======= ->>>>>>> 783bf5bba9b28d0143a951285a2280d6fd0f3eeb diff --git a/plotter-app/text_to_gcode.py b/plotter-app/text_to_gcode.py index 5726504..898fa5b 100644 --- a/plotter-app/text_to_gcode.py +++ b/plotter-app/text_to_gcode.py @@ -6,8 +6,14 @@ import matplotlib.pyplot as plt machine_type = Machine.THREEAXIS - # Create an instance of the Gcode class -gcode = Gcode( + + +vertical_offset = 100 + +def convert_text(text): + + # Create an instance of the Gcode class + gcode = Gcode( file="test_gcode", # Output file name (no .gcode extension) mm_per_px=0.1, # Conversion factor: mm per pixel speed=1000, # Speed in mm/min @@ -15,35 +21,41 @@ gcode = Gcode( max_s=255, # Laser power (only for LASER machines) safe_z= 5, work_z= 0 -) + ) + thefont = HersheyFonts() + thefont.load_default_font() + thefont.normalize_rendering(100) -thefont = HersheyFonts() -thefont.load_default_font() -thefont.normalize_rendering(100) + line_count = 1 # starts at 1 to offset the first line below y = 0 -text_lines = thefont.lines_for_text('Wallter is a wall plotter') + for line in text.splitlines(): -# print(next(text_lines)[0]) -# first_point = next(text_lines)[0] -# gcode.go_to(first_point[0], first_point[1]) + text_segments = thefont.lines_for_text(line) -last_p2 = (0,0) -for (x1, y1), (x2, y2) in text_lines: - if((x1, y1) == last_p2): - gcode.write_to(x2 ,y2) - else: - gcode.draw_line(x1, y1, x2, y2) + last_p2 = (0,0) + for (x1, y1), (x2, y2) in text_segments: + y1 -= vertical_offset * line_count + y2 -= vertical_offset * line_count + if((x1, y1) == last_p2): + gcode.write_to(x2 ,y2) + else: + gcode.draw_line(x1, y1, x2, y2) - last_p2 = (x2,y2) + last_p2 = (x2,y2) + + line_count += 1 + + # Finish the G-code file + + gcode.end_gcode() + + return gcode.output + -# Draw a line from (10, 20) to (30, 40) -# gcode.draw_line(10, 20, 30, 40) - -# Finish the G-code file -gcode.end_gcode() +print(convert_text("un \ntexte \navec \ndes \nlignes")) print("G-code file generated: test_gcode.gcode") \ No newline at end of file