Added convert_text fucntion to the text_to_gcode file, that takes user's text and return gcode

This commit is contained in:
Sohel
2024-11-18 16:04:21 +01:00
parent 0bf322b486
commit bed6033426
3 changed files with 431 additions and 333 deletions

View File

@@ -17,13 +17,14 @@ class Gcode:
self.init_file() self.init_file()
def init_file(self): def init_file(self):
self.output = open(f"{self.file}.gcode", "w") # self.output = open(f"{self.file}.gcode", "w")
self.output.write("G21 ;Unit to mm\n") self.output = ""
self.output.write("G90 ;Absolute positioning\n\n") self.output += ("G21 ;Unit to mm\n")
self.output.write(f"F{self.speed}\n") self.output += ("G90 ;Absolute positioning\n\n")
self.output += (f"F{self.speed}\n")
if self.machine == Machine.LASER: if self.machine == Machine.LASER:
self.output.write(f"S{self.max_s}\n") self.output += (f"S{self.max_s}\n")
self.output.write("M3\n\n") self.output += ("M3\n\n")
def draw_line(self, x1, y1, x2, y2): def draw_line(self, x1, y1, x2, y2):
@@ -35,42 +36,42 @@ class Gcode:
y_mm = y * self.mm_per_px y_mm = y * self.mm_per_px
if self.machine == Machine.LASER: 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: elif self.machine == Machine.THREEAXIS:
self.output.write(f"G0 Z{self.safe_z}\n") self.output+=(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 X{x_mm} Y{y_mm} Z{self.safe_z}\n")
def write_to(self, x, y): def write_to(self, x, y):
x_mm = x * self.mm_per_px x_mm = x * self.mm_per_px
y_mm = y * self.mm_per_px y_mm = y * self.mm_per_px
if self.machine == Machine.LASER: 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: elif self.machine == Machine.THREEAXIS:
self.output.write(f"G0 Z{self.work_z}\n") self.output += (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"G1 X{x_mm} Y{y_mm} Z{self.work_z}\n")
def refill(self, x, y, depth, dip_number): def refill(self, x, y, depth, dip_number):
self.output.write(";#################\n") self.output += (";#################\n")
if self.machine == Machine.THREEAXIS: if self.machine == Machine.THREEAXIS:
self.go_to(x, y) self.go_to(x, y)
for _ in range(dip_number): for _ in range(dip_number):
self.output.write(f"G1 Z{depth}\n") self.output += (f"G1 Z{depth}\n")
self.output.write(f"G0 Z{self.safe_z}\n") self.output += (f"G0 Z{self.safe_z}\n")
elif self.machine == Machine.LASER: elif self.machine == Machine.LASER:
self.go_to(x, y) self.go_to(x, y)
self.set_pause() self.set_pause()
def set_pause(self): def set_pause(self):
self.output.write("M0\n") self.output += ("M0\n")
def end_gcode(self): def end_gcode(self):
if self.machine == Machine.THREEAXIS: if self.machine == Machine.THREEAXIS:
self.go_to(0, 0) self.go_to(0, 0)
self.output.write("M5\n") self.output += ("M5\n")
self.output.close() # self.output.close()
def new_file(self, new_file_name): def new_file(self, new_file_name):
self.end_gcode() self.end_gcode()

View File

@@ -1,4 +1,3 @@
<<<<<<< HEAD
G21 ;Unit to mm G21 ;Unit to mm
G90 ;Absolute positioning G90 ;Absolute positioning
@@ -6,407 +5,493 @@ F1000
M3 M3
G0 Z5 G0 Z5
G0 X0.7142857142857144 Y10.0 Z5 G0 X1.4285714285714288 Y-2.5 Z5
G0 Z0 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 Z5
G0 X4.2857142857142865 Y10.0 Z5 G0 X5.357142857142858 Y-2.5 Z5
G0 Z0 G0 Z0
G1 X2.5 Y2.5 Z0 G1 X5.357142857142858 Y-7.5 Z0
G0 Z5 G0 Z5
G0 X4.2857142857142865 Y10.0 Z5 G0 X8.214285714285715 Y-2.5 Z5
G0 Z0 G0 Z0
G1 X6.071428571428572 Y2.5 Z0 G1 X8.214285714285715 Y-7.5 Z0
G0 Z5 G0 Z5
G0 X7.857142857142858 Y10.0 Z5 G0 X8.214285714285715 Y-3.928571428571429 Z5
G0 Z0 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 Z5
G0 X13.92857142857143 Y7.5 Z5 G0 X1.7857142857142858 Y-10.0 Z5
G0 Z0 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 Z5
G0 X13.92857142857143 Y6.42857142857143 Z5 G0 X0.7142857142857144 Y-12.5 Z5
G0 Z0 G0 Z0
G1 X13.214285714285717 Y7.142857142857143 Z0 G1 X3.214285714285715 Y-12.5 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
G0 Z5 G0 Z5
G0 X16.78571428571429 Y10.0 Z5 G0 X5.357142857142858 Y-14.642857142857142 Z5
G0 Z0 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 Z5
G0 X19.642857142857146 Y10.0 Z5 G0 X11.785714285714286 Y-12.5 Z5
G0 Z0 G0 Z0
G1 X19.642857142857146 Y2.5 Z0 G1 X15.714285714285717 Y-17.5 Z0
G0 Z5 G0 Z5
G0 X22.85714285714286 Y10.0 Z5 G0 X15.714285714285717 Y-12.5 Z5
G0 Z0 G0 Z0
G1 X22.85714285714286 Y3.9285714285714293 Z0 G1 X11.785714285714286 Y-17.5 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
G0 Z5 G0 Z5
G0 X21.785714285714292 Y7.5 Z5 G0 X18.571428571428573 Y-10.0 Z5
G0 Z0 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 Z5
G0 X26.428571428571434 Y5.357142857142858 Z5 G0 X17.5 Y-12.5 Z5
G0 Z0 G0 Z0
G1 X30.71428571428572 Y5.357142857142858 Z0 G1 X20.0 Y-12.5 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
G0 Z5 G0 Z5
G0 X33.214285714285715 Y7.5 Z5 G0 X22.142857142857146 Y-14.642857142857142 Z5
G0 Z0 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 Z5
G0 X33.214285714285715 Y5.357142857142858 Z5 G0 X5.357142857142858 Y-22.5 Z5
G0 Z0 G0 Z0
G1 X33.57142857142858 Y6.42857142857143 Z0 G1 X5.357142857142858 Y-27.5 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
G0 Z5 G0 Z5
G0 X43.21428571428572 Y10.0 Z5 G0 X5.357142857142858 Y-23.571428571428573 Z5
G0 Z0 G0 Z0
G1 X43.571428571428584 Y9.642857142857144 Z0 G1 X4.642857142857143 Y-22.857142857142858 Z0
G0 Z0 G0 Z0
G1 X43.92857142857144 Y10.0 Z0 G1 X3.928571428571429 Y-22.5 Z0
G0 Z0 G0 Z0
G1 X43.571428571428584 Y10.35714285714286 Z0 G1 X2.8571428571428577 Y-22.5 Z0
G0 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 Z5
G0 X43.571428571428584 Y7.5 Z5 G0 X7.5 Y-22.5 Z5
G0 Z0 G0 Z0
G1 X43.571428571428584 Y2.5 Z0 G1 X9.642857142857144 Y-27.5 Z0
G0 Z5 G0 Z5
G0 X50.00000000000001 Y6.42857142857143 Z5 G0 X11.785714285714286 Y-22.5 Z5
G0 Z0 G0 Z0
G1 X49.64285714285715 Y7.142857142857143 Z0 G1 X9.642857142857144 Y-27.5 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
G0 Z5 G0 Z5
G0 X62.142857142857146 Y7.5 Z5 G0 X13.571428571428573 Y-24.642857142857142 Z5
G0 Z0 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 Z5
G0 X62.142857142857146 Y6.42857142857143 Z5 G0 X24.28571428571429 Y-23.571428571428573 Z5
G0 Z0 G0 Z0
G1 X61.42857142857144 Y7.142857142857143 Z0 G1 X23.571428571428573 Y-22.857142857142858 Z0
G0 Z0 G0 Z0
G1 X60.71428571428572 Y7.5 Z0 G1 X22.857142857142858 Y-22.5 Z0
G0 Z0 G0 Z0
G1 X59.642857142857146 Y7.5 Z0 G1 X21.78571428571429 Y-22.5 Z0
G0 Z0 G0 Z0
G1 X58.92857142857144 Y7.142857142857143 Z0 G1 X21.071428571428573 Y-22.857142857142858 Z0
G0 Z0 G0 Z0
G1 X58.21428571428572 Y6.42857142857143 Z0 G1 X20.357142857142858 Y-23.571428571428573 Z0
G0 Z0 G0 Z0
G1 X57.85714285714286 Y5.357142857142858 Z0 G1 X20.0 Y-24.642857142857142 Z0
G0 Z0 G0 Z0
G1 X57.85714285714286 Y4.642857142857143 Z0 G1 X20.0 Y-25.357142857142858 Z0
G0 Z0 G0 Z0
G1 X58.21428571428572 Y3.5714285714285716 Z0 G1 X20.357142857142858 Y-26.42857142857143 Z0
G0 Z0 G0 Z0
G1 X58.92857142857144 Y2.8571428571428577 Z0 G1 X21.071428571428573 Y-27.142857142857146 Z0
G0 Z0 G0 Z0
G1 X59.642857142857146 Y2.5 Z0 G1 X21.78571428571429 Y-27.5 Z0
G0 Z0 G0 Z0
G1 X60.71428571428572 Y2.5 Z0 G1 X22.857142857142858 Y-27.5 Z0
G0 Z0 G0 Z0
G1 X61.42857142857144 Y2.8571428571428577 Z0 G1 X23.571428571428573 Y-27.142857142857146 Z0
G0 Z0 G0 Z0
G1 X62.142857142857146 Y3.5714285714285716 Z0 G1 X24.28571428571429 Y-26.42857142857143 Z0
G0 Z5 G0 Z5
G0 X70.35714285714286 Y7.5 Z5 G0 X5.357142857142858 Y-30.0 Z5
G0 Z0 G0 Z0
G1 X71.78571428571429 Y2.5 Z0 G1 X5.357142857142858 Y-37.5 Z0
G0 Z5 G0 Z5
G0 X73.21428571428572 Y7.5 Z5 G0 X5.357142857142858 Y-33.57142857142858 Z5
G0 Z0 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 Z5
G0 X73.21428571428572 Y7.5 Z5 G0 X7.8571428571428585 Y-34.642857142857146 Z5
G0 Z0 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 Z5
G0 X76.07142857142858 Y7.5 Z5 G0 X18.21428571428572 Y-33.57142857142858 Z5
G0 Z0 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 Z5
G0 X82.5 Y7.5 Z5 G0 X1.4285714285714288 Y-40.0 Z5
G0 Z0 G0 Z0
G1 X82.5 Y2.5 Z0 G1 X1.4285714285714288 Y-47.5 Z0
G0 Z5 G0 Z5
G0 X82.5 Y6.42857142857143 Z5 G0 X3.9285714285714293 Y-40.0 Z5
G0 Z0 G0 Z0
G1 X81.78571428571429 Y7.142857142857143 Z0 G1 X4.2857142857142865 Y-40.35714285714286 Z0
G0 Z0 G0 Z0
G1 X81.07142857142858 Y7.5 Z0 G1 X4.642857142857143 Y-40.0 Z0
G0 Z0 G0 Z0
G1 X80.0 Y7.5 Z0 G1 X4.2857142857142865 Y-39.642857142857146 Z0
G0 Z0 G0 Z0
G1 X79.28571428571429 Y7.142857142857143 Z0 G1 X3.9285714285714293 Y-40.0 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
G0 Z5 G0 Z5
G0 X85.35714285714288 Y10.0 Z5 G0 X4.2857142857142865 Y-42.5 Z5
G0 Z0 G0 Z0
G1 X85.35714285714288 Y2.5 Z0 G1 X4.2857142857142865 Y-47.5 Z0
G0 Z5 G0 Z5
G0 X88.21428571428572 Y10.0 Z5 G0 X11.071428571428573 Y-42.5 Z5
G0 Z0 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 Z5
G0 X96.78571428571429 Y7.5 Z5 G0 X11.071428571428573 Y-43.57142857142858 Z5
G0 Z0 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 Z5
G0 X96.78571428571429 Y6.42857142857143 Z5 G0 X13.928571428571429 Y-42.5 Z5
G0 Z0 G0 Z0
G1 X97.5 Y7.142857142857143 Z0 G1 X13.928571428571429 Y-47.5 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
G0 Z5 G0 Z5
G0 X103.57142857142858 Y10.0 Z5 G0 X13.928571428571429 Y-43.92857142857143 Z5
G0 Z0 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 Z5
G0 X107.85714285714288 Y7.5 Z5 G0 X20.35714285714286 Y-44.642857142857146 Z5
G0 Z0 G0 Z0
G1 X107.14285714285714 Y7.142857142857143 Z0 G1 X24.642857142857146 Y-44.642857142857146 Z0
G0 Z0 G0 Z0
G1 X106.42857142857143 Y6.42857142857143 Z0 G1 X24.642857142857146 Y-43.92857142857143 Z0
G0 Z0 G0 Z0
G1 X106.07142857142858 Y5.357142857142858 Z0 G1 X24.28571428571429 Y-43.214285714285715 Z0
G0 Z0 G0 Z0
G1 X106.07142857142858 Y4.642857142857143 Z0 G1 X23.92857142857143 Y-42.85714285714286 Z0
G0 Z0 G0 Z0
G1 X106.42857142857143 Y3.5714285714285716 Z0 G1 X23.214285714285715 Y-42.5 Z0
G0 Z0 G0 Z0
G1 X107.14285714285714 Y2.8571428571428577 Z0 G1 X22.142857142857146 Y-42.5 Z0
G0 Z0 G0 Z0
G1 X107.85714285714288 Y2.5 Z0 G1 X21.42857142857143 Y-42.85714285714286 Z0
G0 Z0 G0 Z0
G1 X108.92857142857143 Y2.5 Z0 G1 X20.714285714285715 Y-43.57142857142858 Z0
G0 Z0 G0 Z0
G1 X109.64285714285714 Y2.8571428571428577 Z0 G1 X20.35714285714286 Y-44.642857142857146 Z0
G0 Z0 G0 Z0
G1 X110.35714285714288 Y3.5714285714285716 Z0 G1 X20.35714285714286 Y-45.35714285714286 Z0
G0 Z0 G0 Z0
G1 X110.71428571428572 Y4.642857142857143 Z0 G1 X20.714285714285715 Y-46.42857142857143 Z0
G0 Z0 G0 Z0
G1 X110.71428571428572 Y5.357142857142858 Z0 G1 X21.42857142857143 Y-47.142857142857146 Z0
G0 Z0 G0 Z0
G1 X110.35714285714288 Y6.42857142857143 Z0 G1 X22.142857142857146 Y-47.5 Z0
G0 Z0 G0 Z0
G1 X109.64285714285714 Y7.142857142857143 Z0 G1 X23.214285714285715 Y-47.5 Z0
G0 Z0 G0 Z0
G1 X108.92857142857143 Y7.5 Z0 G1 X23.92857142857143 Y-47.142857142857146 Z0
G0 Z0 G0 Z0
G1 X107.85714285714288 Y7.5 Z0 G1 X24.642857142857146 Y-46.42857142857143 Z0
G0 Z5 G0 Z5
G0 X113.57142857142858 Y10.0 Z5 G0 X30.71428571428572 Y-43.57142857142858 Z5
G0 Z0 G0 Z0
G1 X113.57142857142858 Y3.9285714285714293 Z0 G1 X30.35714285714286 Y-42.85714285714286 Z0
G0 Z0 G0 Z0
G1 X113.92857142857143 Y2.8571428571428577 Z0 G1 X29.285714285714292 Y-42.5 Z0
G0 Z0 G0 Z0
G1 X114.64285714285717 Y2.5 Z0 G1 X28.21428571428572 Y-42.5 Z0
G0 Z0 G0 Z0
G1 X115.35714285714288 Y2.5 Z0 G1 X27.142857142857146 Y-42.85714285714286 Z0
G0 Z5
G0 X112.5 Y7.5 Z5
G0 Z0 G0 Z0
G1 X115.0 Y7.5 Z0 G1 X26.785714285714292 Y-43.57142857142858 Z0
G0 Z5
G0 X117.85714285714288 Y10.0 Z5
G0 Z0 G0 Z0
G1 X117.85714285714288 Y3.9285714285714293 Z0 G1 X27.142857142857146 Y-44.285714285714285 Z0
G0 Z0 G0 Z0
G1 X118.21428571428572 Y2.8571428571428577 Z0 G1 X27.85714285714286 Y-44.642857142857146 Z0
G0 Z0 G0 Z0
G1 X118.92857142857144 Y2.5 Z0 G1 X29.642857142857146 Y-45.0 Z0
G0 Z0 G0 Z0
G1 X119.64285714285717 Y2.5 Z0 G1 X30.35714285714286 Y-45.35714285714286 Z0
G0 Z5
G0 X116.78571428571429 Y7.5 Z5
G0 Z0 G0 Z0
G1 X119.28571428571429 Y7.5 Z0 G1 X30.71428571428572 Y-46.07142857142858 Z0
G0 Z5
G0 X121.42857142857144 Y5.357142857142858 Z5
G0 Z0 G0 Z0
G1 X125.71428571428574 Y5.357142857142858 Z0 G1 X30.71428571428572 Y-46.42857142857143 Z0
G0 Z0 G0 Z0
G1 X125.71428571428574 Y6.071428571428572 Z0 G1 X30.35714285714286 Y-47.142857142857146 Z0
G0 Z0 G0 Z0
G1 X125.35714285714288 Y6.7857142857142865 Z0 G1 X29.285714285714292 Y-47.5 Z0
G0 Z0 G0 Z0
G1 X125.0 Y7.142857142857143 Z0 G1 X28.21428571428572 Y-47.5 Z0
G0 Z0 G0 Z0
G1 X124.28571428571429 Y7.5 Z0 G1 X27.142857142857146 Y-47.142857142857146 Z0
G0 Z0 G0 Z0
G1 X123.21428571428574 Y7.5 Z0 G1 X26.785714285714292 Y-46.42857142857143 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
G0 Z5 G0 Z5
G0 X0.0 Y0.0 Z5 G0 X0.0 Y0.0 Z5
M5 M5
=======
>>>>>>> 783bf5bba9b28d0143a951285a2280d6fd0f3eeb

View File

@@ -6,8 +6,14 @@ import matplotlib.pyplot as plt
machine_type = Machine.THREEAXIS 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) file="test_gcode", # Output file name (no .gcode extension)
mm_per_px=0.1, # Conversion factor: mm per pixel mm_per_px=0.1, # Conversion factor: mm per pixel
speed=1000, # Speed in mm/min speed=1000, # Speed in mm/min
@@ -15,35 +21,41 @@ gcode = Gcode(
max_s=255, # Laser power (only for LASER machines) max_s=255, # Laser power (only for LASER machines)
safe_z= 5, safe_z= 5,
work_z= 0 work_z= 0
) )
thefont = HersheyFonts()
thefont.load_default_font()
thefont.normalize_rendering(100)
thefont = HersheyFonts() line_count = 1 # starts at 1 to offset the first line below y = 0
thefont.load_default_font()
thefont.normalize_rendering(100)
text_lines = thefont.lines_for_text('Wallter is a wall plotter') for line in text.splitlines():
# print(next(text_lines)[0]) text_segments = thefont.lines_for_text(line)
# first_point = next(text_lines)[0]
# gcode.go_to(first_point[0], first_point[1])
last_p2 = (0,0) last_p2 = (0,0)
for (x1, y1), (x2, y2) in text_lines: for (x1, y1), (x2, y2) in text_segments:
if((x1, y1) == last_p2): y1 -= vertical_offset * line_count
gcode.write_to(x2 ,y2) y2 -= vertical_offset * line_count
else: if((x1, y1) == last_p2):
gcode.draw_line(x1, y1, x2, y2) 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)
print(convert_text("un \ntexte \navec \ndes \nlignes"))
# Finish the G-code file
gcode.end_gcode()
print("G-code file generated: test_gcode.gcode") print("G-code file generated: test_gcode.gcode")